在蚂蚁的前端工程团队工作是怎样一种体验?

作者:茅晓锋

导读:打造出Ant Design、AntV等知名开源项目的蚂蚁体验技术团队,实际工作是什么样子呢?让我们走近蚂蚁前端工程团队一探究竟。

我是蚂蚁前端工程团队的一位工程师。很多人都以为我们是一群专职“造轮子”的同学。那么工程团队真实的日常工作是些什么呢?以我的观察体验,大概可以用有趣、有挑战、有价值三个词来总结。这里用几个实际项目给大家做介绍。

有趣:让“带薪编译”变得更快

随着前端业务复杂度膨胀,团队项目的云端构建速度不可避免地出现了恶化,部分大项目甚至冲破了20min,“带薪编译”成了常态。而工程团队要做的就是,找到自己和同学们在构建过程中的问题并加以解决,效率问题当然也是其中之一。

为了解决构建速度的命题,我们做了这些尝试:

1. 换基础平台,构建上云!

经过几轮考察,我们选定了阿里云函数计算(FC)作为新的构建环境。

通过选用高配集群 + webpack多进程策略调优 + 灰度观察,部分业务的构建耗时直接降到了60%左右。实践证明,函数计算不仅加加速了编译过程,它免运维的特性也使我们能更专注在前端构建本身的建设上。

2. 历史任务回放,在发布前做好评估

构建脚本升级一直是高危变更。为了确保不产生意外的breaking change,我们搭建了“流量回放”能力,通过重跑历史项目源码 + 新脚本,比对前后效果,尽可能把bug暴露在发布前。

借助构建服务在云端快速扩容的特性,我们在每次发布前都会进行数千次回放、寻找潜在变更点,由此帮助框架组做好发布决策。

3. 苹果m1来了

苹果新发布了m1芯片mac mini,发布后我们在第一时间就发起了采购。实测证明,m1的性能大幅领先现有各大平台,这对日常研发、构建服务都是巨大利好。

但集群运维、虚拟化依然充满不确定性,如何把它送到云端运行,我们仍在寻求解法...

在蚂蚁的前端工程团队工作是怎样一种体验?

图:m1 mac mini测试机已就位!

把云计算、webpack、高性能PC等产品做成组合拳,趁着新技术新平台的红利,让编译速度起飞吧

有挑战:试试把安卓云真机推送到桌面?

Android App的调试环境一直面临流程复杂、机型长尾等问题。由于测试覆盖不足,这甚至引发了几起线上bug。

为了缓解这个问题,我们考虑向内网云真机平台寻求协助,使研发同学在桌面上连接云真机、把远端真机调试映射成本地Chrome调试。

项目开动后,我们才发现坑比梦想大...现有云平台的速度、延迟、浏览器内UI操控体验远达不到本地桌面级的效果。于是团队小哥又被迫成为了调优工程师,在机型选配、adb协议、底层网络、桌面视频渲染各个节点寻求优化。

截止上周,我们第一次跑通了远程真机,邻座小哥热泪盈眶....

在蚂蚁的前端工程团队工作是怎样一种体验?

图:终于跑通了远程真机

App是前端业务的重要环境,日常在真实环境调试代码能大幅降低踩坑的概率

有价值:小程序IDE,争议和探索

小程序开发者工具(IDE)是我们团队投入度较高的项目,也常常是挑战和争议的汇聚地。但不管怎么样,对业务有价值的事情,我们就要去做。

这其中最大的争议来自于产品形态:vscode已占领前端IDE的半壁江山、命令行构建是前端业界常态,我们重兵投入IDE领域的意义是什么?专业开发者对IDE有各自的偏好,我们真能取悦所有用户吗?

在蚂蚁的前端工程团队工作是怎样一种体验?

图:小程序IDE产品

在团队产品经理(是的, 前端兼职产品经理!)组织的几番大争论之后,我们决定为IDE新增Lite模式,主打“轻量”体验,专注在调试器、预览、小程序SDK的核心功能体验上,其余环境工具还给开发者自由选择。

在蚂蚁的前端工程团队工作是怎样一种体验?

图:IDE Lite模式与vscode结合开发

历经数月闭关、首批用户尝鲜,支持Lite模式的小程序IDE已经发布了第一个Beta版本,用户反馈和Bugfix工作也在继续进行。未来还我们将配套发布vscode编码插件。

项目中我们需要同时承担功能研发和产品规划的双线职责,为产品价值负责,这可能是“造轮子”中最有挑战的一个话题

未来还有啥?

云计算、IoT、客户端动态技术、low code平台.... 随着技术生态前进,前端的武器库和业务领域都在不断扩展。

在前端效能、工程能力的方向上,如果你也有兴趣一起探索,欢迎加入我们一起探索!

蚂蚁体验技术团队招聘长期开放,上海、杭州、北京、成都,欢迎来聊!

在蚂蚁的前端工程团队工作是怎样一种体验?

(免责声明:本网站内容主要来自原创、合作伙伴供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,应及时向本网站提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明。本网站在收到上述法律文件后,将会依法尽快联系相关文章源头核实,沟通删除相关内容或断开相关链接。 )

Baidu
map