你印象中的架构师是什么样子的?每天专注于确认需求与拆分系统?每天游走于各种高级的技术会议?有这样一位前端架构师,花名贯高,他一心只想做个好“厨师”,能服务好大家,让所有人不会饿着肚子去作战就是他的追求。

我们先来看看这位“厨师”的养成记。

以上内容,部分过于真实

谁说架构师不写代码

“我其实算是非典型的架构师,自己也非常喜欢写代码,曾经有一段时间因为精力的原因,代码写得比较少,那时就感觉有点脱离技术。”贯高自己感慨道。

在我们研发产品落地的过程中,有非常多的细节问题,包括出入参、配置等。每个版本的配置都有可能引起非常复杂的问题,如果开始时设计得不够好,那么别人在使用的过程中,一些细节问题就会带来非常大的困扰。

“在发现了这个问题后,我自己也投入很多时间到这些细节的设计中。我们的架构设计其实分了很多层,顶层架构设计是描述各个模块的能力边界和运行逻辑,在模块内部也会做进一步的细分,复杂的架构还会涉及各个模块之间的关系。但架构师通常不会细致到每个配置项如何设计、传什么值、如何去运作这些方面,而这些其实都会影响到最终的使用。”

于是,贯高重新回归技术,在架构设计的同时,也会去关注细节处的体验设计,自己去写代码完善。

就这样,他虽然是前端架构师,但每年依然有大概 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,让自己成为解决问题的变量,不断让自己的肉体去靠近内心想要的那个样子。(正文完)
技术人 | 是架构师,也是工作中的“厨师”

技术人 | 是架构师,也是工作中的“厨师”相关推荐

  1. 为什么 CTO、技术总监、架构师都不写代码,还这么牛?

    作者| Mr.K   整理| Emma 来源| 技术领导力(ID:jishulingdaoli) 常常会被问到这样的问题:CTO.技术总监.架构师很少写具体代码,为什么还很牛逼的样子,拿这么高工资? ...

  2. 为什么CTO、技术总监、架构师都不写代码,还这么牛逼?

    常常会被问到这样的问题:CTO.技术总监.架构师很少写具体代码,为什么还很牛逼的样子,拿这么高工资? 其实,这个问题本身就错了.就好比问:导演.制片人为什么不懂演戏,还能指导演员,好像比演员厉害似的? ...

  3. python架构师工作职责_大数据架构师岗位的工作职责

    大数据架构师需要负责深入理解业务需求,对业务建模,设计系统架构,满足业务需求.以下是学习啦小编整理的大数据架构师岗位的工作职责. 大数据架构师岗位的工作职责1 职责: 1.负责数据仓库建设,基于数据驱 ...

  4. 这种思路讲解数据仓库建模,你见过吗?数据人与架构师必看

    文|傅一平 今天跟着我来学学数据仓库的基础知识,希望你结合案例可以把它吃透. 商业智能时代,无论是程序员,数据分析师,架构师也好,这篇一定要懂,这样才能更好的赋能自己的工作. 一.数据仓库建模的意义 ...

  5. 程序员,未来你要成为CTO、技术VP还是架构师?

    2019年就要过去了,每到年末就非常适合总结.反思,思考过去一年的成长(就),过去一年的收获,过去一年的改变. 这次先跟大家分享关于未来的思考, 职业目标和规划决定了你以后的职业高度.职业角色,你本来 ...

  6. 架构师之路工作量化与细化

    作为一个5年工作经验的程序猿屌丝,在自己的岗位兢兢业业,但也由于新军的崛起让自己感到岌岌可危,不断的反省.总结与尝试.在周五公司聚餐的晚上,和领导的一番闲谈,更明确了自己今后努力的方向,于是乎给自己暗 ...

  7. 喜欢奉承的人,往往能力配不上“人脉” | 架构师之路读书会(第四期)

    架构师之路读书会,和志同道合的好友一起读书听书,每周2期.上周回顾: <富爸爸穷爸爸> <牛奶可乐经济学> 画外音:跟我一起,每周15*2分钟,一年100本书. 本周的第1篇, ...

  8. 2022年度IT研发工程师(架构师)年终工作总结(模板)

    姓名 XXX 工号 0001 部门 架构与研发中心 岗位 架构师(JAVA) 各位领导: 你们好!时光飞逝,光阴似箭,转眼间又到了一年的年末.2022年是不平凡的一年,今年是国企改革三年行动的收官之

  9. java系统架构师有的特质_Java中特质模式的定义

    java系统架构师有的特质 在本文中,我将介绍特征的概念,并为您提供一个具体示例,说明如何在Java中使用它们以减少对象设计中的冗余. 我将首先提出一个虚构的案例,其中可以使用特征来减少重复,然后以使 ...

  10. 架构师日常-稳定性工作

    01 值班制度 这里的值班制度是针对一些高峰期不在我们上班时间的业务,也会在一些特殊的业务高峰期,比如618,双11,双12这种节点.而目前我们业务采用的值班制度是在早高峰9点到11点,一般这个时间点 ...

最新文章

  1. Android studio 自动导入(全部)包 import
  2. 编译是检查C语言什么的错误,c语言编译过程
  3. Altium Designer20新建项目\导入库\绘制原理图\导入pcb\绘制pcb
  4. 记一次生产数据库系统内存使用过高的案例
  5. 感染暴风一号u盘病毒的解决办法
  6. 旧物手工机器人制作图片_自制送给小朋友的生日礼物,DIY帅气的不织布机器人...
  7. linux vi 应用
  8. ContextCapture、EPS、CASS3D房地一体详细操作流程
  9. Excel实战之单元格合并与拆分
  10. sql server操作1:数据库及基本表的建立
  11. 关于RFID电感耦合方式的射频前端工作原理,你了解吗?
  12. 如何一眼辨别谁有男朋友/女朋友?哈哈哈哈哈哈哈
  13. Web安全之SQL注入总结
  14. 什么是奇异值分解(SVD)?
  15. torch实现ESIM算法
  16. 内丘计算机学校,内丘学校食堂打卡机
  17. 注册表编辑器厘米爱你找不到mysql_我打开注册表编辑器后 找不到那几个文件 怎么办...
  18. Hbase(二)Client客户端
  19. 学习笔记——改改host,轻松登录dropbox!(For Windows)
  20. 2020ndroid开发爆款书籍推荐:从小白—Android高级工程师系列学习路线书籍介绍

热门文章

  1. 第5章分布式系统模式 Broker(代理程序)
  2. 关于android的apk版本升级的一些建议
  3. hbase由于一台regionserver和datanode挂死导致hlog split问题
  4. My first essay
  5. Java-多线程第二篇多线程相关认识(2)
  6. JaveScript简单数据类型(JS知识点归纳二)
  7. getComputedStyle
  8. 广义线性模型(GLM, Generalized Linear Model)
  9. 分享一个检测用户是否用手机(Mobile)访问网站的 PHP 类
  10. Excel表复制、取消工作表保护、解除冻结操作