Michael Chen's Blog
World in my view is a word of my view

XP, 让人心旷神怡!

20 Apr 2004

很久以前就看过这个eXtreame Programming概念。只是当时无知,看到满篇的英文便草草而过;现在看到它获得了Jolt大奖,才重新登上xprogramming.com仔细研习,感慨很多啊。最后的心情是,XP真正体现了“循序渐进”的哲学观点(进化论),真正符合人的正常思维,也符合现实中项目开发的真实现状:即多变的需求。

1 兵车未动,粮草先行 -- TDD(Testing Driven Development),测试先行的开发思想

先生成软件开发框架,不要写具体的实现代码,一点都不要。然后开始编写测试用例(Test Case)。这样做最大的好处,就是站在了用户的高度考虑问题,从一开始就准备写出Product级别的代码。

2 没有最好,只有更好 --重构(Refactoring)

对接口进行重新定义,对其中的代码进行优化,最好是不要改变接口。程序首先是给程序员看,然后才是机器。阅读代码的过程能够极大程度的提高个人水平,对代码的修改当然是建立在理解代码的基础上。

3 “我的眼睛看不见了,你帮我开枪”
   “我抠不动扳机”
   “来,你做我的眼睛,我来开枪!”
    --漫画《城市猎人》中的一幕, 双人编程(Pair Programming)

XP中的精华就是双人编程。双人编程是整个项目运作的纽带,它使得项目中的每个开发人员都必须交流,代码成为共有。知识的共享,项目成员之间的联系更加紧密。每个成员可以成为Driver或者Navigator, 对Task同时进行工作。这样,在这个代码commit到CVS之前,已经经过了两个人的眼睛,通过了两个程序员的大脑,当然还有全部的单元测试。

4   第一天:“哈姆雷特还在上网吗?”
                     “是的,陛下!”
   第二天:“哈姆雷特还在上网吗?”
                   “是的,陛下!”
    第三天:“哈姆雷特……”
                    “是的是的,陛下!”

    ---XP项目开始后的第一个迭代后,任何时候,客户都可以得到一个Productive Release,如果他们对这个Release有别的需求,可以形成用户故事,项目组将这个故事加入下一个迭代中,并分配为Task,在若干个迭代后,便会出现新的Productive Release。

……

感谢XP,让我从无尽的文档中逃脱出来,并给我指引了一条贴近真实开发环境的开发之路。

附:资源:

http://www.xprogramming.com
http://www.chinaxp.org

blog comments powered by Disqus

All right reserved, 2004 - 2012

Powered by Github

关于我 | 全部文章 | Atom Feed