结对人员:杨金键 谢振威 金豪(顺序无特殊含义,仅因照片从左到右这个顺序)
结对编程优点:及时发现bug,纠正编程习惯,及时纠正可能带来问题的编程思路
缺点:效率太低,时间开销大。
个人优点:
金豪:积极主动,想法灵活,认真学习
谢振威:刻苦努力,代码质量高bug较少,认真负责
杨金键:认真刻苦,勤于实践,思路明了
个人缺点:
金豪:遇到奇怪问题。。
谢振威:闷声发大财
杨金键:眼高手低,当修复bug的时候经常改这里忘了那里,导致产生新的bug。。动手能力还是太差了。
设计方法:
在动手写代码之前先进行周密的设计,包括各个模块的功能,模块之间的具体接口。关键在于接口,队员之间一定要协商好后行动,不然在后续编程中容易产生各式各样的bug。同时模块内部的属性应当不能由其他模块直接访问,即应当通过get/set方法(如需要被访问)才能被其他模块进行访问。同时当两个模块由不同的人写的时候,这个时候我们可以预先写好一个中间层,然后依据中间层各自进行各自的设计确保和中间层的链接。
契约式设计:
最初是被Bertrand Meyer在设计他的Eiffel语言时所创造的概念,并且在1986年开始逐渐被各式各样的论文引用。用文档来记载权利和义务的说明并用程序来检验,这就是契约式设计的核心。契约式设计其之所以得到了人们的重视,因为它将责任的分工明确化。当一段代码发生异常时,我们过去的思想总会模糊的认为,是否是这段代码本身存在错误?而程序的规格化设计明确地告诉了我们这一错误的责任到底在于用户还是设计者。在面向对象技术中,接口是我们在面向对象中需要关心的东西,可是只有借口这却还不够充分,我们究竟如何才能正确的使用接口,而这恰恰是契约式设计所提供的部分。只有考虑到了规格,才可能实现面向对象的目标:可靠性,可扩展性,和可复用性。
UML图:
算法关键:
算法关键与上次的完全相同,图形界面并未用到任何高深算法,都是简单的拼接,地图计算采用了迪杰斯特拉算法,其他也并没有什么了
附加题:
http://www.cnblogs.com/thereisnoname/p/5928416.html