饿了么大前端部门负责人林建锋,立志成为业界顶尖团队

作者|林剑锋

编辑 | 尾尾

最近,“大前端”这个词被频繁提及,很多团队都在重新思考“大前端团队”和“移动团队+前端团队”两种模式的优劣。在大家还在热火朝天地讨论这个概念的时候,饿了么这个大前端团队已经蓬勃发展,并且在实践中领先于其他人。前端Top特别邀请了饿了么前端部门负责人林建峰,结合饿了么大前端团队的实践,与大家分享如何实施和管理大前端团队。

人们通常称我为小鱼或Sofish,但尴尬的是,只有少数同事知道我的真名是林剑锋。有一次,为了逃避数学,我在大学选择了法律专业;而在毕业前,为了逃避专业的“争论”,我选择了不用多说的前端开发,从此走上了程序员的不归路。

这位程序员的不归路从实习开始,去了杭州的支付宝,然后成为人民网的第一个前端工程师,然后选择创业,最后加入饿了么,落户上海。目前,作为饿了么前端部门的负责人,我和一帮朋友正在努力把饿了么做的更好,一路上我们立志成为行业顶尖的团队。

一、饿了么大前端团队定位

1.为什么叫“大前端”团队

“大前端”一词最初源于阿里有很多前端开发者同时写前端和Java Velocity模板,而我们部门一开始不只负责前端,还包括CDN和Nginx层,所以取名为“大前端”。今天,大家谈论的大前端已经包括前端、Node、Native-Like(Hybrid / Weex / RN),甚至Native App开发。

2.我所说的“大前端”是什么意思

在我看来前端自动化是什么意思,“大前端”是变化多于固定的责任范围,是“前端”责任范围的延伸,是提高这种社会分工效率的一种进化形式,因为的能力范围,从而达到。跟大家分享一个八卦:CTO多次开玩笑——你不仅负责前端,还是改名“大全Stack”。这个部门的名字很霸气但也太高调了,所以他们没有接受BOSS的提议,而是继续使用部门名称“大前端”。

3.饿了么大前端团队的职责

如前所述,除了纯iOS/Android App的开发,其他一切都是我们团队的责任。同时,我们也负责公司的HTTP API层,有一些系统由我们自己运维。

在分工方面,我们目前有一个架构和移动组负责框架、规范和工具的生产;Node研发团队负责公司的Node业务基础设施和业务支持;多个业务前端团队支持不同的BU前端。这里值得一提的是,架构与移动组会向每个业务团队派出至少一名架构师,对业务团队遇到的问题有长期深入的了解并反馈给架构团队,并协助在提出解决方案后进行推广。

除了具体的职能分工外,每个团队还有按项目组织的虚拟团队。比如我们部门负责的“游戏中心系统”,由节点研发团队和架构与机场团队的成员组成;另一个例子是小程序团队。; 也像是发起了一场由“93后”独立组织组织的招聘会;专栏编辑团队、官方微团队、内外部分享会团队等。除了你看到的开源产品,所有内部项目都是“内部开源”,特别鼓励大家提交Pull Requests和相互Code Review . 这些与部门创造的文化息息相关,正如你可能猜到的,

二、大前端团队如何看待和实施新技术

我们如何看待新技术?在面试前端领导候选人时,我通常会问一个问题:您如何看待技术债务,有没有办法避免?几乎所有程序员都讨厌偿还技术债务,这就是为什么“挖个洞很酷,填满火葬场”这句话的原因。因为痛苦是非常值得思考和解决的。技术债是陈旧技术的一种程序化表现,新技术在未来的某个时间点会成为新的“技术债”。大前端如何回答这个问题?这就是我们对新技术的看法。

我在 2014 年加入饿了么,当时 PC 和 Mobile 还处于后端渲染模式,使用 Bootstrap 和 jQuery。我做的第一件事是用 Angular.js 重写移动网站,前端/后端分离,提倡后端即服务。在高速发展时期,移动网站被用来支撑当时10倍的业务增长;第二件事是重构PC站,将web2升级为web3(代号),也就是前后端分离。到2014年底和15年初,基本实现完全分离。重构一方面是为了提高前端协作的效率,另一方面是为了提高两个部门的掌握程度——只要API约定一致,内部包装可以随时自行更改(改进)。在那之后,我们的方向一直是更激进的技术模式——任何框架都可以用于新业务,每个人都可以自由选择;只要负责老业务的团队(人)有能力升级,就鼓励他们使用最新的。由于后端完全分离,掌握度有了很大提高,再加上这种鼓励激进的技术模型,Angular.js 1.x这个当年的新技术,在今天变成了技术债。它也几乎完全重写为 Vue.js 和 React.js。只要负责老业务的团队(人)有能力升级,就鼓励他们使用最新的。由于后端完全分离,掌握度有了很大提高,再加上这种鼓励激进的技术模型,Angular.js 1.x这个当年的新技术,在今天变成了技术债。它也几乎完全重写为 Vue.js 和 React.js。只要负责老业务的团队(人)有能力升级,就鼓励他们使用最新的。由于后端完全分离,掌握度有了很大提高,再加上这种鼓励激进的技术模型,Angular.js 1.x这个当年的新技术,在今天变成了技术债。它也几乎完全重写为 Vue.js 和 React.js。

当然,今天大家可以看到,在大家还在转发关于 PWA 的文章的时候,我们已经和谷歌合作,把 PWA 放到了网上;大多数开源项目都是内部应用成熟的项目,开源产品也使得 PWA 可用。我们成为了 Vue.js 世界排名最高的团队;对于 Weex,我们是第一个在阿里巴巴内部团队之外上线的大规模用户。这些看似快速且无止境的新技术追求背后,其实并没有大家想象的那么大,仅仅是因为团队文化本身就鼓励使用新技术解决问题。

如果非要以Vue.js为例,可能和你想的不一样,没必要“落地”,就因为有人说“哇,Vue.js写起来很简单,你要不要一起试试??”。然后,一个团队,两个团队……几乎所有团队都开始使用它,几乎所有新项目都在使用它。一位 IBM 朋友告诉我,他申请在项目中试用 Vue.js。上级说半年后试试看,半年后就推翻了。所以你看,在正确的文化土壤中,新事物是一种常态。如果你需要决定在一个项目中使用什么技术,它本身并不是一件简单的事情。

我们对技术选型的总体要求是——是提高饿了么的运营效率,还是提高团队发展的效率?你能坚持吗?有人负责吗?如果满足这些条件,就会得到推广。当大家都说 HTTPS 是个好东西的时候,我们已经把整个网络都推到了网上,等等——Webp、Https、Vue.js / React.js / Angular.js、Weex、PWA。例如,你可能注意到我们去年推出了 HTTP/2,而今天饿了么已经在前端做了 HTTP/2 Server Push 的实验。可以想象,在不久的将来,在线应用将会被广泛使用。这就是我们的选择和落地模式。

三、饿了么大前端团队特点:自由行

特征?如果只有两个字来回答它——自由放养。但光是这样描述,就会让所有人都打上问号。外界对我们的评价是:“跟得上新技术这么快”、“怎么又出去玩了”、“下班很早”、“大牛多”、“开源的东西得到很多of stars”,等等,但这不是我们要具体呈现的,它只是一个外观,或者一个副产品。

一个团队的风格跟创始人有很大关系。比如喜欢偷懒,会多考虑自动化;如果有干净的习惯,就会有代码规划和代码审查;有团队建设、下午茶等文化;但另一方面,我不希望团队像我一样,充满缺点,而是不断尝试,包容,让每个人都发光,都成为了集体的鲜明标志。所以我有自己的一套,也就是前端提到的“散养”管理,可能很大,但是我会重点讲几点:

雇用最优秀的人。最优秀的人,并不是全是行业内的明星,更重要的是能够在某些方面提升团队的人。这些人通常有上进心,只要有方向前端自动化是什么意思,就能推动事件的发生和发展。加入的人会被要求不要加入团队作为一种学习姿态,而是作为一种姿态,加入会使团队变得更好,成长将成为副产品。

鼓励创造成果,而不是追求工作时间。如果我们的目标是在 800 毫秒内加载页面,那么目标是 800 毫秒,而不是 12 小时轮班。

创造环境。我们拥有最优秀的人才,我们追求结果而不是时间,我们鼓励主动性和主人翁精神,我们创新打破规则,我们声明每个人都是为自己而生,为用户而不是老板工作,我们打包酒袋或查找一个可以玩到天亮的小岛。有很多东西要刻意创造,创新的土壤,积极的意识,热爱生活的文化,通过鼓励会聚集/培养什么样的人。

因为这种管理方式,通常大部分事情都在内部很好地解决了,我也有更多的时间去思考怎么做,决定怎么做;团队也更好,因为成员不断成长并闪耀着不同的光芒。在普通话中,我们需要找到一种“可持续发展”的模式。这种模式目前运作良好,无论是业务,还是团队文化本身,还是成员的成长,都令人欣慰。但是,更好的方法仍在探索中。如果只有一点要分享,那就是不要用“管理”的方式,而是“组织”起来,顺理成章。

图片[1]-饿了么大前端部门负责人林建锋,立志成为业界顶尖团队-老王博客

至于一味追求新技术。上面我们已经讲过技术选型的要求。最重要也是最根本的问题是“饿了么能不能提高运营效率或团队发展效率?” 我相信,如果你能很好地回答这个问题,你将能够解决“盲目”追求的问题。

最后,无论是管理、技术,还是生活,如果预留一定的空间和自由度,一定会带来惊喜。我不会详细解释。每个人都自己理解。也许有一天我们可以就这个话题展开对话。

四、大前端模型的优缺点

“大前端”模式的特点前面已经提到过,即前端本身能力的延伸。移动开发团队,这里我指的团队包括移动网页、Native-Like、携程等Native App;美团、饿了么北京研发中心等纯前端团队,只要客户端是网页或者APP,都在一个团队中;饿了么不仅有大前端,还有各个BU的Native App团队,甚至还有专注于移动基础架构的公共移动技术团队。

不同分工模式的优劣通常与公司地位和团队自身创造的价格密切相关;虽然每个人都是“离用户最近的工程师”,但没有公式可以照搬。

以饿了么的前端为例,由于业务的快速发展,除C端部门外,其他新成立部门的前端工程师都极度紧缺。为了资源的高效配置,成立了大前端部门。这是公司当时的业务状况。

创始人兼CTO曾经问我,“你觉得今天我们什么时候聚在一起,什么时候分手?” 当时我的想法是,如果一个前端业务团队发展到10人左右,除了负责自己的业务,还可以建立和不断升级自己的技术基础设施,拥有自己的自己的文化。两年后的今天,我不再这么想了,新成立的BU更愿意把人放在前端。

为什么是这样?我们从以下几点分析:

如果一个大团队不能提供便利的基础设施,不能创造一种自由和可能性的文化,不能不断地自我提升和帮助成员提升自我。也就是大家常说的对科技的追求、归属感、成就感。然后,拆分为业务组可能会更灵活。因此,前端业务团队的划分与整合,最终取决于大团队能否创造出比小团队更高的价值。

大多数人高估了“前端+后端+产品”坐在一起的效果,认为它会完美地解决问题。很多时候,对于程序员来说,少打扰多思考(比如坐内部电梯找人太慢了,你会开始思考是否需要找人),之后的沟通更有效率。沟通。

通过划分框架、流动性和业务团队,一方面基础设施共享(框架/工具)有更多的复用,人员调度可以节省大量资源(小团队_需求少的团队可以合并支持),并且有专注于业务的团队。,似乎是一个很好的分锋方式,10人的团队很难做到。

由此可见,一方面是对业务的影响,另一方面也取决于团队自身产生的价值。今天,无论是分还是合,利弊都会在做决定后计算。结合“优势产生更大的价值。这个问题的答案是利弊的答案。

五、行业大前端团队现状

每年,我们的团队都会以个人或团队的名义邀请多位前端行业领袖进行内部交流,同时也会组织内部和外部的交流会议。这通常是几个电话和微信的事情,总体上还是有很多交流的。即使没有专门的会议,也会偶尔互相交流。

行业现状我没有做具体统计,但是从我交流过的团队来看,很多团队现在都在前端方向,或者在这个方向发展。像携程、腾讯这样体量大、分工明确的少数公司。他们做的可能是“大前端”,但分离还是更倾向于JS+HTML+CSS等纯前端模型。

也期待读者所在的团队,如果有新的实践和想法,我们可以不定期讨论。

六、如何落地大型前端团队?

上一篇说过,要不要组建一个大前端团队,一方面看业务有没有需求,另一方面看合作能不能带来比分离更大的价值。

除非人很少,否则通常大部分业务会随着公司的发展越来越独立,而价值主要是关于人和文化。目标不是合并或遵循行业模式,而是优化公司的人才结构以优化业务。

如果一定要从具体的实现点讲,这里有两点:

关于作者

林剑锋,网名Sofish。现带领饿了么前端团队为公司在前端和Node领域提供基础设施和业务支持。博主、讲师、开源作者、企业家。

你饿了吗?前端文章合集

点击标题跳转

本文是前端“巅峰生活”置顶的专栏。“巅峰人生”栏目将邀请前端行业大咖分享他们在登顶之路上的人生感悟、学习心得、宝贵经验以及对未来的预测,助力淀粉的成长。查看专栏文章,请关注前端置顶,回复“巅峰人生”。

扩大视野

InfoQ主办的移动与前端开发领域精品大会[]将于6月9-10日在北京举行。饿了么高级前端架构师、大前端团队负责人林剑锋受邀担任大会特约前端制作人。本次专场希望通过Web/Server/App三端的行业最新实践,探讨技术解决方案和趋势把握,为大家提供一个讨论的机会和对未来大规模前端应用的启示。端技术。

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论