总结于《代码之丑》专栏——郑晔
为何要做代码评审
代码评审,也就是很多人熟悉的 Code Review。
Wikipedia 上定义是这样的:代码评审,是指对计算机源代码系统化地审查,常用软件同行评审的方式进行,其目的是在找出及修正在软件开发初期未发现的错误,提升软件质量及开发者的技术。
- 从个人角度出发,通过代码评审,用团队智慧规避个人的错误。
- 从团队角度出发,代码评审是一个知识分享的过程,保证一些细节的知识不再是隐藏在某一个人的头脑中,而是放置到了团队的层面。
代码评审可能暴露的问题
- 实现方案的正确性:很多初级程序员只能考虑到代码正常运行的情况,考虑不到代码出现异常时的处理方案。
- 算法的正确性:别看整个行业都十分重视算法,但那是在面试的过程中。真正到了实际工作里,算法复杂度常常被人忽略。比如在循环语句中做一些多余的操作,使整个复杂度变高。
代码评审的频率
不同的团队代码评审,频率是不一样的,最糟糕的肯定是不评审,整个团队闭着眼睛向前冲,这就不是我们关心的范畴。常见的评审频率是每个迭代评审一次,也有每周评审的。
专栏笔者——郑晔的建议是:提升评审的频率,比如,每天评审一次。评审周期过长是有问题的,周期过长,累积的问题就会增多,造成的结果就是太多问题让人产生无力感,说白了就是要改的代码可能会很多,牵扯的代码也会多,彼此相互关联,修改难以进行。缩短评审的周期,实际就是“提高沟通的频率”,如果把代码评审推至极致,就是有个人随时随地来做代码评审,就相当于结对编程。当然了,现在的环境几乎没有机会能做到这一点。
结对编程(英语:Pair programming)是一种敏捷软件开发的方法,两个程序员在一个计算机上共同工作。一个人输入代码,而另一个人审查他输入的每一行代码。输入代码的人称作驾驶员,审查代码的人称作观察员(或导航员)。两个程序员经常互换角色。
好的结对编程对两个人的精力集中度要求是很高的,两个人一起写一天代码其实是很累的一件事,不过,也正是因为代码是两个人一起写,代码质量会提高很多。