简介
极限编程是轻量级的软件开发方法,它的价值观是交流、简约、反馈和勇气,即一个开发过程可以从四个方面改进:加强交流,从简单做起,寻求反馈,用于实事求是。基本特征如下:
1. 极限的工作环境
2. 极限的需求: 与客户一同工作,客户指定优先级,开发人员确定开发的风险
3. 极限的设计: 功能可通过单元测试
4. 极限的测试:测试内容包括开发, 整合,功能和性能
XP中重要的惯例和规则
重要的有结对编程、测试驱动开发、迭代、和客户一起工作,其他内容都是辅助
1. 项目开发小组: 客户 程序员 测试员 项目经理
2. 计划项目、 验收测试,小版本发布
计划项目: 总体计划+迭代计划, 在实际开发中,程序员要积极参与计划的制定,以积极的心态去拥抱变化
验收测试:由用户定义,最好能自动化。
小版本发布:在程序员和测试人员间进行,减少整合花费的时间。增新在线更新源代码,增加版本信息,提供自动化测试,使用日志系统反馈错误
3. 简单设计, 结对编程, 测试驱动开发, 重构
简单设计——》单元测试——》编写代码——》重构
简单设计: 用户描述、CRC卡片和手绘类图
重构:通过重构引入模式,测试代码也要重构
提高代码质量: 代码评审和重构
配对编程:两个人工作在不同的抽象层次上,一个关注实现眼前的目标而实现代码细节,另一个考虑更大的前提和下一步要做的事,一天八小时配对工作也不现实。
4. 频繁地整合,集体拥有代码,编程规范
集体拥有代码: 遵守编程规范,每人发现和纠正错误,通过测试
5. 不加班: 一个长期恒定的开发速度
6. 积极反馈:面对面交流
个人可以使用的
简单设计,重构,测试驱动开发,编码标准,隐喻(用客户能听懂的语言描述系统),小版本发布。
常用工具
项目管理工具 Scrum
持续集成构建
自动测试工具
开发过程
收集用户需求,评估风险;对开发计划评估;启动迭代开发(简单设计,测试驱动开发,编写代码,重构)。