结对编程总结
成员:史烨轩、卢惠民
一、说明结对编程的优点和缺点
优点:结对编程体验了两个人的合作精神,也对两个人的代码风格和规范有更高的要求,为以后的团队项目做了很好的铺垫。同时结对编程的模式使得后期调试bug的时间减少了很多,程序的通过率更高。同时相比于团队编程,结对编程使得两个人的交互更多,更利于效率的提高。在结对编程中,因为随时的复审和交流,程序的质量取决于一对程序员当中较高的那位,因此使得程序的初始质量高很多,后期修改和测试的时间会大大减少。结对编程也使得两个人更能相互学习,分享知识,提高两个人的编程能力和人际交往能力。由于需要合作,使得两个人对于自己的代码风格会更加注重。
缺点:结对编程并不是适用于所有的情况的。对于探索阶段的项目,需要一个人长时间深入的研究和独立钻研;在测试时如果需要等待很长时间也没有必要两个人都在那等着浪费时间。后期的维护并不需要太高的技术含量,如果非要两个人一起也会浪费时间。
二、结对的每一个人的优点和缺点在哪里
史烨轩:编程经验丰富,代码风格好
编写程序严谨,对细节把握好
善于规划时间
编写程序使用很多不知道的算法
卢惠民:编程经验不足,对目标的把握不够
代码风格不好,对算法理解不足
有耐心愿意付出时间,愿意合作
三、Information Hiding, interface design, loose coupling说明如何利用好这些原则
Information Hiding:
设计软件系统之前,应当仔细规划好哪些元素是可重用的,然后用函数或者类来实现它们,这就是信息隐藏原则。信息隐蔽是开发整体程序结构时使用的法则,即将每个程序的成分隐蔽或封装在一个单一的设计模块中,定义每一个模块时尽可能少地显露其内部的处理。信息隐蔽原则对提高软件的可修改性、可测试性和可移植性都有重要的作用。
interface design:
接口设计是很重要的一个方面,接口应该尽量细化,接口中的方法应该尽量少。接口隔离原则意思是把功能实现在接口中,而不是类中,使用多个专门的接口比使用单一的总接口要好。
loose coupling:
通常模块间的总会存在着依赖,而松耦合则是通过接口的方式实现模块间的调用,降低类之间的耦合度
四、Design by Contract, Code Contract的优缺点,如何融入你的设计中
契约式设计的主要目的是希望程序员能够在设计程序时明确地规定一个模块单元(具体到面向对象,就是一个类的实例)在调用某个操作前后应当属于何种状态。有了语言级别的前置后置条件和不变式的明确定义,程序的结构变得更加便于阅读和交流。