学习极限编程的笔记


极限编程注重测试

极限编程(Extreme Programming,XP)是一种以编码为核心任务的轻量级的开发方法。使用极限编程,以代码为中心的活动将存在于软件开发声明周期的每个阶段中。一些传统方法学的使用者(大部分是CASE工具提供商)批评极限编程,称它为允许鲁莽的编码,并且不能称作一个真正的过程。

极限编程在于代码评审,频繁测试,客户参与,快速反馈,持续重构,精炼框架。持续性整合以便在开发过程的早期发现问题,时刻进行着设计与在设计,此外还有持续计划。

极限编程的是个关键价值:沟通(Communication),简单(Simplicity),反馈(Feedback),勇气(Courage)。

·沟通的促进作用贯穿配对编程(pair programming)、任务判断、迭代计划以及其他方面。选择更简单的设计、技术、算法和技巧以使客户满意,并适合当前项目的运转。反馈是至关重要的,并且经过代码测试,客户故事(User Story)、小版本迭代/频繁发布、配对编程/持续代码评审以及其他方法获得的。勇气就是要有胆量去做对的事情。
·如果代码有“坏气味”,就将其重构。Martin Fowler将需要重构的代码描述为代码中具有可恶的“坏气味”。我们必须敢于丢弃代码。编码就像写作,在修改中走向成熟。

极限编程五原则:提供快速反馈(Provide rapaid feedback),简单假设(Assume simplicity),制造增量式的变化(Make incremental changes),包容变化(Embrace change),质保工作(Do quality work)


·快速反馈背后的隐意就是你越快得到反馈,也就能够越快为之适应,也就得到更多指导设计编码和发表系统的信息。反馈啊本身并不简单地重点处理自动化测试和持续性整合以更早地定位问题,它也将小版本迭代展现给客户,以确保最终发表的正是他们所需要的系统。这些持续的指导和学习将有助于保持较低的转换成本,并使开发人员能够实现简单的假设
·简单简单假设意味着在问题未被完全证实之前,处理每一个问题的时候都可以降低问题的复杂度。简单假设并不意味着需要忽略必要的设计步骤,也不是意味着在有问题的地方简单处理一下代码。简单假设要求你仅为当前的迭代做设计工作。
·客户经常会在开发周期内变动需求,因此我们的程序必须(或者尽量)设计得灵活,容易修改和扩充,尽可能包容这些变化。
·不要过度设计一个系统。通常情况下,最好每次递进一点。
·发布一个可运行的模型胜过设计一千张图片。这就是在快速反馈和增量式变化中配合,并保持简单化。极限编程比增量式改进系统走得更远,极限编程意味着变化,并且包容变化。



极限编程的12个实践原则:
1)计划的制定
2)小版本
3)简单设计
4)测试
5)重构
6)配对编程
7)代码共享
8)每周只工作40小时
10)现场客户
11)隐喻
12)编码标准





你可能感兴趣的:(XP,极限编程)