结对编程总结
和王靖翔两个人历时一个多星期将结对项目完结,在这个项目上,我们都花了不少的时间,从原型的搭建到代码编写,从调试到运行,一路上遇到了不少的困难,有些困难解决了,但是有些困难尚未解决,严格来说,本项目并未对项目要求做一实现,其中短信方面的困难尚未解决,代码留有发送短信接口没有实现。这与我们使用C++语言编写有关,许多平台上的短信服务接口并没有提供C++的支持,因此这在技术上还是有点难度。希望随着学习的进一步加深,能够将这个空缺不上。
本项目在项目一的基础上进行改进,加入了GUI界面,在GUI上选用Qt平台。项目一的代码主要参考了张日勇的代码。项目复用了项目一的许多代码,其中最主要的就是复用了生成题目那部的代码,几乎原封不动是直接搬过来,之所以能这样,是因为,当初在设计项目一的时候,采用了面向对象的方法,将生成题目独立写成了一个类,与其它模块耦合程序很低,几乎没有耦合,其它模块是直接调用类给出的接口来生成题目。因此在项目二出题的模块,完全可以调用该类的接口,但又为了满足本项目需求,需要在此类中添加新的属性和方法,不过主体逻辑是不改变的。
再有就是用户类,项目一中也独立将用户写成了一个类,直接将该类复用到本项目再添加新的属性和方法即可。不过在项目一中并没有将文件操作独立成类,在本项目中,实现了该类,在文件操作方面,可以调用文件操作类中的静态方法,这样可以专注与代码逻辑,而不需要考虑一些细节。
项目一中并没有实现答案的计算,因此本项目需要根据题目类生成的题目在题目类中添加生成答案的方法。
上图是在本项目中复用topic类和user类的截图。
上图是项目一中原topic类和user类。
编程经验:通过项目二的练习,我加深了对面向对象思想的理解,感受到了面向对象思想的好处,在代码复用方面提供了极大的便利。对函数和变量的名字规范有了更深的认识,且基本能按照编码规范来写代码。
教训:不要为了贪快而不理清思路就开始编码,也不要以为自己思路清晰而不写注释,不写注释,在半天过后,你看你的代码就如同看天书一样,需要费很大力气才能再次读懂,并且你的伙伴读你的代码也难以理解,因此,在关键的代码块上一定要写好注释,关爱你自己,也关爱看你代码的人。