什么是成对编程.ppt
《什么是成对编程.ppt》由会员分享,可在线阅读,更多相关《什么是成对编程.ppt(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Pair Programming(成对编程成对编程)黄海波&陶万山 With contribution by 劳晖xchinaxp.org1什么是Pair Programming Pair Programming是一个编程模式(Programming pattern)。两个程序员并排坐在一台电脑前,面对同一个显示器,使用同一个键盘,同一个鼠标一起工作。他们一起分析,一起设计,一起写测试例子,一起编码,一起单元测试,一起整合测试(Integration Test),一起写文档等。基本上所有的开发环节都一齐肩并肩地,平等地,互补地进行开发工作。其它领域的“Pair Working”:越野赛车 驾驶
2、飞机2Pair Programming的角色(Role)Driver The one who typesNavigator The one who watches the back角色可以互换的3疑问:一个程序两个人写是不是一种浪费(可是两份工资,双倍资源哦)?编程从来是一个人的活动。学校里这么教的,一直以来也是做么做的。我不喜欢被人盯着工作,这样我不自在,无法工作。这个笨家伙老是问问题,他/她不会看书么?我都无法专心工作了。另一方面:Pair Programming被很多的大师级程序员推崇;不少大学都展开对Pair Programming的研究,并得到正面的结论;很多尝试过的Develope
3、r都开始喜欢Pair Programming。Pair Programming的疑问4Pair Programming和Solo Programming的比较一些研究数据:1999年,University of Uath.两组学生,一组独自工作,一组Pair Programming。(由助教预先设计和开发了Test Cases)5Pair Programming的历史 1995年,Larry Constantine在他的专栏中第一次提到了在他在P.J.Plaughers software company,Whitesmiths,Ltd观察到一个现象:Collaborative Programm
4、ing“两个程序员一起工作,可以比以往更快的交出完成并经过测试的代码,而且这些代码几乎是没有Bug的。”Collaborative Software Process(相对PSP)1996年,Kent Beck,Ward Cunningham 和Ron Jeffries一起提出了Extreme Programming(XP),其中吸收了Collaborative Programming,并称为Pair Programming。Pair Programming是XP的一个key practice,也是XP成功的关键。随着XP在世界范围内被采用和练习,Pair Programming开始被接受。6为
5、什么要Pair Programming“The Human eye has an almost infinite capability for not seeing what it does not want to see Programmers,if left to their own devices,will ignore the most glaring errors in their output-errors that anyone else can see in an instant.”-Gerald Weinberg“Knowledge is commonly socially
6、constructed through collaborative efforts toward shared objectives or by dialogues and challenges brought about by difference in persons perspective”-Salomon“三个臭皮匠,胜过一个诸葛亮”-?7为什么要Pair Programming企业管理层次:Pairs更有效的交流,相互学习和传递经验 Pair Programming具备更高的效费比(cost-effective)Pair Programming能更好的处理人员流动开发层次:Pairs
7、能提供更好的设计质量和代码质量 Pairs更强的问题解决能力开发人员自身:Pairs一起工作能带来更多的信心 Pairs一起工作能带来更高的满足感(程序员,用户和管理层)8为什么要Pair Programming 不间断的Code ReviewCode Review的目的是不断的调整设计和编码质量的过程,也是为了及时发现问题和解决问题。避免把风险延后到QA阶段或Production阶段。开发中的Review主要包括:1)Design Review 2)Code Review 3)Test Review 4)Document Review9为什么要Pair Programming 不间断的Cod
8、e Review1.Peer Code Review,即程序员之间的互相Review缺乏Design Review不能持久,定时Code Review对需求和设计的不了解导致无法实现有效的Review2.Team Code Review什么时候开会做Review?不可能Team天天开会无法对所有的设计和Code进行Review面子问题效率低传统开发过程的Review(例如印度的InfoSys公司)的问题:10为什么要Pair Programming 不间断的Code ReviewPair Programming提供不间断的Design review,Unit Test Review,Code
9、Review,Document Review,避免了效果差的Team Code Review,也比抽查式的Peer Code Review有更好的质量。(CMM Level 3)Pair Programming中,任何一段代码都至少被两双眼睛看过,两个脑袋思考过。结合Collective code ownership和小的Task(Small Engineering Task),代码被不断的Review。11为什么要Pair Programming 编程方式避免cow boy式的编程好代码的衡量标准:可读性和可维护性硬件设备价格的下降和速度的提升,使得代码效率不是考虑的重点(对大多数的商业应用
10、)。对大部分的商业项目来说,更主要的顾虑是成本。而成本中人工占最大的比例。好的代码可以减少修改的成本。Pair Programming的互相督促可以提高代码的可读性。12 Pair是一个最小单位的Team,而任何人都是工作在这样一个Team中。Developer的言行都会影响到其他的Developer(Partner),也受到其他Developer的影响。Pair Programming避免了“我的Code”,使得代码的责任不属于某个人,而是属于一个Pair和整个Team,从而做到Collective Code Ownership,也避免个人英雄主义。迫使程序员必须频繁的交流,增进知识经验的交
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 什么是 成对 编程
限制150内