一、结对编程的优点:
1.结对编程能提供更好的设计质量和代码质量,两人合作能有更强的解决问题的能力。
2.结对能更有效地交流,相互学习和传递经验,能更好地处理人员流动。因为一个人的知识已经被其他人共享。
3.二人合作能互相督促避免时间浪费
二、结对编程的缺点:
1.1+1未必大于二,两个人只产出一份代码,时间效率上会降低
2.当二人水平差距较大时结对编程对水平较高的那一方不公平
三、信息隐藏,接口设计,松耦合
(1)、
信息隐藏体现了面向对象编程中的封装原则,在具体的实现过程中可以用以下方式实现:
1 多层设计中的层与层之间加入接口层;
2 所有类与类之间都通过接口类访问;
3 类的所有数据成员都是private,所有访问都是通过访问函数实现的;
(2)、这里面的interface design 我就把他们简单的归约到user interface design 上面了。所谓的用户界面设计是指机械或者软件的用户界面,他的主要的功能就是最大化用户的体验,他的目的就是使得用户可以尽可能的简单高效地和产品互动以实现用户的需求,针对这一点,所见即所得的用户界面设计理念就很适用。
(3)、借助维基的解释,所谓的松耦合就是指,在计算机或者是系统的设计中系统中的每一个部分和组件都只是利用很少的其他的独立的组件的知识,甚至是独立于其他的组件的。这种设计显然可以使得程序的灵活性更大,同时也更容易程序之间的调试和组装。
四、契约式编程
所谓的契约式编程,其实描述的就是一个权利和义务的问题。如果有一方是不满足契约的规定的,那么另外一方就没有必要去践行自己的义务了,契约式编程在我们的面向对象的课程中被反复提及。
由于在契约式编程中C/S的双方的地位是要求平等的,以前被认为是强大的server没有必要再去理会无理取闹的client,所以要求C/S的双方都有比较好的代码质量,从而很好到地提升了软件工程的整体的代码质量。
契约式编程的的契约检验的过程是要有assert断言机制的,但是这种机制并不是所有的语言都支持的,所以在这也是契约式编程的一个局限的地方吧。
如果参数传递的过程中不满足要求会有相应的自定义的异常抛出,程序不再执行,也算是契约式编程的一个体现吧。
五、测试代码覆盖率:
六、UML类图:
七、二人合作片段