困惑的结对编程?
??????? 在软件工程方法学中的XP方法中,最让人感到困惑是在实际XP实践中实施得最少的那一条原则,即是结对编程。
??????? 很多人都有一种这么理解想法:XP的十二条原则中,其它的我都赞同,但是为什么要让两个人在同一台机器上编码?一个键盘两个人抢着打?空着别的机器干吗?
??????? 结对编程技术是一个非常简单和直观的概念:两位程序员肩并肩地坐在同一台电脑前合作完成同一个设计。同一个算法、同一段代码或同一组测试、与两位程序员各自独立工作相比.结对编程往往只需花费大约一半的时间就能编写出质量更高的代码, 但是,人与人之间的合作不是一件简单的事情——尤其当人们都早己习惯了独自工作的时候、实施结对编程技术将给软件项目的开发工作带来好处.只是这些好处必须经过缜密的思考和计划才能真正体现出来。而另一方面,两个有经验的人可能会发现配对编程里没有什么技能的转移,但是让他们在不同的抽象层次解决同一个问题会让他们更快地找到解决方案,而且错误更少。
?????? 结对编程还有其他多种好处:
?????? 1、直接的、连续的代码回顾。
?????? 2、与别人工作会增加责任和纪律性。
?????? 3、同时理解一个问题。
?????? 4、在有人盯着的时候去偷懒要困难得多!
??????? 两个程序员具有相同的缺点和盲点的可能性很小,所以我们当我们采用结对编程的时候会获得一个强大的解决方案。而这个解决方案恰恰是其它软件工程方法学中所没有的。?
??????? 在我们平时的编程当中,如果遇到一个非常难解决的问题(困难到对该项目产生厌烦的态度),那么你势必会希望录求帮助,无论是从信息量庞大的Internet网络里,还是从身边的技术大师里,你都会拼了老命去解决(前提是你有对计算机知识的势爱)。这个时候不妨采用结对编程试一下,其它的不说,可能感觉就不同。
?????? 代续......
61 楼 bryanzk 2007-04-24 如果一起pp的两个人彼此互相克隆的话,我想这个效果应该不如两个有差异的人来的好吧?多样性是幸福之源~~ 62 楼 kabbesy 2007-07-25 结对编程也有个大麻烦:我的缺陷被同伴看到了怎么办 63 楼 gigix 2007-07-26 kabbesy 写道结对编程也有个大麻烦:我的缺陷被同伴看到了怎么办那你就可以及时改进 64 楼 movingboy 2007-07-26 结对编程不是万灵药,前面有人说了,no silver bullet......
在团队中没有人真正理解它的时候强推PP,效果很可能是事倍功半
但PP值得尝试,当大多数队员能理解它的时候,在正确的时机应用它,或许它的威力才能真正显现出来...... 65 楼 hyhongyong 2007-07-27 还没试过pp,不过感觉应该能降低bug率。
两个人一块做事,有相互间脑力激发的情况。 66 楼 hover1215 2007-07-27 如果两个人开发能降低bug。
那么:
那五个人一块做一个模块,是不是根本就不会有bug了。
这样就不需要再测试了。人越多,bug越少。是吗?;)
67 楼 hunk 2007-07-28 那样沟通所带来的成本可能会远远超过修复bug的成本--边际效应
hover1215 写道如果两个人开发能降低bug。
那么:
那五个人一块做一个模块,是不是根本就不会有bug了。
这样就不需要再测试了。人越多,bug越少。是吗?;)
68 楼 hzhui 2007-08-16 结对编程 != 五个人一块做一个模块
69 楼 gigix 2007-08-16 hover1215 写道如果两个人开发能降低bug。
那么:
那五个人一块做一个模块,是不是根本就不会有bug了。
这样就不需要再测试了。人越多,bug越少。是吗?;)
永远都有人不明白为什么不吃饭会饿死吃太多会撑死 70 楼 lei_1021 2007-08-17 结对编程是需要在具体的人和事上具体的分析的