关于结对编程的感想、感受,见我的另一篇随笔——
下面我来谈谈本次结对编程的收获以及发现的问题
收获
①这是我人生中第一次做UI界面设计,刚拿到这个题目还是比较兴奋的,虽然相关的知识几乎没有了解,但终于不用在黑框框里跑代码了,终于可以和用户进行较好的交互了(以前的程序对输入有较严格的要求,非法输入容易导致崩溃),想想就很美滋滋。
②考虑到平台的移植性问题,这次随大流用Qt做用户界面设计。Qt是一款较成熟的产品,自带Creator图形设计界面,对新上手的我而言可谓很友好了,当然只会拖拽模块是不能设计出较好的界面的,为此,我查看了Qt相关的教程,对Qt的一些基本特性有了大致了解,尤其是 信号/槽 机制是与其他类似软件相区别的一大特色。这可能是本次结对编程项目的最大收获吧。
③因为这次要与Core组对接,必然涉及到库文件的调用问题,这也经历了一番波折。我们使用的是Mingw编译器,起初想使用对*.dll的隐式调用,尝试了很久一直都失败,上网查遍相关资料并把所有方案尝试之后依旧无果(毫不夸张的说,凡是能搜到的包含“Qt”,“Mingw”,“dll”,“隐式调用”这些关键字的索引我几乎都看过),最后从一位同学那里得知,Mingw可能不支持对dll的隐式调用,只能使用显式调用。所以,有时还是需要与周围“志同道合”的人交流的,实乃踏破铁鞋无觅处,得来只需问一问。
问题
①这次普遍存在的问题是各组接口不统一,导致最终轮流调试异常艰难,复杂度线型增长。其实,这也是大家都没有经验吧,直到一个星期后快到交付日期了才有同学给出统一接口的文档。虽然这次花费了很大力气处理对接的事情,过程中也十分痛苦(每换一组就要改不少代码),但吃一堑,长一智,以后进行类似的团队项目就知道要现制定公认的标准了。或许,这也是做软件需要经历的一个成长过程吧。
②结对编程的理念是一人担任驾驶员,一人担任领航员,并定时交换身份。这第一次结对我们并未将这一点贯彻落实,一开始还是一个人写一个人看,写的人专心码代码,看的人挑问题、提建议;不过,到了后来,尤其是遇到比较大的麻烦时,就两个人各写各的了,看谁能先把问题解决,然后一人驾驶一人领航的节奏就渐渐被打乱了。其实,这也无可厚非,一是因为这是第一次进行结对,两人的分工可能还不那么合拍,二是我们能力上还有些欠缺,比如需要学一些新知识,这就限制了结对编程的顺利进行。至少,我们对这样的模式更加熟悉,其带来的好处也不言而喻,以后若有机会继续尝试这种方式或许会更熟练。