首先接触这个词是从师哥的博客中学习到了(看博客的好处啊),由于在人事系统优化过程中一直在敏捷开发的思想下指导开发,学习到了很多新的理念、开发方法、指导思想等等,都是值得在项目的开发中深刻的去体会和运用的,毕竟这个思想大公司(特别是外企)都在使用,可见其在项目的管理中起着很重要的作用,今天和大家一起分享一下---结对编程。
故事情节:
前段时间徒弟在调试遇到的问题:一个人研究了一天了还是基本上没有什么进展,主要是提示不出来,不知道错误在哪?时间有点长了,我和响去帮助他们俩来调试,当我和他一起调试的时候,发现很简单,一会就解决了,主要是徒弟经验不足吧,断点的位置不对,造成了一个问题花费了一天多的时间没有解决,自己也有点厌烦了,按捺不住了,做着没有意思了,针对这个故事情节,我联系到了敏捷开发思想---结对编程。
结对编程技术是指两位程序员肩并肩地坐在同一台电脑前合作完成同一个设计、同一个算法、同一段代码或同一组测试。与两位程序员各自独立工作相比,结对编程往往只需花费大约一半的时间就能编写出质量更高的代码。
结对编程技术是一个非常简单和直观的概念,能达到事半功倍的工作效果。但是,人与人之间的合作不是一件简单的事情——尤其当人们都早已习惯了独自工作的时候。实施结对编程技术将给软件项目的开发工作带来好处,只是这些好处必须经过缜密的思考和计划才能真正体现出来。而另一方面,两个有经验的人可能会发现配对编程里没有什么技能的转移,但是让他们在不同的抽象层次解决同一个问题会让他们更快地找到解决方案,而且错误更少。
两个程序员具有相同的缺点和盲点的可能性很小,所以我们当我们采用结对编程的时候会获得一个强大的解决方案。而这个解决方案恰恰是其它软件工程方法学中所没有的。
在我们平时的编程当中,如果遇到一个非常难解决的问题(困难到对该项目产生厌烦的态度),那么你势必会希望录求帮助,无论是从信息量庞大的网上,还是从身边的技术大师那里,你都会努力去解决(前提是你有对计算机知识的热爱)。这个时候不妨采用结对编程试一下,其它的不说,可能感觉就不同。
贾琳师哥博客的几句话:
1、结对编程,拓宽思路,避免一个人钻入死胡同。所谓,当局者迷,旁观者清。
2、增加了解决问题的耐心,如果一个人遇到棘手的问题,迟迟不能解决,脾气容易暴躁,容易放弃。如果有人作伴,可以更有耐心,可以在互相调侃中解决问题。
3、结对编程,在解决未知领域问题时,有奇效。最好是两个人有一定技术积累,至少一个人已经有所研究。切忌两个新手一起从零开始。
4、结对编程可以使知识互补,让人学到新东西,在解决问题中体会快乐。
弊端:
8.在公司中,结对编程也是需要的,毕竟老人需要带新人嘛,但是对项目的开发成本上会有一定程度的上升,这个需要适度就好了。
是否使用结对编程,需要具体问题具体分析,不可盲目。任何事手都有他的好与坏,结对编程也不例外,只有知道了好与坏,你才能更好的利用它,提高我们的开发效率。
最后,需要我们记住的是,人才是软件开发中最核心,也是最需要花时间去关注的事情;结对编程是个大学问,里面有很多知识需要学习,在以后的项目开发中不断的体验吧。
参考资料博客: