极限编程的12个最佳实践是大家在学习极限编程绕不过的点,为了便于大家理解和学习,我们可以分为四个实践圈。
一、极限编程的分组
极限编程根据类型的不同分为:
- 编程圈 (Coding Circle)
- 团队圈 (Team Circle)
- 流程圈 (Process Circle)
- 产品圈 (Product Circle)
二、编程圈 (Coding Circle)
编程圈包括:结对编程(Pair Programming),代码重构(Refactoring),持续测试(Testing)
2.1 结对编程(Pair Programming)
结对编程是两个开发者在同一台电脑上工作,一个类似于驾驶员的角色,一个类似于领航员的角色。即一个负责编写代码,一个负责代码的检查使之可读性和正确性。极限编程认为这样的方式更高效。
其实这就有点像中国的很多公司都在做的代码评审,只不过这是一种非正式的代码评审而已。虽然国内很多开发人员都听说过结对编程的方法,但实际上很少有公司去实践。因为很多公司认为这是在浪费人力:明明两个人可以做两个模块的事情,你现在将两个人弄来处理一个模块。那工作量不是直线减少了一半,项目进度如何去保证。虽然有可能代码质量会有所提高。
我个人认为结对编程只能在小型的实验性的项目中去做。真正的大项目是不敢用这种编程方法的。
2.2 代码重构(Refactoring)
代码重构是指在不改变系统行为的前提下,重新调整、优化系统的内部结构以减少复杂性、消除冗余、增加灵活性和提高性能。重构不是XP所特有的行为,在任何的开发过程中都可能并且应该发生。
这样好处是:
- 不必要的重复
- 高效沟通
- 通俗易懂
2.3 持续测试(Testing)
极限编程强调“测试先行”,即我们常说的“测试驱动开发”-Test Driven Development(TDD)。这要求我们在编码开始之前,首先将测试写好,而后再进行编码,直至所有的测试都得以通过。