1.什么是xp编程(极限编程):
XP是勇气,交流,反馈和简单。
XP是软件开发过程中的纪律,它规定你:必须在编程前些测试,必须两个人一起编程,必须遵守编程规范……。
XP是把最好的实践经验提取出来,形成了一个崭新的开发方法。
2. XP适用范围:
极限编程,也被叫做XP,适用于中小型团队在需求不明确或者迅速变化的情况下进行软件开发的轻量级方法学。
推荐使用范围为10人左右的团队
3.XP工作模式体现:
一、工作环境
二、立式晨会
三、结对编程
四、测试驱动开发
五、重构
六、持续集成
七、频繁地发布小版本
4.结对编程:
开发任务会细化分解为很多Task,一个Task的开发周期一般不超过2天。
每个Task的Owner会寻找一个Partner进行结对开发。
Task开发的次序由程序员们自己协商。他可以先作为Partner和其他Owner一起开发某个Task,然后再找另一个程序员作为Partner来共同开发自己承担的Task。
结对开发时,Task的Owner主要负责编码, Partner负责在一旁看Owner编程并在其编写有错误提出自己的意见,当其遇到困难时一起讨论、互相帮助完成任务
5.测试驱动开发:
在动手编码之前,必须先写功能测试脚本、单元测试脚本。
写好测试脚本后,开始编码、重构、运行单元测试、集成、运行功能测试,以此循环
6.重构:
减少重复设计,优化设计结构,提高技术上的重用性和可扩展性。
XP提倡毫不留情的重构。
任何人可以重构任何代码,前提是重构后的代码一定要通过100%测试单元测试后才能被Check-in
7.持续集成:
测试先行是持续集成的一个重要前提。
持续集成指不断地把完成的功能模块整合在一起。目的在于不断获得客户反馈以及尽早发现BUG。
随时整合,越频繁越好;集成及测试过程的自动化程度越高越好。
每次只有一个新增加部分在整合,而且必须运行功能测试
8.频繁地发布小版本:
发布过程应该尽可能地自动化、规范化。
不断地发布可用的系统可以告诉客户你在做正确的事情。
客户使用发布的系统,可以保证频繁地反馈和交流。
保证客户有足够的依据调控开发过程(增加、删除或改变需求)。
降低开发风险。
随着开发的推进,发布越来越频繁。
所有的发布都要经过功能测试。
9.XP的关键词:
测试优先原则
结对编程
持续集成
频繁小版本
不断重构
立式晨会
交流和沟通,“只有没有沟通不够的项目,没有沟通过度的项目”
分解任务、制定计划是关键一环
10.XP作用:
一、平稳的工作效率
平稳的工作效率指团队和个人在很长的时期内保持一定的开发效率。
保证了项目速度和计划过程的有效性和准确性;
保证了程序员可以持续地完成任务,团队可以持续地向客户交付可运行的系统;
结对编程已经加大了工作强度,并且和其它XP的规则一起提高了工作效率,使少加班和维持平稳的工作效率可能而且可行。
提倡平稳的工作效率,体现了XP以人为本的价值观。
二、高质量
测试优先、并坚持单元测试、每个版本进行功能测试的原则是保证了高质量的一个关键;
充分的沟通交流进一步减少了写低质量代码的风险;
结对开发模式在互相学习中会产出高质量的代码
三、Open
结对开发、每一处修改都需要测试等等规则使得实现集体拥有代码, “我们”的代码,而不是“我”的代码;
充分的沟通交流可以将每个人的知识、思想共享;
让每个人都知道项目的设计、计划、进展情况等信息;
大家都知道每个人都在做什么和怎么做;
四、对人的挑战
暴露自己的缺点,人的本性
懒惰
自尊
封闭
……
克服自己的缺点
高效率
不怕告诉别人自己不会,乐于问人
懂得尊重别人,乐于帮助别人
……
11.受益于XP:
一个曾经在XP模式下工作过的人,回到传统开发模式下才深刻体会到XP给他带来的财富。
在传统开发模式下他坚持每天有计划、总结,坚持测试驱动开发……
发现他总是按时下班甚至提前下班,可是同事们越来越多且越来越晚下班,是自己不认真?是同事们爱表现?……
都不是!!
是XP给他带来的受益终身的开发方式,他的同事bug量远远比他多,他只有不多的几个;同事们任务总是延时,而自己都是轻松按时完成……