限时领|《AI 百问百答》专栏课+实体书(包邮)! 了解详情
写点什么

从淘宝前端工程化演进,看工程化之路如何“私人订制”

  • 2019-04-19
  • 本文字数:2808 字

    阅读完需:约 9 分钟

从淘宝前端工程化演进,看工程化之路如何“私人订制”

随着前端开发复杂度的日益增加,各种各样适应业务的组件框架也层出不穷。同时,我们面临业务规模的快速发展和工程师团队的不断扩张,Web 业务日益复杂化和多元化,前端开发已经由以 WebPage 模式为主转变为以 WebApp 模式为主了。现在的前端项目,再也不是过去那种切个图+搞几个 jQuery 插件就能实现业务所有功能了。工程复杂性越来越高,同时也伴随更多的问题出现,如何进行高效的多人协作?如何保证项目的可维护性?如何提高项目的开发质量?


这个时候就出现了前端工程化这样一个概念,希望能在日常开发中制订一个规范化的前端工作流,很好地规范统一项目的模块化开发和前端资源,让代码的维护和互相协作更加容易更加方便,令前端开发自动化成为一种习惯。同时,让大家能够释放生产力,提高开发效率,更好更快地完成团队开发以及项目后期维护和扩展。


从前端工程化的成熟度来讲,一般一线大厂的进化程度较高,这些都是由业务增长推动团队和技术不断进化的。当你每天处理的业务量越来越多,加入项目的人数不断上涨,那么就急需一套规范化的工作流程,来提高工作效率。为此,GMTC全球大前端技术大会对来自阿里巴巴的高级前端技术专家朱华军(花名:阿大)老师做了一次采访,他专注于研究前端工程化领域,推动开发工具、流程和规范的统一,完成淘宝近百人前端团队研发模式的整体升级,请他来聊聊淘宝的前端工程化演进之路,希望对各位有所启发,以下为采访内容:


GMTC:朱老师您好,可以请您先简单的介绍一下您自己和您现在所负责的工作吗?


阿大:我真名叫朱华军,在淘宝每个人都有花名,我的花名是:阿大!2009 年加入的淘宝,2012 年之前主要负责线上业务前端技术部分,之后开始专注前端工程体系的建设,目前负责阿里巴巴集团前端工程中台,致力于提升前端的研发效率和研发质量,降低前端研发的协同门槛和投入成本。


GMTC:前端工程化是近两年前端圈非常火的话题,请您简单谈谈工程化的意义?


阿大:前端工程化在不同的阶段是可以有不同理解的。如果就一个人开发,用一些工具来提升自己的开发效率,这是工程化最初的阶段(工具化);慢慢开始有多人协同开发的时候,大家需要约定一些规范,所有人都需要遵守,这是一般规模团队的做法(规范化)。当协同规模再大一点的时候,一般 20 ~ 100 人左右,规范的落地就变得没那么容易了,通过一个流程的方式来保障规范的执行就显得尤为重要(流程化)。当协同人员数量到几百甚至上千的时候,就会形成一个一个的小技术圈子,开始出现能力的重复建设和内耗,这个时候就需要对日常研发过程中的所需能力进行分层,抽象出来的基础能力通过某个平台来承载,其它业务或团队定制部分基于抽象出来的能力进行二次开发(中台化)。


工具化——规范化——流程化——中台化是不同团队规模阶段的不同工程实践方向。虽然小规模团队没有必要去搞一个工程中台,站起来喊一嗓子就能高效解决地问题,但是可以通过制定规范和使用流程有效地提升协同效率。即使是个人,也可以通过合理的使用工具,极大地提升个体效率和质量。我想这就是工程化思想带给前端最大的价值吧!


GMTC:淘宝近百人研发团队的前端工程化是如何演进的呢?(其中遇到了哪些问题,是如何解决的)


阿大:淘宝前端的工程化路径其实就是工具化,规划化,流程化这一演进过程。大概 2011、2012 年左右,基于** Node.js 的命令行辅助开发工具开始流行起来,团队内开始出现各种命令行工具,不过这些工具属于民间开发,没有统一的使用方式和长期的支持。然后团队就开始组建专门的工具小组,所有民间工具收归到一个官方命令行工具。这个官方工具提供一定的扩展能力(一套插件机制),这样不同的业务形态工具(比如支持无线 H5 开发的工具和支持普通 PC 开发的工具)可以在统一的工具下通过插件的方式实现。工具底层统一提供异常收集、插件更新、跨平台平台兼容等基础能力。在规范研发工具的同时,团队还出台了内部研发规划。不过在实行一段时间后发现规范的落地是一个蛮大的问题!同时,团队开始关注日常研发效率和质量。但是仅仅通过工具没有办法获取相关的数据,这个时候研发流程的建设就被提上了日程。如果本地工具负责的是代码提交到仓库之前的工作的话,那么流程就是负责代码提交仓库之后的事情了。这个时候我们建设了三个平台:云构建、门神和研发流程平台,云构建是一个在线构建逻辑管理和运行平台,构建器(构建逻辑的 NPM 封装形态)和基于 Docker 的任务运行容器集群是云构建的核心技术。门神是一个代码检查平台,前端规范部分就是靠它来落地的,比如编码规范检查,代码注释检查,三方库 License **合规检查等等。最后通过研发流程平台,将权限、构建、检查和发布上线的过程串起来,同时也实现了研发规范的落地和研发数据的沉淀。


GMTC:前端工程化是为了提升业务效率,那么对于中小型公司的前端工程化之路您有什么建议吗?


阿大:其实我个人在外分享前端工程是比较少的,就目前而言工程化走到越后面通用性越低!毕竟私人订制型的服务肯定用的最爽。但毕竟是私人的,并不能通用,最多也就思想层面可以借鉴,所以并不是别的公司好的前端工程体系建设,放在你的公司一定合适。中小型公司一般前端团队的规模都不会特别大,一般团队规模在**10 人以内的我建议不用系统化的去考虑工程相关建设。前端同学都是很爱捣鼓的个性,充分发挥个体的能动性即可,整体的研发效率和质量不会因为你做了规范或者统一了工具有明显提升,大部分的情况反而是下降的。当团队规模在 20 人以上的时候,协同的瓶颈就开始显现,如果没有一定的规范、流程和工具的约束,20 人的整体产出很大可能是远远小于个体之和的。这个时候一定要制定相关的研发规范、统一技术架构,如果规模在 50 **人以上的话,就要配以一定的工具和流程来对研发过程进行有效约束,同时需要有研发数据的积累沉淀,通过数据指导体系优化。


GMTC:面对前端业务以及技术架构复杂度的不断提升,您觉得前端工程化未来会是一个怎么样的发展趋势?


阿大:一个技术发展的是否成熟,很大程度是可以通过工程化程度体现的。前端近几年的快速发展是软件行业有目共睹的,大部分的公司前端已然不是单纯的前端了!目前前端工程相关的领域的讨论和建设虽然大家感觉比较火热,但其实还是比较初期的。随着前端及前端周边技术的不断完善和充实,未来前端工程能力会更加趋于一种服务能力,会更好地与机器学习等智能化方向结合。会极大地降低复杂的、优秀的前端技术的应用门槛,同时也有可能通过完善的工程能力的建设,淘汰一大批入门级的、劳动力型的前端职业人员。


朱老师将会在本次GMTC全球大前端技术大会上担任”前端工程化“专场的出品人,对前端工程化方向感兴趣的朋友不妨来现场看一看。本次大会我们还设置了小程序、性能优化、前端框架、Node、移动 AI、图形渲染、前端团队管理等热门技术专场,可点击”这里“了解大会详情。目前大会8折售票倒计时进行中,团购更优惠,购票咨询:18514549229(同微信)


2019-04-19 00:006566

评论 1 条评论

发布
用户头像
移动方向-移动Ai
2019-05-08 09:23
回复
没有更多了
发现更多内容

YouTube如何下载1080P的高清视频带声音?5种方法可以搞定

右手牵

下载 视频 youtube

如何缓解低代码开发的安全风险

YonBuilder低代码开发平台

小程序云开发 开发者 低代码 APP开发 APICloud

Linux nslookup 命令

一个大红包

Linux linux命令 4月日更

基于mysqldump聊一聊MySQL的备份和恢复

麦洛

MySQL MySQL 运维 数据备份

手机淘宝轻店业务 Serverless 研发模式升级实践

Serverless Devs

阿里云 Serverless 云原生 淘宝

云洲链硬核支撑!济南标识解析二级节点解析量全国第一

云计算

gdb调试工具使用

正向成长

gdb

产业级项目实战配合技术讲解,百度零门槛AI开发实训营重磅开营

百度大脑

百度 AI

如何批评下属?

石云升

团队建设 28天写作 职场经验 管理经验 4月日更

【全网首发】2021 年从iOS初级到大牛,涵盖大部分iOS开发知识体系,不会没收藏吧!

一意孤行的程序员

swift 面试 ios开发 底层应用开发 知识分享

苦难中开花|靠谱点评

无量靠谱

专访前美篇首席架构师张超|从工程师到CTO的蜕变

Aldeo

程序员 采访 调查采访能力考核

架构师实战营 模块一总结

代廉洁

架构实战营

低代码真能做到“让人人都能做开发者”吗?

优秀

低代码

JVM 读书笔记(一) 内存划分

U2647

JVM 4月日更

百度南渡,护航泉州水务的产业智能化征程

脑极体

腾讯iOS开发要达到咋样的水准?

一意孤行的程序员

flutter 职业规划 音视频 ios开发 iOS逆向

英特尔Ice Lake对于高性能计算市场意味着什么

E科讯

数字化转型:打破孤岛以提高数据安全性

龙归科技

数字化

话题讨论|To B & To G,互联网公司的下一主战场

程序员架构进阶

话题讨论 28天写作 4月日更 To B业务 领域思考

专访阿里巴巴研究员吴翰清 | 安全的持续运营之道

架构精进之路

4月日更 调查采访能力考核 人物访谈

Go Channel

escray

学习 极客时间 Go 语言 4月日更

阿里P8带你学习:一次线上服务高 CPU 占用优化实践

学Java关注我

Java 编程 架构 程序人生 软件架构

Rust从0到1-代码组织-Packages和Crates

rust Package crate

随机而转 当机而动|靠谱点评

无量靠谱

独家对话阿里云函数计算负责人不瞋:你所不知道的 Serverless

阿里巴巴云原生

Serverless 容器 微服务 开发者 云原生

Zip和7-zip谁更强,如何选择?

麦洛

ZIP格式 ZIP zip4j

万字长文,38 图爆肝 Redis 基础!

一个优秀的废人

redis 数据结构 集合 哈希表 跳表

不忘初心,中级领导力修炼

IT民工大叔

领导力 管理

时间很贵,有趣才对

小天同学

读书笔记 读书感悟 好书推荐 有趣 4月日更

TO B产品从0到1:从项目中走出来

菜根老谭

产品孵化

从淘宝前端工程化演进,看工程化之路如何“私人订制”_大前端_朱华军_InfoQ精选文章