通过将近一周的共同努力,HnuLyx和我终于完成了项目,期间心酸苦辣,受益良多,请容许我一一道来。html
Q: 如何复用我的项目实现结对编程项目?java
A: 我的项目主要是分为核心的出题程序和简单的命令交互两个部分,咱们在结对编程了调用了出题程序部分的代码,来完成咱们的项目。算法
正文开始...编程
咱们在看到需求后,首先先标记了需求内的主体需求点,如:GUI界面、用户提供手机号,点击注册将收到一个注册码,用户可以使用该注册码完成注册等需求,共同确立了主要方向。咱们一致认为,先完成主要功能,而后添加各类部件以及美化,可是初步GUI的设计框架必定要有必定的可拓展性,能够很好的容纳各类功能部件。以后,咱们在UI设计上,集思广益,共同讨论,完成了以下的草图(包含页面跳转),而且明确了分工:HnuLyx主要负责内部运行算法方面的内容,我主要负责UI美化以及算法与UI拼接部分的工做,再由咱们二人共同提出想法,分工完成。框架
值得一提的是,在开始前,咱们没有当即着手制做UI以及编写算法,咱们先对Java的UI类进行了从新编写与封装,造成了uiTools的package,方便复用,减小重复性的代码,极大的减小了工做量;同时,咱们还共同注册了腾讯工蜂,以便对想法以及程序缺陷进行管理,制定时间点,里程碑,帮助咱们完成项目。函数
HnuLyx和我开始了高效率的开发工做,常常一块儿编程,遇到双方代码融合部分的bug,咱们都会在一块儿进行交流,合做解决问题。期间,咱们对如何可以高效的交流进度,解决问题进行了思考。为了解决同步性、协调性问题,在工做前,咱们都会和对方说明目前的着力点,大概完成的时间,以及双方对某个功能实现时须要的数据类型,写好函数,便于开发调用。对于项目制做过程当中的灵感与附加兴奋性需求,咱们会进行备忘,放入工蜂中,而后着力开发咱们的主体功能。对于当前的困难,进行针对性解决,利用工蜂里程碑,创建结点,体现编程合做的阶段性。而且共同约定命名方式,使用小驼峰命名法。post
整体来讲,咱们在发现问题,研究问题,解决问题中学习,而且总结经验。学习
(1)磨刀不误砍柴功优化
必定要先规划好框架,方向,定位,在开工,有规划,有阶段性的进行开发,才会更加有效率;对于技术而言,一样如此,要先了解JavaGUI能够干什么,有哪些好用的类与函数,而后再结合设计方案,进行开发,这样会使项目体验感,可操做性获得极大的提升。ui
(2)团结就是力量
过桥之因此不能齐步走,是由于你们在经过一个步调上;编程中想要快速实现功能,解决问题,须要结对的咱们在同一方向上进行努力,解决问题,按期交流与阶段性交流能够有效的提升团队的同步性;其实,真正意义上的结对编程是用两人用一台电脑,轮流编程,在这个方面,咱们积极运用在了解决问题方面,先将问题分享,说明逻辑,而后轮流解决问题,共同商议。
(3)我的解决问题能力
其实,GUI的实现须要不少函数来实现不少功能,面对想要添加但没有接触过的功能,咱们如何解决?咱们本身须要在不寻求他人帮助的状况下,可以独立解决问题的能力,上网搜索,看博客,查参考书,等等不少方式,都是解决问题的方法,这也是咱们提升本身的有效途径之一
(1)代码框架
敲代码,框架性很重要,这里的框架,包含了书写规范,定义规范,逻辑规范。我在编程中有一些复制粘贴的地方,总会出现遗漏的现象,为后期处理bug带来不少麻烦,主要在之后更加注重这方面的强化。在注释方面,进行了部分关键点注释,须要保持,而且要多参考优秀代码,学习其好的规范和算法,提升代码可读性。
(2)代码优化
编程中,有言:高类聚,低耦合。代码中有一些参数在调用时,每每一行要写很长,极大的影响了代码的可读性。对于涉及的框架设计,咱们根据须要,创建了用户类,卷纸类等,帮助程序编写,但我认为,依然有很大的优化空间,须要往后积极学习,向优秀项目看齐。
最后,在这里和你们分享一些资源,同时附上了本次项目功能说明的博客连接 HNU_小初高数学学习软件_功能说明 和 队友HnuLyx发布的博客(内含流程图) 结队编程总结分析 ,但愿你们能够多多提一些建议,相互学习,共同进步。