IT 公司的(大)前端团队体系都是怎样的?
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
IT 公司的(大)前端团队体系都是怎样的?
我知道的美团和饿了么是做的大前端体系,包含了iOS/安卓/前端/node,号称终端(大前端)团队。
那么阿里那边是什么样的呢?
提示:以下是本篇文章正文内容,下面案例可供参考
一、前端体系是什么?
前端体系建设从前端开始专职发展就慢慢开始演进了。在过去常描绘一些技术细节作为前端体系所需要的,而没有看到其背后的连接,所谓建设之道,即是建立向前向后的连接。前端在项目研发中的上流是交互视觉,下流是后端研发。这两个角色之间的连接对我们来说至关重要。
这就有两个方面,一是团队与团队之间的体系,尤其是上下流团队之间的连接。二是前端团队之内的体系,可以理解为角色之中的连接。
二、阿里淘宝
首先要说说阿里的体系,那么在阿里的淘系前端团队,开发与部署的模式随着技术的发展,仍然正在处于不断变化的过程中。一方面体系内外纷繁复杂的能力模块不断地向前发展,另一方面 LSP、DAP 等底层技术基础也逐渐成熟。在当下,我们正在通过集成研发环境 IDE 的方式,将上一个阶段孵化沉淀的研发生态进行再一次的整合升华,将原有的链路再次重组,从当下用户的痛点中找到突破口,发掘当下各个研发场景中的最佳能力组合,搭建通用底层平台,升级变革现有模式。
作为从 14 年实习到 15 年正式进入公司的前端开发,在前身为淘宝前端团队的 淘系前端团队 经历了大大小小的开发和部署方式的更迭,同时也有幸在整个的变革潮流中参与过其中的一些能力的建设。今天从一个亲历者的角度,通过自身经历与向同事考究,以分阶段的方式来进行回忆和描述。
(本文回答来自于阿里巴巴淘系技术部前端技术专家 上坡)
回答将整个故事分成四个阶段,首先是 13 年左右以代码发布存储、部署改造成 Gitlab 技术体系为主旋律的 “石器时代”; 14 年左右伴随着 NodeJS 技术成熟,用前端 JS 语言建设工程化工具的 “白银时代”;从 15 年开始,在借助 NodeJS 技术完成工程化工具尝试之后,更系统化建设线上线下前端工程化体系的 “黄金时代”;以及在当下我们正在通过客户端、容器、算法等多元化技术打造未来研发模式的"未来时代"。
1.石器时代
在 13 年前,前端的研发模式其实与后端研发的方式没有太大的差异,大部分是基于 SVN 进行 SCM 代码管理。在完成每天的代码研发工作后,通过命令行或者 小乌龟 等工具将代码上传到 SVN 服务器中完成一天的开发流程。在部署阶段,通过手动拷贝或者 FTP 上传的方式,将测试代码进行上传到测试服务器上,在完成测试之后,人工检查下代码版本及内容,然后进一步上传到生产环境,完整整个研发部署流程。
在那个时期,代码管理工具除了 SVN 之外,也出现了基于 GIT 协议实现的代码管理工具 Gitlab。面对 SHA-1 算法带来的版本检测便利性、本地分布式的代码版本控制的灵活性等优势,我们逐步将部门内的 SVN 研发工作流程迁移到了 Gitlab 上。同时这个变化也算是淘系前端研发变革的起源。
在经历代码版本管理工具切换带来的便利同时,我们思考当时较为操作繁琐、需要人工保证的部署流程是否也能进一步的在新的体系上得到改善。在新版发布系统的背景下,我们在新的 Gitlab 系统所提供的各种能力中,发现可以将 webhook 机制进行一定的上层封装,借助规则化的操作,来触发与发布系统的关连,自动完成发布上线流程。我们基于 publish/版本信息 这样固定规则的 Git Tag 来触发 webhook 事件通知,触发发布系统的调用上线流程,从而完成了第一个实际意义的前端研发全自动化发布流程。
这个阶段就像 “石器时代” 般原始,不过在完成了研发基础设施这块如釜底抽薪般的改造之后,为后续的发展提供了坚实基础。同时随着前端技术发展的契机,我们也基于这套底层体系进入了新的阶段。
2.白银时代
在 14 年左右的时候,已经诞生 5 年多的 NodeJS 技术也逐渐变得成熟起来,当时团队基于 NodeJS,产出了一套名为 DEF 的研发本地端 CLI 终端工具,工具的核心是一套 Node 模块的安装、调用管理机制。工具开发者通过将研发功能模块封装成 DEF 体系下的 插件 形式,通过不同 插件 模块的调用组合,来实现对前端项目的编译、调试、上线等操作。
在当时 K