结对编程

结对项目分析

一、简介

  本博客为对结对编程项目复用个人项目代码,以及结对编程过程中的经验、教训的总结。

  本次的个人项目实现的是带UI的小初高数学学习软件,采用的编程语言是Java。

二、复用代码

  在本次的结对编程中,我负责的是UI的部分,而个人项目中实现的是命令行界面,因而我复用代码的程度不高,仅仅复用了一下个人项目中的User类。

三、结对编程的经验、教训

  在本次的代码编写过程中,我负责UI部分,另外一位同学负责后台逻辑,一开始的时候,因为希望赶快做出一个模板出来,然后共同想着怎么修改一下,所以我在没有经过深思熟虑的情况下直接就开始编写UI部分的代码了。

  后来我发现,这样的结果就是代码的结果乱七八糟的。因为没有经过仔细的事前设计,在不同的界面中,我对于同一类组件的相同的设置都要重复进行编码,但如果我事前有经过设计,先写一个自己的组件,去继承那些Java提供的组件,把一些共同的操作,写到一个init()函数或者构造函数中,就可以极大减少代码量。所以在编写完很大一部分的代码后,我又重新修改了底层的代码,编写了自己的组件,把一些共同的操作写到了构造函数中。

  如上图,我编写了一个MyButton类,继承了Java的JButton,在构造函数中,我就直接加入了鼠标移入的监听事件,并设置了一些参数,这样我之后直接new MyButton类后,就可以省略这些参数的设置。我一共分了7个界面,每个界面都有按钮,每个按钮都有一样的鼠标移入移出的监听事件,如果我没有这样写,我的就要写上至少7遍的addMouseListener(),可想而知,这是多么麻烦的事。

  经过这次的教训后,我深刻理解到了预先的设计是多么重要,在没有经过仔细思考的情况下写出来的代码,最后很可能会因为各种各样的原因需要大改。

  在我的图形界面和后台逻辑进行融合的时候,因为事前规划了要给什么数据、返回什么样的数据,所以融合的比较顺利,但是因为事前只是规划了返回的数据类型,没有商量好后台分什么类、类名是什么、什么函数是给我调用的用来处理数据,返回所需结果的,所以我们融合的时候效率还是比较低的,需要两个人一直沟通交流,把他写的函数找出来,然后我来调用,效率还是比较低的。而且由于一开始忘记了商量jdk的版本问题,在把我的代码移植到他的运行环境时,出现了很多的error,虽然最后改回来了,但也浪费了很多时间。

  在这次的结对编程中,我发现,代码的编写已经不能是自己思考好了就上,需要等队友也思考过后,两个人商量着来,这增加了很多的沟通成本,但总体上还是提高了效率,而且在测试环节中,两个人分头测试,也比较容易发现问题。而且结对编程中,要协调方方面面的事,漏了一部分可能就会导致交接的时候出现极大的问题。

posted @ 2021-10-07 00:20  汤10086  阅读(45)  评论(0)    收藏  举报