`
SunMicro
  • 浏览: 20670 次
社区版块
存档分类
最新评论
阅读更多
What is Extreme Programming?--Ron Jeffries
what is Extreme Programming

simple design:什么是简单的设计,简单的说就是可以很容易使你团队成员理解并认同的设计,过犹不及

不少人总是喜欢炫耀自己所掌握的设计模式和最新的设计技巧,而全然不考虑是否

合适。简单的设计包含两个部分,其核心就我所理解既是把握现在而非充满变数的未来,第一部分:为已经

定义的功能进行设计,或说是和客户协商好了的需要实现得功能,不要将自己一些自以为是的GOOD IDEA强加

于设计。第二部分:创建最佳的可实现功能得设计,不管未来怎样,我们只将眼前的工作做到最好。似乎敏

捷是有意在回避预测,而实际上的原因是敏捷不惧怕改变,。Kent Beck就这个问题专门有写到:“只有在你

正真需要的时候才去做”,敏捷提倡的“适应”,迭代开发可以很方便的改变原来的主意,在这个前提下预测

是多余和危险的,由预测所产生的内容在面对改变的时候,代价是昂贵的!

refactor:目的是提高代码的质量,使项目在细节上面得到优化,其实这里的概念还比较模糊,什么是高质

量的代码呢,如CodeComplete所述,不同性质的项目有不同的判定标准,是小型的桌面应用,一般的商用软

件还是性命攸关的核心控制程序。这需要在稳定,可扩展,易修改等特性中寻求最佳。当然前提是代码简

单易懂。

test:代码要易于测试,什么样的代码才容易测试呢,当然是以测试为前提写出来的代码。Test-Driven Development说得就是

“测试先行”,简单说来就是,先写一个测试程序,定义通过和失败的判断标准,然后以定义的通过标准为目标,实现product

code.除了是porduct代码容易测试外,TDD还有助于你充分理解你的设计,试想若你对要实现的功能不明确,又如何能写出测

试程序呢?

pair-programming:存在有不少的争议,多数的反对意见是效率不高。XP关于Pair-Programming的描述:

All code to be included in a production release is created by two people working together at a single computer. Pair programming increases software quality without impacting time to deliver. It is counter intuitive, but 2 people working at a single computer will add as much functionality as two working separately except that it will be much higher in quality. With increased quality comes big savings later in the project.

很明显,是为了提高代码质量,避免潜在的错误和不当设计,因为在这个过程中其同时发生的还有Walkthrough和Inspection等

活动。另外两个人一起工作,偷懒的可能性大幅减少而且解决问题的能力会加强,而且大量实践证明,pair-programming是提

高软件质量和减少开发时间的有效方法,当然,前提是合理的利用。

www.xprogramming.com/index.htm

www.extremeprogramming.org/index.html
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics