这是第一次和别人合作一起实现某个需求,共同完成一个项目,确实是前所未有的体验。首先从个人,我的搭档和我所习惯使用的编程语言是不一样的,所以商讨后,我们决定用JAVA,而我之前是从来没写过JAVA程序的,所以我不得不在短时间内快速学会一门语言。好在对编程语言的特性较熟悉,JAVA的面向对象思想我也很熟悉,所以学习起来没有太大的困难。我们的分工很明确,我负责UI界面的开发,搭档负责后台数据的管理。UI部分我也是第一次接触,在网上和JAVA教程书籍的帮助下还是很顺利地掌握了这一部分知识。UI相比命令行,和用户的交互确实更方便,也让我有了更多的开发动力,创造前所未有的事物真是一件令人兴奋的事情。学习JAVA和UI设计花费了我不少的时间,以至于真正开始开发的时候搭档因为国庆节放假的原因已经回家了,所以我们沟通只能通过QQ,开发也只能在两地分别进行,不过这好像并没有带来太大的问题。完成各自的部分后,我们决定在最后两天进行整合,在这之前,我都是拟定好了后台需要传来的数据,然后以假输出的方式传出,接口设想也十分清晰,需要从用户那获取什么数据,传给后台,又要从后台获取哪些数据反馈给用户,整个UI的按键交互都已经完成,可以跑通,只等待后台的数据交互了。本以为各自完成了各自的部分后,整合应该会很顺利,然而事实并非如此,尽管在前端后端各自调试都没有BUG的情况下,我们的整合依然出现了很多问题,我总结了一下,主要是以下的几点。第一,代码风格差异带来了很多困难,我在开发时多数用到了面向对象思想,所有函数的调用都需要通过对象,并且整个UI部分各个窗体的类设计都是封装和打包好的,而搭档更喜欢写方法,而且方法零散没有设计模块,也没有打包,我很难直接调用,整合时只能将他的方法复制粘贴到我的类设计中,以至于最后整个源代码变得面目全非,个人感觉十分臃肿,因为搭档的方法本来应该全部提出,独立于我的类设计之外的。另一点是我们对需求的设想出现了偏差,以至于有些搭档需要传送的数据我在用户界面中不好获取,而有些我在用户界面中获取到的数据,搭档完全没有用到,主要是在用户登录注册方面出现了这方面的问题,好在在对部分后台程序进行修改和拼接后还是按照我的想法实现了需求。总结原因在于我和搭档的沟通不够,在项目开发前期,对于前后端的接口没有设计好,是在开发完成后才解决问题,在开发过程中也缺少交流,QQ上沟通的内容多是自己程序内部出现的问题而不是对接方面的问题。结对编程不容易,我更深刻地明白了1+1为什么小于2,也懂得了沟通是需要成本的这个道理,但1+1仍然是大于1的,所以以后还是要多合作多进步。

10-08 21:30