天天看点

极限编程和极限编程方法采用的有效的开发实践

极限编程是敏捷编程中最负盛名的一个,其名称中“极限”二字的含义是指把好的开发实践运用到极致。目前,极限编程已经成为一个典型的开发方法,广泛应用于需求模糊且经常改变的场合。

下面简述极限编程方法采用的有效的开发实践。

  1. 客户作为开发团队的成员

    必须至少有一名客户代表在项目的整个开发周期中与开发人员在一起紧密地配合工作,客户代表负责确定需求回答开发人员的问题并且设计功能验收测试方案。

  2. 使用用户素材

    所谓用户素材就是正在进行的关于需求的谈话内容的助记符。根据用户素材可以合理地安排实现该项目需求时间。

  3. 短交付周期

    每两周完成一次的迭代过程实现了用户的一些需求,交付出目标系统的一个可工作的版本。通过向有关的用户演示迭代生成的系统,获得他们的反馈意见。

  4. 验收测试

    通过执行由客户制定的验收测试方案来捕获用户素材的细节。

  5. 结对编程

    结对编程就是由两名开发人员在同一台计算机上共同编写解决同一个问题的程序代码,通常一个人编码,另一个人对代码进行审查与测试,以保证代码的正确性与可读性。结对编程是加强开发人员相互沟通与评审的一种方式。

  6. 测试驱动开发

    极限编程强调“测试先行”。在编码之前应该首先设计好测试方案,然后再编程,直至所有测试都获得通过之后才可以结束工作。

  7. 集体所有

    极限编程强调程序代码属于整个开发小组集体所有,每个小组成员都有更改代码的权利,每个成员都对全部代码的质量负责。

  8. 持续集成

    极限编程主张在一天之内多次集成系统,而且随着需求的变更,应该不断地进行回归测试。

  9. 可持续的开发速度

    开发人员以能够长期维持的速度努力工作。极限编程规定开发人员每周工作时间不超过40h,连续加班不可以超过两周,以免降低生产率。

  10. 开放的工作空间

    极限编程项目的全体参与者(开发人员、客户等)一起在一个开放的场所中工作,项目组成员在这个场所中自由地交流和讨论。

  11. 及时调整计划

    计划应该是灵活的、循序渐进的。制定出项目计划之后,必须根据项目进展情况及时进行调整,没有一成不变的计划。

  12. 简单的设计

    开发人员应该使设计与计划要在本次迭代过程中完成的用户素材完全匹配,设计时不需要考虑未来的用户素材。在一次次的迭代过程中,项目组成员不断变更系统设计,使之相对于正在使用的用户素材而言处于最优状态。

  13. 代码重构

    所谓代码重构就是在不改变系统行为的前提下,重新调整和优化系统的内部结构,以降低复杂性、消除冗余、增加灵活性和提高性能。应该注意的是,在开发过程中不要过分依赖重构,特别是不能轻视设计,对于大、中型系统而言,如果推迟设计或者干脆不做设计,将造成一场灾难。

  14. 使用隐喻

    可以将隐喻看作是把整个系统联系在一起的全局视图,它描述系统如何运作,以及用何种方式把新功能加入到系统中。

继续阅读