🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
结对编程是软件开发过程中所使用的一种技术,两名程序开发人员共享同一台工作站。其中一个扮演驾驶者(Driver)的角色,进行代码编写,另一个扮演观察员(Observer)或导航员(Navigator)的角色,对代码进行评测。他们可以轮流编写代码和测试案例,还可以坐在一起交流思想,解决问题。 结对编程的概念已经存在很长一段时间,已经有许多公司认同这种编程方式,但也有许多公司表示他们不考虑采用。结对编程需要花费的时间可能比个人编程更长,但产生的 bug 比个人编程少;它需要公司付出多一倍的人力,但编程的效率会比个人编程高。这是一个比较有争议的编程方式,不同公司的需求不同,对结对编程的看法就不一样。 说了结对编程不得不说TDD 这个开发模式。 因为这两者结合起来还是挺有效率的,TDD是一种追求敏捷的开发模式,两个人结对编程,一人写测试,写完一个测试就commit一次,一人写这个测试的实现,实现之后再commit一次。每需要实现一个逻辑时就写一个测试,来完成对该逻辑本身正确与否的判断,这样像叠积木似的一块一块的完成逻辑,并且测试保证了每个逻辑的正确性,就保证了代码的有效性,不会出现推翻重来的情况,最后一个测试完成之后,还可以对代码进行重构,进一步优化代码,有测试的保证,就可以让每一步重构不会影响到之前的逻辑正确性,可以放心的进行重构是行得通的。 国外有位开发者 Sam Harris 对结对编程的利弊做出了客观的总结分析,总结如下: 结对编程的好处 1、互相鼓励,不容易沮丧:团队工作能增加成员的工作积极性。因为在面对问题的时候,会有人一起分担,共同尝试新的策略。 2、互相监督,不容易偷懒:两个人一起工作需要互相配合,如果想偷懒去干别的,就会拖延工作进度。 3、增加两个人的专注力 4、互相学习编程技巧,完成知识的传递:在编程中,相互讨论,可以更快更有效地解决问题,互相请教对方,可以得到能力上的互补。 5、可以培养和训练新人:让资深开发者和新手一起工作,可以让新人更快上手。 6、减少 bug:两人互相监督工作,可以增强代码和产品质量,并有效的减少 BUG。 结对编程的坏处 1、与合不来的人一起编程容易发生争执,不利于团队和谐。 2、经验丰富的老手可能会对新手产生不满的情绪。 3、一山不容二虎,开发者之间可能就某一问题发生分歧,产生矛盾,造成不必要的内耗。 4、开发人员可能会在工作时交谈一些与工作无关的事,分散注意力,造成效率低下。