痛苦的对接体验——软工第一次结对作业
这次对接是痛苦的,痛苦的,痛苦的……
对接中core组存在的问题:
- 参数标准不一。有些组需要表达式长度的参数,有些组需要操作符数量的参数,有些组对操作符做了捆绑操作(比如:'+-')。不同的参数需要不同的界面,也就是说要改一些按钮。每一个组改一点,真的要累死……
- 表达式和答案传递方式不同。有用string的,有用char*的,有用vector的,有读写文件的,也有用结构体的……五花八门。
- 调用函数格式不同。有的一个setting函数需要传输7、8个参数,有的返回了一个自定义的结构体,有的需要七八个函数来设置。个人支持结构体传输参数。
- 有些组API文档写的不清楚,看完之后还需要联系core组的成员才能解决问题。
对接过程中我们组存在的问题:
- 只提供了读内存的方式,没有写读写文件的版本。
- 没有定测试标准,导致每一组的测试不均衡。可能有的组测试的很详细,有的组测的很简略。
结对编程体验:
此次编程需要使用c++来写Qt,由于我和搭档对c++都不熟悉,最开始的时候我们选择分开学习各自探索。学了两天后大致有些了解,我们开始交流自己的看法,尝试合作。
第一次合作便尝到了结对的甜头:
- 两双眼睛一起看,出小错误的概率极大降低。几乎是在写完语句的同时,另一个人就能发现哪里少了逗号,哪里变量用错了。
- 跟别人一起编程,不好意思不努力。看对方那么认真的编程,会自然而然的激励自己,整个晚上连续写了近3个小时程序,效率达到巅峰。
- 编程的人出现了问题,两个人一起能够迅速解决。出现问题后,我们开始看网上的解决方法,并提出自己的想法,总是能很快的解决。
- 程序的合理性提高了不少。由于是两个人一起,所以每次遇到需要决定的地方,都会先提出各自的看法,比较斟酌之后选用合理的方式。
我们迅速的设计并构建好了UI的结构,之后便开始设计界面外观。由于我的审美比较差劲,所以这部分工作是由娄雨稹同学编程,我在旁边给出意见。
两个人分别负责自己擅长的地方,使得程序质量更高。在不懈努力下,我们用了近1天的时间优化了界面外观。
最后细节部分,由于改动工作量较小,所以我们各自分开做,通过github管理代码。
反思:
- 项目一开始UI组和Core组就应该制定统一的接口标准(包括传输参数格式,调用函数格式,读取信息方式等等)。
- UI组应该制定测试标准。统一的测试标准有利于加快测试进度,也很容易对不同core的质量做出评判。
- 结对编程要根据情况改变方式。都不懂的情况下应该分开学习,工作量不大的情况下应该各自搞,之后再提交到github。只有两个人都有一定的能力且要解决核心的问题时才需要两个人一起编程。