理解代码审查对任何想到代码审查的人,回顾他们几年前的做法,在快节奏的敏捷工作场愕漓淤说所引入这样一个系统的酡箔挝棍前景似乎是一种残忍的、不同寻常的惩罚。早在1976年,当IBM的MichaelFagan发表了他的开创性论文《设计和代码检查以减少程序开发中的错误》时,正式的、系统的代码审查的想法就迅速流行起来了(早期版本的对等审查往往不太结构化),通常包括一群人围坐在闷热的房间里的一张桌子旁,一起浏览电脑代码的点阵打印稿,手中拿着红色的笔,直到他们头晕眼花。但是仅仅因为某件事很痛苦,并不意味着它不值得付出努力。正如CapersJones和OlivierBonsignour在2011年一篇名为《你检查了吗?》的博文中说到:TomGilb是处理软件检查的著名作者之一,他和他的同事们最近的工作继续证实了他们早期的发现,即人类检查代码是发现和消除源自需求、设计和其他非编码交付的复杂问题的最有效方法。事实上,为了识别源代码中更深层次的问题,正式的代码检查在缺陷去除效率上超过了测试。
工具/原料
电脑
方法/步骤
1、理解代码审查对任何想到代码审查的人,回顾他们几年前的做法,在快节奏的敏捷工作场愕漓淤说所引入这样一个系统的酡箔挝棍前景似乎是一种残忍的、不同寻常的惩罚。早在1976年,当IBM的MichaelFagan发表了他的开创性论文《设计和代码检查以减少程序开发中的错误》时,正式的、系统的代码审查的想法就迅速流行起来了(早期版本的对等审查往往不太结构化),通常包括一群人围坐在闷热的房间里的一张桌子旁,一起浏览电脑代码的点阵打印稿,手中拿着红色的笔,直到他们头晕眼花。但是仅仅因为某件事很痛苦,并不意味着它不值得付出努力。正如CapersJones和OlivierBonsignour在2011年一篇名为《你检查了吗?》的博文中说到:TomGilb是处理软件检查的著名作者之一,他和他的同事们最近的工作继续证实了他们早期的发现,即人类检查代码是发现和消除源自需求、设计和其他非编码交付的复杂问题的最有效方法。事实上,为了识别源代码中更深层次的问题,正式的代码检查在缺陷去除效率上超过了测试。
2、作为极限编程(XP)的标志之一,这种编写软件的方法让开发人员并肩工作(至少是象征性的),一起处理相同的代码,从而在他们前进的过程中检查彼此的工作。
3、对于高级开发人员来说,这是一个指导初级同事的好方法,而且似乎将代码审查直接纳入了编程过程。然而,由于作者或配对者倾向于过于接近他们自己的语法,因此其他的代码审查方法可能比本方法有更多的客观性。
4、时审查对于大多数开发人员来说,这种方法比XP的配对编程更舒适,旧的跨平台技术是参与对等代码审查的最简单和最直观的方式。一旦你的代码准备好了,就找一个合格的同事去你的工作站(或者去他们的工作站)查看你的代码,就像你向他们解释你为什么这么写一样。这种非正式的方法当然是“轻量级的”,但是如果缺乏跟踪或文档记录的方法,它可能会有点太轻。
5、4.工具辅助审查 我们把我们个人最喜欢的东西保存到最后,因为可以说没有比基于软件的代码审查工具更简单、更有效的方式来审查代码了,其中一些工具是基于浏览器的,或者无缝地集成在各种标准IDE和SCM开发框架中。
6、软件工具解决了上述方法的许多局限性,以清晰一致的顺序跟踪同事的评论和缺陷的建议解决方案(类似于跟踪MSWord中的变化),使得评论能够异步和非本地进行,当新的评论出现时,向原始编码人员发出通知,并保持整个过程高效运行,无需召开会议,也无需任何人离开办公桌。一些工具还允许审查和修订需求文档,重要的是,还可以生成关键使用统计数据,提供流程改进和合规性报告所需的审计试验和审查指标。