结对编程总结
如何复用个人项目
结对编程的作业中有一个模块的任务就是生成题目,基本没有怎么讨论,我们队就决定这个模块是由我来负责了,因为在个人编程时,我便使得我生成的题目尽可能的简单。需要改动的就是不在需要自己去读取用户的数据,而是直接由队友给我两个值,告诉我当前是要出什么年级的题,以及需要出多少道题。
但是后来我还是遇到了一些问题,即如何计算生成的式子的正确答案。尽管我的式子很简单(相较与队友),但是对优先级的处理任然是个很大的问题。最后最终我完成了但也没完成。当我写好处理式子的相关代码时,发现任然存在很多问题。比如无法处理除以0、无法处理tan90这种不存在的数、无法处理负数(最开始没想到1+-1此类的式子,导致我程序不能处理,后面也觉得处理起来非常困难)。最终我抱着一种“解决不了问题就解决问题的提出者的想法”,直接修改了下我题目生成模块,让其不能生成这些我处理不了的数据出来。
同时我发现在查重这一块队友的函数写的更好,所以我直接把他的拿来用了。
遇到的困难
一. 就是此前说的运算结果的处理,不再赘述。
二. 发短信。该模块个人认为是最难的模块之一。在此之前,我从未接触过相关知识,所以我只能查阅网络学习。在这一过程中,遇到了两大难题。一是xx云的申请,最开始选择的是榛子云,可个人的申请神奇的没过,最后选择和其他小组共用一个腾讯云账号。二是腾讯云jar包的导入,我知道要创建Maven文件并在其中通过输入代码安装腾讯云的短信jar包,可是我在网络上查找了很多资料都没找到eclipse中如何在一个Java工程中创建一个Maven工程,直到后来我询问了一位成功完成了该功能的同学才解决。该困难其实也可归结于对eclipse不熟悉。之后按照腾讯云官方给与的代码实现该功能既可以。
结对编程经验与教训
对于团队而言,我认为最重要的有两点,一是沟通,二是确定编译环境一样。
对于沟通,在项目一开始时,我和队友便尽情沟通,确定好了每个人的任务,要设计那些类实现那些功能,里面要预留那些函数好被对方调用,已经这些函数的输入输出。但实际写代码发现某些功能与最初设计有差异时也会迅速沟通队友提醒他注意,避免出错。
对于编译环境,最开始时,我们的jdk版本是不一样的,这导致了有些API函数我能使用,但他那里完全没法用,这导致了部分功能我需要完全重写。最后经过沟通,我们决定统一jdk和eclipse版本,避免在出现这种情况。