技术人 | 是架构师,也是工作中的“厨师”
你印象中的架构师是什么样子的?每天专注于确认需求与拆分系统?每天游走于各种高级的技术会议?有这样一位前端架构师,花名贯高,他一心只想做个好“厨师”,能服务好大家,让所有人不会饿着肚子去作战就是他的追求。
我们先来看看这位“厨师”的养成记。
以上内容,部分过于真实
谁说架构师不写代码
“我其实算是非典型的架构师,自己也非常喜欢写代码,曾经有一段时间因为精力的原因,代码写得比较少,那时就感觉有点脱离技术。”贯高自己感慨道。
在我们研发产品落地的过程中,有非常多的细节问题,包括出入参、配置等。每个版本的配置都有可能引起非常复杂的问题,如果开始时设计得不够好,那么别人在使用的过程中,一些细节问题就会带来非常大的困扰。
“在发现了这个问题后,我自己也投入很多时间到这些细节的设计中。我们的架构设计其实分了很多层,顶层架构设计是描述各个模块的能力边界和运行逻辑,在模块内部也会做进一步的细分,复杂的架构还会涉及各个模块之间的关系。但架构师通常不会细致到每个配置项如何设计、传什么值、如何去运作这些方面,而这些其实都会影响到最终的使用。”
于是,贯高重新回归技术,在架构设计的同时,也会去关注细节处的体验设计,自己去写代码完善。
就这样,他虽然是前端架构师,但每年依然有大概 35 万+行的代码提交量。
农村包围城市的 Node 框架打造之路
“我们的前端距离业务有一段距离,且前后端联调的边界不是很清晰,导致很多时候研发成本非常高。我们希望能把 Node 作为前后端边界,将它抽出来后,可以在 Node 这个环境下搭建整个前端运行环境,这样前后端的交互和后端之间的交互就没有非常大的区别。”
然而,当时大部分前端都不太会 Node,只有少部分人会用 Node 做一些工具,我们希望能把 Node 做成服务端的标准框架。
2014.10.13 下午1点,在陶陶居茶楼正式成立了 Node 工作组,至今服务了全集团所有的 Node 应用
“我当时设计了 Egg 的整个加载体系,也是最早开始写核心部分的插件,重构了很多版本。当时有很多同学一起参与进来配合写一些插件,尽管过程比较艰辛,但是在大家的共同努力下,还是把整个 Node 做了出来。”贯高回忆到。
在 Node 做出来后,贯高和团队伙伴联合了集团很多 BU 一起闭关开发,将集团的 Egg 框架做了出来,最终集团将它作为一个标准的框架,而且这个框架也做到了开源。现在大部分阿里集团的 Node 应用都是基于它来扩展,实现自己BU的一些插件去运行。当时贯高和团队的伙伴也为集团对接了基础设施,比如 aone 构建的一些能力。虽然现在团队在蚂蚁,但仍在为阿里集团这边做各种答疑解惑。
知乎热贴「如何评价阿里开源的企业级 Node.js 框架 egg?」引起很大反响,是 Egg star 增长最快的一段时间,并上了 GitHub Trending 全语言的周榜
大家都在往前冲,历史的债务怎么办?
“之前我们用的还是老系统,而且还在双十一的关键链路上,大家都不知道这个域名是哪边维护的,在双十一时就直接使用了。由于这个系统之前也没有进行过压测,最终导致流量爆炸。正是这些历史问题,有时也会给我们的业务带来非常大的风险。”
“虽然是老系统,但可能没有人知道并一直在使用,这样就很容易出现问题。如果说这个系统后面完全没有人知道,那这可能就是蚂蚁技术上的一颗定时炸弹。”
这件事对贯高触动很大,于是他下定决心,开始了“还债”之路。
技术团队在很多时候会存在一个问题,就是管生不管养。可能开始时做了一个比较大的规划,然后在第二年及第三年时又重新做了一个规划,这样之前一些涉及到迁移或下线的东西处理起来就比较困难。特别对于前端来说,很多域名是开放的,有很多外部伙伴在直接使用我们的文件或是使用我们的这个功能,这样对于下线来说其实更困难。
“我们前期会做流量评估,但是却不知道这个流量是否有用,只能询问产品经理,告诉他这个功能是5年前的,看看目前是否还需要,还有没有用户在使用。比如里面的一些截图可能还是老的支付宝logo,这些页面对用户其实是个误导。”
“解决历史问题最大的困难就是找不到人,我们看到的可能只有一个页面,但是这个页面是谁开发的并不清楚,然后也不知道这块业务归谁管理,这样就会导致我们决策不了能不能下线。特别是产品经理更换以后,新来的产品经理也不熟悉这块业务,更不敢轻易下线。这里面不只是技术问题,每个领域都有涉及到,所以我做这个事情是希望可以反向推动产品、对应的业务或者是对应的技术团队,去下线这些无用的内容或者是去做一些革新。”
在这个系统中有很多站点,对应很多域名,每一个域名下面有很多页面,贯高这边按域名从流量小到流量大逐步去下线,目前整体已经还掉了差不多50%的债务。但我们的架构及一些能力仍持续在演进,同时也会带来一些新的“债务”,需要我们各业务团队一起不断去排查并及时的进行下线,避免造成其他影响。
一心想当厨师的架构师
“我不希望自己在聚光灯下,如果自己做的一些事能够让身边的人感到快乐,就心满意足了。当厨师不做将军,我自认为不是那种可以带领三军冲锋陷阵的人,也无法更好地激励团队前行,但我觉得自己更适合做一个服务角色,让士兵不会饿着肚子作战。厨师在厨房做了很多准备,目的就是为了把菜做出来,这样别人就可以享用。如果你做的味道还比较好,大家也很喜欢你做的菜,那么自己也会感受到这个过程中的乐趣。”
“所以,我想做的就是通过一些核心的底层能力,让大家能减少日常遇到的调试复杂问题,对 Develop 来说体验能够得到一些改善。虽然这个愿景比较美好,通过一个人的力量还是比较困难的,但我愿意去尝试,也希望能做好这个服务的角色,给予大家更好的支撑。”
用化学的态度对待调酒这件事
“在对调酒感兴趣之前,我很少去酒吧,也对酒吧有着一些偏见。但在一次机缘巧合下,在B站看了卡司(某酒区up主)的视频,觉得调酒这件事情很有意思,自己也慢慢接触各种酒的类型,学习鸡尾酒的做法。B站酒区里面,也有越来越多的年轻人喜欢在家调酒。其实,调酒并不是为了喝醉,酒也是一种美食,通过嗅觉、味觉、触感,我们可以感受到每一款酒的特色以及他背后的故事。”
对于饮品来说,每一种味道的背后都比较复杂,只有懂的人可以尝出每种味道的不同。经典鸡尾酒,都是基酒加上水果,或加上气泡水,或加上利可酒调制而成的。这里面比较有意思的是,你通过不同的调制方式,一个是量、一个是冰的融水度,还有一个是酸甜的比例,通过这些就能调出你喜欢的口味。
每一点微小的变化,都能带来味道上很大的改变,调酒如是,工作上亦是如此。
在很多时候,我们需要和自己和解,去承认自己的短板,让长板可以跑得更快。纠结只会让自己患得患失,失去了向上的机会,换一条路也许会更难走。人生的终极追求可能是每个人需要考虑的问题,而且答案也必定不同。
我们经常容易被眼前的一些琐事遮住看向远方的双眼,忽略了那些需要我们长期投入有更大意义的事情。我们可以去发现一件值得自己全心投入去做的事情,然后结合自己未来的愿景,躬身入局,把自己融入,长期 AII-in,让自己成为解决问题的变量,不断让自己的肉体去靠近内心想要的那个样子。(正文完)
技术人 | 是架构师,也是工作中的“厨师”
技术人 | 是架构师,也是工作中的“厨师”相关推荐
- 为什么 CTO、技术总监、架构师都不写代码,还这么牛?
作者| Mr.K 整理| Emma 来源| 技术领导力(ID:jishulingdaoli) 常常会被问到这样的问题:CTO.技术总监.架构师很少写具体代码,为什么还很牛逼的样子,拿这么高工资? ...
- 为什么CTO、技术总监、架构师都不写代码,还这么牛逼?
常常会被问到这样的问题:CTO.技术总监.架构师很少写具体代码,为什么还很牛逼的样子,拿这么高工资? 其实,这个问题本身就错了.就好比问:导演.制片人为什么不懂演戏,还能指导演员,好像比演员厉害似的? ...
- python架构师工作职责_大数据架构师岗位的工作职责
大数据架构师需要负责深入理解业务需求,对业务建模,设计系统架构,满足业务需求.以下是学习啦小编整理的大数据架构师岗位的工作职责. 大数据架构师岗位的工作职责1 职责: 1.负责数据仓库建设,基于数据驱 ...
- 这种思路讲解数据仓库建模,你见过吗?数据人与架构师必看
文|傅一平 今天跟着我来学学数据仓库的基础知识,希望你结合案例可以把它吃透. 商业智能时代,无论是程序员,数据分析师,架构师也好,这篇一定要懂,这样才能更好的赋能自己的工作. 一.数据仓库建模的意义 ...
- 程序员,未来你要成为CTO、技术VP还是架构师?
2019年就要过去了,每到年末就非常适合总结.反思,思考过去一年的成长(就),过去一年的收获,过去一年的改变. 这次先跟大家分享关于未来的思考, 职业目标和规划决定了你以后的职业高度.职业角色,你本来 ...
- 架构师之路工作量化与细化
作为一个5年工作经验的程序猿屌丝,在自己的岗位兢兢业业,但也由于新军的崛起让自己感到岌岌可危,不断的反省.总结与尝试.在周五公司聚餐的晚上,和领导的一番闲谈,更明确了自己今后努力的方向,于是乎给自己暗 ...
- 喜欢奉承的人,往往能力配不上“人脉” | 架构师之路读书会(第四期)
架构师之路读书会,和志同道合的好友一起读书听书,每周2期.上周回顾: <富爸爸穷爸爸> <牛奶可乐经济学> 画外音:跟我一起,每周15*2分钟,一年100本书. 本周的第1篇, ...
- 2022年度IT研发工程师(架构师)年终工作总结(模板)
姓名 XXX 工号 0001 部门 架构与研发中心 岗位 架构师(JAVA) 各位领导: 你们好!时光飞逝,光阴似箭,转眼间又到了一年的年末.2022年是不平凡的一年,今年是国企改革三年行动的收官之
- java系统架构师有的特质_Java中特质模式的定义
java系统架构师有的特质 在本文中,我将介绍特征的概念,并为您提供一个具体示例,说明如何在Java中使用它们以减少对象设计中的冗余. 我将首先提出一个虚构的案例,其中可以使用特征来减少重复,然后以使 ...
- 架构师日常-稳定性工作
01 值班制度 这里的值班制度是针对一些高峰期不在我们上班时间的业务,也会在一些特殊的业务高峰期,比如618,双11,双12这种节点.而目前我们业务采用的值班制度是在早高峰9点到11点,一般这个时间点 ...
最新文章
- Android studio 自动导入(全部)包 import
- 编译是检查C语言什么的错误,c语言编译过程
- Altium Designer20新建项目\导入库\绘制原理图\导入pcb\绘制pcb
- 记一次生产数据库系统内存使用过高的案例
- 感染暴风一号u盘病毒的解决办法
- 旧物手工机器人制作图片_自制送给小朋友的生日礼物,DIY帅气的不织布机器人...
- linux vi 应用
- ContextCapture、EPS、CASS3D房地一体详细操作流程
- Excel实战之单元格合并与拆分
- sql server操作1:数据库及基本表的建立
- 关于RFID电感耦合方式的射频前端工作原理,你了解吗?
- 如何一眼辨别谁有男朋友/女朋友?哈哈哈哈哈哈哈
- Web安全之SQL注入总结
- 什么是奇异值分解(SVD)?
- torch实现ESIM算法
- 内丘计算机学校,内丘学校食堂打卡机
- 注册表编辑器厘米爱你找不到mysql_我打开注册表编辑器后 找不到那几个文件 怎么办...
- Hbase(二)Client客户端
- 学习笔记——改改host,轻松登录dropbox!(For Windows)
- 2020ndroid开发爆款书籍推荐:从小白—Android高级工程师系列学习路线书籍介绍
热门文章
- 第5章分布式系统模式 Broker(代理程序)
- 关于android的apk版本升级的一些建议
- hbase由于一台regionserver和datanode挂死导致hlog split问题
- My first essay
- Java-多线程第二篇多线程相关认识(2)
- JaveScript简单数据类型(JS知识点归纳二)
- getComputedStyle
- 广义线性模型(GLM, Generalized Linear Model)
- 分享一个检测用户是否用手机(Mobile)访问网站的 PHP 类
- Excel表复制、取消工作表保护、解除冻结操作