关键字:代码质量 团队建设 流程优化
美业技术团队前端对外的业务项目的主要编程技术栈是:
在构建项目的前期,前端对业务项目按端来划分人员,各端各司其职,各自沉淀。
中期随着产品的基本成型,前端团队人员按照业务领域划分成了多个子业务组前端,各组负责4端中对应模块的业务。
于是,我们美业团队20个前端几乎每个人都要维护4个不同的编码上下文的项目,好处是技术多样性丰富,但是瓶颈也同样存在,一个人需要拥有多端的开发能力,在编码规范和代码风格检查尽可能统一的情况下,因为上述技术体系的差异,我们还是不得不需要熟悉四端的技术架构、开发流程、数据流处理、资产市场、最佳实践。
这是很有挑战的,业务小组之间成立了一个小型的前端技术委员会,来应对这种变化:
随即,我们在代码质量上迎来了一些问题:
对代码质量的把控方面,现状流程是:我们半年要对几端的项目代码进行一次整体的code review。
但是和垃圾回收一样,整体的标记清除占用人员的时间较长,会影响届时涉及人员的业务开发进度。
于是我们想探索一种适合我们团队和业务发展,小步快跑模式的code Review,尽可能早的从一开始就参与进来,更高频率,增强审查和设计把控,减少后面返工和带来Bug所影响的整体效率。
有了这样的背景和改进诉求,我发现我们得重新定义一下我们做这件事情的目的和价值。
经过思考和讨论,我们做 Code Review 的核心目的只有两个:
同时要做上述理想中的 Code Review,我们可能不得不面临这些实践过程中会遇到的问题:
基于这些诉求和待解决问题,我们需要对整体的标准和每一次 Code Review 的关键控制点进行细化和量化,于是有了我们第一版 Code Review 的 SOP(标准作业流程)。
宣讲各端统一代码规范和最佳实践、编码原则。Code Review的基础是有基本的代码规范和原则,同时要同步给大家。
成立专门的 code review 小组,小组成员是各端经验丰富的人员,这样才能比较好的保障初期 Review 有比较好的效果,可以让 Code 人员有更大所获,先富带后富,经过多次 Code Review 对齐标准之后,更多 Code 优秀的同学也可以加入进来,讨论对规范和原则的实践。
每项1~5分,基准分为3分,得分在此基础上根据评分点浮动,总评分为各项得分的平均分。
① 基本面:对团队既定规范的遵循和代码开发的改动量是我们做评分的第一个基础。
② 架构设计:是否有整体设计,设计是否合理,设计是否遵循了设计,这是第二个维度
③ 代码:代码细节上是否尽可能保持简单和易读,同时鼓励细节优化是我们的第三个维度
④ 健壮性:错误处理、业务逻辑的边界和基本的安全性是我们的第四个维度
⑤ 效率:是否贡献了整体,为物料库和工具库添砖加瓦,与整体沉淀形成闭环,是我们第五个维度的初衷
Code 人在企业微信群发起 Review 申请,统一参考格式,内容包括:
mr地址、产品文档、UI稿、技术设计、效率平台、接口文档
原则是能为 Review 方尽可能提供足够的信息来判断 Code 的好坏,去更好发现深层次问题。
当然文档也说不到全部的上下文,所以我们需要分配 Review 人员时候要考虑技术栈和业务相关熟悉度,必要时候 Code 人员要向 Review 人员口述需求、代码思路和重点。
1.0版本在持续的细节迭代,做到了比较满意的标准化作业,但是有几个比较大的缺陷:
1.操作欠缺自动化
2.信息欠缺数字化
3.流程欠缺可视化
所以我们有了把 Code Review 整套流程做成已有的内部前端工具平台中一个模块的想法,以期达到可视化、自动化、数字化的目的。
投入产出比是我们需要考虑的,我们很笃定。因为虽然这件事情没有直接的业务价值,但是有非常好的质量把控和能力量化的价值,并且有标杆式的团队建设价值,人员成长了,更好地为业务服务。
在完成上述基本需求之后,我们同时在收集反馈新增了
结合数据库表设计之后,我们就分工开整了。
前人种树,后人除了乘凉之外得继续浇灌。流程和机制是死的,我们得用一些更加有温度的一些策略让它持续可以迭代和发展继承下去。
附带一些半年颁奖的图:
本文篇幅有限,实践过程中很多的细节问题和处理没有阐述,比如 code、review 双方的协作处理等。欢迎进一步讨论。
微信:zz94530
目前有赞深圳研发团队大量招聘高级前端,欢迎咨询和投简历~