结队成员简介:
成员:牛强,学号12061171;刘文乔,学号120611683 我们之所以结对编程以完成所给课设要求,是因为我们互相了解彼此,能够更好更快地完成。下图是我们合作编程时的留影:
牛强是一个思维活跃、工作积极,编程基础较强的人,但是他经常忽略一些细节问 题,导致他经常花费更多的时间用于代码的调试和改错;而刘文乔是一个考虑问题比较全面的人,可以较快地分析出问题所在,并能快速改正,但是编程能力较弱,在完成已分配任务时花的时间会比较多。而我们组成一个队伍,互补互助,不仅能够更好更快地完成项目,更能在这个过程中促进彼此个人能力的进步,增进友谊。
在课堂上我们学习到了关于结对编程的知识,但是这些知识是空洞无力的。在我们真正开始结对编程的实践时,我们才印证了课堂上关于结对编程的内容。在我们看来:结对编程能很大程度上保证代码的质量,使程序更简洁、设计更合理、可能的漏洞更少。而且结对编程还可以大幅度削减开发所需的时间花费和知识储量,两个人都不需要有极高的造诣、只需平平的能力即可做到一个人苦心竭力才能做到的事。不仅如此,在解决困难和问题时通常能够找到更好更快的解决方式。
但是结对编程的优点不仅仅限于这些。对于结对的两个人来说,如果他们能够互相激励、互相帮助,那么他们在合作中将收获快乐和友谊,而这些又会转而产生刺激使他们的个人能力得到提升。这些都是一个人独自完成时不可能得到的。
但是显而易见,结对编程还有一些需要调和的矛盾。两个人的编程风格不同,而且大多说人喜欢独自工作,如果他们再不能及时交流,往往会导致团队的失败。不仅如此,即使两个人克服了这个矛盾,还是会出现其他的一些问题,比如说两个知识储备不同、动手能力的差异,这些都会耗费一定的时间去达成共识。而我们所做的就是在工作中尽量克服这些不足,并充分利用结对编程的优势更好更快地完成我们的项目。
在我们设计代码的过程中,非常乐意使用一些语言特性和设计方法来改进自己的代码。比如说充分地利用面向对象语言的信息隐藏特性(information hiding)来完成对类和属性的封装,以实现对数据的保护,保证程序的安全性。而对于接口的设计(interface design)能够更规范地组织代码,并且能增强代码的重用性,在明确了功能之后,如何实现并不需要考虑,所以会更方便地设计整个代码的框架,提高开发效率。而对于松散耦合(loose coupling),我们设计的代码并没有很好地体现。因为在整个框架下我们并没有做太多的修改,所遵循的只有面向对象原则,严格划分各部分的功能和属性,使得某个模块除功能外的改变对其他模块几乎不产生影响。