在一个极端的编程项目中,程序员大部分时间都会进行配对编程。
由于这些对也轮换使用,也就是说,您将程序与不同的人配对,并且具有集体所有权感,因此经常对源代码进行检查和更新。
这样的话,是否需要代码审查?我的意思是,停止编程,实际上只是进行代码审查。
在一个极端的编程项目中,程序员大部分时间都会进行配对编程。
由于这些对也轮换使用,也就是说,您将程序与不同的人配对,并且具有集体所有权感,因此经常对源代码进行检查和更新。
这样的话,是否需要代码审查?我的意思是,停止编程,实际上只是进行代码审查。
Answers:
极限编程的关键资源之一是Ward的Wiki(又名Portland Pattern Repository,又名C2.com)。在这里,许多人讨论了各种方法,并在使用它们时记录了下来。
在此Wiki中,有一个页面:Extreme Programming Code Reviews,其中包括Ron Jeffries和Kent Beck在内的许多贡献者。
为此,他们说:
许多大型流程专家认为代码审查很重要。它们旨在确保符合标准,更重要的是,旨在确保代码清晰,高效,有效并且具有QWAN。他们还打算帮助向团队其他成员传播有关代码的知识。
ExtremeProgramming要求所有开发工作均由两名工程师共同完成。该代码实际上在很大程度上被实时审查。这样可以确保一个以上的人始终对代码有深入的了解。
ExtremeProgramming要求所有对象都具有UnitTests。这些确保对象可以正常工作,并在修改后继续工作。
有些语言是反射性的。用这种语言,UnitTests可以直接检查重要的标准一致性。(例如,对象必须同时实现#=和#hash,或两者都不实现。)
ExtremeProgramming实践CollectiveCodeOwnership,这意味着许多开发人员将浏览需要注意的对象。这往往给那些不符合标准的代码带来压力。鼓励/期望来访的开发人员在发现偏差时使代码一致。这还可以确保将代码知识传播到最初创建代码的那对程序员之外。
因此,ExtremeProgramming项目不需要明确的审查。从您的方法中删除它们。
其他人对该主题也有很多讨论。
关键点在于,结合测试,协作所有权和结对编程,这些东西可以解决代码审查通常应该实现的目标,例如:
这些都是通过结对编程和极限编程中的自动化测试连续进行的,因此无需进行明确的Fagan检查。
相关阅读: