作业 | 什么是XP?

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_38382857/article/details/78186361

什么是XP?

极限编程(extreme programming)是敏捷过程中最负盛名的一个,指好的开发实践运用到极致。

极限编程是一门针对业务和软件开发的规则,它的作用在于将两者的力量集中在共同的、可以达到的目标上。它是以符合客户需要的软件为目标而产生的一种方法论,XP使开发者能够更有效的响应客户的需求变化,哪怕是在软件生命周期的后期。

XP有什么特点?

极端编程属于轻量级的方法,认为文档、架构不如直接编程来的直接。

强调我们将任务/系统细分为可以在较短周期解决的一个个子任务/模块,并且强调测试、代码质量和及早发现问题。通常,通过一个个短小的迭代周期,我们就可以获得一个个阶段性的进展,并且可以及时形成一个版本供用户参考,以便及时对用户可能的需求变更作出响应。

软件开发是人与人合作进行的过程,因此成功的软件开发过程应该充分利用人的优势,而弱化人的缺点,突出了人在软件开发过程中的作用。

XP使用的方法和有效实践

xp的使用方法
  • 规划策略(The Planning Game);
  • 结对编程(Pair programming)
  • 测试(Testing)
  • 重构(Refactoring)
  • 简单设计(Simple Design)
  • 代码集体所有权(Collective Code Ownership)
  • 持续集成(Continuous Integration)
  • 现场客户(On-site Customer)
  • 小型发布(Small Release)
  • 每周40小时工作制(40-hour Week)
  • 编码规范(Code Standards)
  • 系统隐喻(System Metaphor)
XP的有效实践

1.完整团队:
XP项目的所有参与者(开发人员、客户、测试人员等)一起工作在一个开放的场所中,他们是同一个团队的成员。这个场所的墙壁上随意悬挂着大幅的、显著的图表以及其他一些显示他们进度的东西。

2.计划游戏:
计划是持续的、循序渐进的。每2周,开发人员就为下2周估算候选特性的成本,而客户则根据成本和商务价值来选择要实现的特性。

3.客户测试:
作为选择每个所期望的特性的一部分,客户可以根据脚本语言来定义出自动验收测试来表明该特性可以工作。

4.简单设计:
团队保持设计恰好和当前的系统功能相匹配。它通过了所有的测试,不包含任何重复,表达出了编写者想表达的所有东西,并且包含尽可能少的代码。

5.结对编程:
所有的产品软件都是由两个程序员、并排坐在一起在同一台机器上构建的。

6.测试驱动开发:
编写单元测试是一个验证行为,更是一个设计行为。同样,它更是一种编写文档的行为。编写单元测试避免了相当数量的反馈循环,尤其是功能验证方面的反馈循环。程序员以非常短的循环周期工作,他们先增加一个失败的测试,然后使之通过。

7.改进设计:
随时利用重构方法改进已经腐化的代码,保持代码尽可能的干净、具有表达力。

8.持续集成:
团队总是使系统完整地被集成。一个人迁入(Check in)后,其它所有人负责代码集成。

9.集体代码所有权:
任何结对的程序员都可以在任何时候改进任何代码。没有程序员对任何一个特定的模块或技术单独负责,每个人都可以参与任何其它方面的开发。

10.编码标准:
系统中所有的代码看起来就好像是被单独一人编写的。

11.隐喻:
将整个系统联系在一起的全局视图;它是系统的未来影像,是它使得所有单独模块的位置和外观变得明显直观。如果模块的外观与整个隐喻不符,那么你就知道该模块是错误的。

12.可持续的速度:
团队只有持久才有获胜的希望。他们以能够长期维持的速度努力工作,他们保存精力,他们把项目看作是马拉松长跑,而不是全速短跑。

极限编程的迭代过程

项目组根据交付计划和项目速率选择需要优先完成的用户故事或代消除的差错,将其分解为可在1-2天完成的任务,制定出迭代计划。

然后通过每天举行一次站立会议,解决遇到的问题,调整迭代计划,之后进行代码共享式的开发工作。

而其所开发的新功能必须100%通过单元测试,并且立刻进行集成,得到的新的可运行版本将由客户进行验收测试。

开发人员和客户代表交流的情况并对发现的问题进行讨论,提出新的用户故事,算出新的项目速率,把相关的信息提交给站立会议。

总结

极限编程为杰出的敏捷过程,具有对变化和不确定性的更快速、更敏捷的反应特性,在快速的同时还能保持可持续的开发进度。有利于更好地适应商业竞争环境下对小型项目提出有限资源和有限开发时间的约束。

———————-编写于2017/10/01—————————-

猜你喜欢

转载自blog.csdn.net/weixin_38382857/article/details/78186361