在项目开发中,代码质量是非常重要的一环。高质量的代码对项目完成质量、能否按时完工有重大影响。而一个团队中开发成员的配置往往是金字塔形的。基于开发成本考虑,项目主管或小组长一般由经验丰富的资深高级程序员担任,开发成员则由普通程序员、新员工、实习生组成。各个开发成员水平参差不齐,以及该行业内开发人员的高流动性。这样的条件和环境必然带来代码质量问题。项目主管难于把握项目进度,很容易造成项目延期,即使加班不少。
既然问题存在了,就必须解决它。解决的思路就是代码审查。
代码审查的前提:
1、统一项目组内部代码审查必要性思想,消除猜忌,建立融洽的团队合作气氛。代码审查不是挑刺。不建议使用审查中问题的发现率作为绩效考评标准。
2、确立合乎自己项目组要求的代码规范文档;
3、确立代码审查者:项目组成员少于3个,组长是审阅者。多了则要适当按模块分小组,每组不多余3人,每小组选经验丰富的程序员做为代码审阅者。要求代码审阅者与被审阅人最好为同一模块开发者。小组长的工作安排时就应考虑其代码审查职能,并相应减少其代码工作量。
4、确立审查标准、部署审查代码工具。普通程序员代码提交之前由代码审阅者实施审查。审阅代码者多于2人同时又有代码提交时,审阅代码者互审。
代码审查内容:
1、代码风格。通过代码复查,一方面督促开发人员按照规范编写代码,另一方面也使开发人员自身形成良好的编程习惯。代码风格的审查,由于内容比较单一,我们常常可以通过一些代码复查的工具来自动完成,提高复查的效率。
2、重大缺陷。预先整理编写代码审查的重大缺陷列表,并根据实践经验不断更新、补充、积累审查项目,并在每次审查中逐一检查。这些审查项目根据经验划分等级、优先级。
3、设计逻辑与思路的审查。这部分的审查是代码复查中最核心、最有价值的部分。代码风格与重大缺陷的审查,虽然重要但简单而机械,可以通过软件自动检查;而设计逻辑与思路的审查,却是复杂而有深度的审查,需要有一定理论深度和编码经验的人才能完成,而且对新手尤其重要。在新手完成编码以后,让老手去进行代码复查,指出新手的问题,指导新手设计。这样的过程最初可能需要重构,甚至重新编码。新手的进步、成长速度是加快的。老手通过对新手的指导,整理和升华自己的设计思路与理论,同时也是对自己另一方面的锻炼与提高。最终整个团队都得到了提高。
但代码审查无疑也带来了很高的代价。时间、人力与代码质量,其本身就是鱼和熊掌不可兼得。因此不同公司、同公司不同发展时期就会采取不同的代码复查策略。审时度略,实事求是,每个项目组都应该提出适合自己的代码审查方法。