干货分享:蚂蚁金服前端框架和工程化实践
在极客邦科技前两天召开的 GMTC 全球大前端技术大会上,蚂蚁金服高级技术专家陈成发表了《蚂蚁金服前端框架和工程化实践》的演讲,以下是本次演讲摘要。
框架发展历史
这是我们的框架发展时间线。
- 2015 年之前我们有 Sea.JS、Arale、SPM 开源技术方案,大家可以有所耳闻。
- 2015 年我们接入 React,从自研的 Roof 到 Redux 再到开源的 Dva,一步步验证我们的最佳实践,并把这些实践交给开源社区检验。
- 2017 年开始尝试了新一代的企业级前端框架,Umi 和 Bigfish,前者是从无线业务中长出来的,后者是从中台业务中长出来的。
- 一个团队出两个框架毕竟不是长久之计,后来老大直接把两拨人调到一个组,于是就愉快地合并在了一起。
在 Umi 和 Bigfish 时代,我们从刀耕火种的时代跨入了工业化时代。因为在此之前,用户需要接触很多技术栈和细节,在 Umi 和 Bigfish 中,用户只要知道一个框架,剩下的全部不用了解。框架像一个魔法球,把各种技术栈吸到一起,加工后吐给用户,以此来支撑业务。
在两个框架合并之后,我们的现状是这样:
- umi 对外开源,bigfish 对内服务内部同学。
- bigfish 扔掉原有实现,改造成 umi + umi 插件集的一个架构。
- 我们不是第一个这么做的,类似的还有 eggjs 和 chair。这是一种很好的方式,开源和业务两不误。
那么,这是我们的框架终局吗?以及是否还有更好的方式?大家也可以思考下,后面在未来规划区域会有探讨。
这是一些蚂蚁的内部数据:
- 1100+ 内部应用数
- 新增产品 80% 都用此框架
- 包含 100+ 插件数量,社区够活跃,尤其是内部的
- 1500+ 内部使用者
目前来看,这个框架基本统一了内部的框架使用情况,不仅有不熟前端的 Java 开发,略熟前端的外包,还有资深的前端同学。要获得那么多同学的认可,并不是件容易的事。
为什么我们能成?
那么,为什么我们能成?个人理解,我觉得有几个关键词:
- 人
- 业务
- 流程
- 开源
人是非常重要的一环,甚至比技术本身更重要一些。
那么别人为啥要用你的框架?首先,框架要好用,这是最基本的;然后,使用者尤其是资深的前端同学,还得在这上面找到自己的成就感和 ownership,另外如果绩效漂亮就更好了。总不能别人用你的框架,然后只有你自己一个人的绩效好,那是不会长久的。
我们的解法是插件体系。
框架不是凭空而来的,需求来自于业务,所以用框架写业务的同学往往能发现框架不足的点,他们可以开发适用于自己业务的框架插件,反哺框架。如果这是通用需求,那就亮了。
框架的内部开发群有 100+ 人,包含大量来自业务线的同学,这就是插件体系的好处,人人都能贡献。
为了让写插件变得简单,我们给框架分了五层架构......
查看原文,点击了解更多