今天开始在新团队推行代码规范和 code review。如果从代码层面衡量一个团队,我们追求的是什么呢?作为一个研发 leader,我有一个朴素愿望:让所有人的代码看起来都像是一个人写的。
有人可能会反感:怎么能抹杀一个人的个性呢?可其实在一个工程团队中,只有最优秀的人的个性可能会带来好的结果,大多数人的个性只会给团队带来混乱。编程是一种典型的工程行为,创造性并不那么重要,可维护性和稳定性才更重要。所有的研发同学都要与别人协同工作、接手别人的项目。每当此时,大家一定不希望对方抛洒个性,最好都按照同样的约定、规范来。
代码规范和 CR 都是达成(接近)这一目标的方式。先说代码规范,大多数的代码规范代表的不是写代码时的约束,而是最低限度的最佳实践。遵循代码规范,协作中的认知成本会大大降低,争议也会减少,同时也能一定程度地避免低级的代码错误。再说 CR,CR 本质上是经验丰富的工程师拉经验稚嫩的工程师的过程。资深工程师通过 CR 指导初阶工程师,而初阶工程师通过 CR 学习资深工程师的经验。最终,期望都能成长成一样资深的工程师。