结对编程——队友代码解读

  与个人项目相比,结对编程带给我们的是一个互相反思的过程。通过对双方代码的剖析和解读,我们发掘到了双方存在的优点和不足,这有助于我们获得对个人项目更加深入的理解,从而在优化和完善个人项目的基础上,更为全面便捷地实现结对编程项目。

  接下来是我对搭档Partner C个人项目的解读,个人需求主要是要求形成一个中小学数学卷子自动生成程序,具体内容在此就不赘述了。

   先来看看他的思维和代码的优越之处:

  1.题库的运用。

  这是让我很惊艳的一点,他创建了一个题库工程,专门用于生成小学、初中、高中各个年级的题目。题库工程运行的最终结果是生成三个txt文件,各自存储着该年级的1000道题目。这样之后每个用户要生成试卷的话,直接从题库中抽题组卷即可。这样简化了组卷的过程,也更加方便查重,只需确保题库中无重复题目,并且同一账户下抽出的题目不同即可。关于检查同一账户下抽出的题目是否相同,我的搭档在组卷成功后附加生成了专门存储抽取的是题库中的第几题的txt文件,是否被抽取用0和1表示,查重时比较即可。

  2.用户账户密码的存储

他用一个txt文件存储了对应的账户和密码,程序运行时读取文件进行比较和匹配。这样便于对用户账户密码的增删改查,想要再添加、删除、修改、查找用户的账户密码时,直接对该txt文件进行操作即可,这样面对更加庞大的用户系统时更加灵活和高效。

  3.封装思想的运用

其题库生成工程和数学卷子生成工程都是将头文件、函数、主程序分开的,这样运用了封装思想的代码仅通过各个接口运行程序,维护了项目的稳定性,不易被外界影响。

  当然了,他的代码还是存在着一些问题

  1.出题逻辑的随机性

他的出题逻辑不够完美,小学题目括号不会出现多于一次;初中题目的话可能是理解上的偏差,他只选择了可以开方成整数的数字;高中题目只能满足’+’后跟三角函数。这样的题目还是存在一定的随机性问题。

  2.题目的严谨性

理解上的偏差问题,他认为确保初高中题目至少含有一道开方三角灯操作的题目。但即便概率较小,还是可能出现初中题目不含平方和开方操作,高中题目不含三角函数的情况。

 

         之后的结对编程项目中,我们将结合双方的优点,改进双方的不足,优化界面,完善代码逻辑,尽可能设计得更加人性化一些,希望能够带来较好的用户体验。

你可能感兴趣的:(结对编程——队友代码解读)