基建该搞什么?首先我们要说,基建的内容和业务阶段、团队既有建设沉淀是分不开的。越是偏初创期的团队,其建设,往往越偏向于基础的技术收益,如脚手架、组件库、打包部署工具等;越是成熟的业务和成熟沉淀的团队,其建设会越偏向于获取更多的业务收益,如直接服务于业务的系统,技术提效的同时更能直接带来业务收益。

    业界大部分的研发团队,都不是阿里、腾讯、头条这样基础完备沉淀丰富的情况,起步期和快速爬坡期居多,建设滞后。体现在基建上,可能往往只有一个基于 Webpack 搞搞的脚手架,和一个第三方开源的 UI 组件库上封装下自己的业务组件库,除此之外无他。如果看官现在恰好是我说的这种情况,不用焦虑,下面是研发流程链路:
    image.png

    如上图所示,一个基本的研发流程闭环,一般是需求导入 - 需求拆解 - 技术方案制定 - 本地编码 - 联调 - 自测优化 - 提测修复 Bug - 打包 - 部署 - 数据收集&分析复盘 - 迭代优化 —— 即新一轮的需求导入。

    在这个基础的闭环中,每一个节点都有其进一步的内部环节,每一个环节相连,组成了一个研发周期。这个周期顺,研发流程就顺。这个周期中每一个环节的阻塞点越少,研发效率就越高。最初期的基建,就是从这些耽误研发时间的阻塞点入手,按照普遍性 + 高频的优先级标准,挨个突破。

    提效、体验、稳定性,是基建要解决的最重要的目标,通用的公式是 标准化 + 规范化 + 工具化 + 自动化,能力完备后可以进一步提升到平台化 + 产品化。在方向方面,我们团队是从下面的 8 个主要方向进行归类和建设,供大家参考:
    image.png

    • 开发规范:这一部分沉淀的是团队的标准化共识,标准化是团队有效协作的必备前提。
    • 研发流程:标准化流程直接影响上下游的协作分工和效率,优秀的流程能带来更专业的协作。
    • 基础资产:在我们团队,资产体系包括了工具链、团队标准 DSL、物料库(组件、区块、模板等)。
    • 工程管理:面向应用全生命周期的低成本管控,从应用的创建到本地环境配置到低代码搭建到打包部署。
    • 性能体验:自动化工具化的方式发现页面性能瓶颈,提供优化建议。
    • 安全防控:三方包依赖安全、代码合规性检查、安全风险检测等防控机制。
    • 统计监控:埋点方案、数据采集、数据分析、线上异常监控等。
    • 质量保障:自测 CheckList、单测、UI 自动化测试、链路自动化测试等。

    如上是一般性前端基建的主要方向和分区,不论是 PC 端还是移动端,这些都是基础的建设点。业务阶段、团队能力的差异,体现在基建上,在于产出的完整性、颗粒度、深入度和自动化的覆盖范围。