1.敏捷实践
敏捷开发的核心内容如下image.png
a).个体和交互胜过过程和工具
优秀的人良好的沟通比用什么工具如编辑器、版本控制重要
c).可以工作的软件胜过面面俱到的文档
与其写那么多文档来解释这个系统,不如把这个系统做好,代码流程与管控做好
d).客户合作胜过合同谈判
不断与客户去沟通而不是只按照合同约定来开发软件,因为软件需求总是不断变化。
e).响应变化胜过遵循计划
需求是在变化的,不能指望着按照既定计划去执行完所有的工作
一句话总结敏捷开发:持续性的交付可以用的软件,经常性的交付软件功能给客户。
2.极限编程概述
a).客户作为团队成员
这个客户指产品经理
b).结对编程
每个团队成员应该和团队其他成员工作过
c).测试驱动的开发方法
编写单元测试,使得单元测试能够通过
d).集体所有权
团队每个成员都应该做过开发中的各个工作模块,每个人的能力都应该是全面的。
e).消除重复的代码就是抽象
两种事物相似的话必定存在可以抽象的部分
f).重构是不断进行的
重构的间隔是每隔半小时和1小时要做的事情,而不是等项目结束后才开始
3.计划
学会分解用户需求,把一个完整的需求解析成几个小的模块再去做开发工作,对开发工作做好规划以及迭代计划等
4).测试驱动开发
测试应该优先于开发设计,每一项功能都应该对应一个测试方法,不仅使得程序变得易调用可测试,也方便以后其他人员来维护代码。新人接手时可以从测试代码来测试你这个代码是如何运行的。
在测试代码中凸显你的意图,这种方式称为意图编程
5).重构
模块需要遵循基本的3个原则
1.完成本职功能
2.应对后续变化
3.代码友好性,易读
使代码变得易于修改和阅读的原则
重构总结
image.png
image.png