代码改变世界

结对编程之队友代码赏析

2018-09-27 21:30  曾育彪  阅读(207)  评论(0编辑  收藏  举报

前言:

本以为结对编程就只是让两个小伙伴合作完成一个小工程项目就OK啦,没想到在开始之前还有这么一手操作——赏析队友的代码!因为在我看来,现阶段大家写的代码的规范性都是稍微欠缺一些的(PS:队友用的是java,我用的是C++),读别人的代码无疑是对心态的一种挑战,不过从中,收获颇多~

 

队友代码总括:

用的是java语言来写,整个工程的完整性以及条理性都很好,思路也是特别地清晰,可拓展性强,能满足用户的需求,很好地利用了java语言的优点。

  1. TestPaperProgram类

这个类完成了用户的登录、状态的切换、以及题库生成等用户需求。

优点:

使用MAP来完成账号和密码的配对,值得学习;

②JudgeInput可以完成登陆后在输入的时状态切换;

③代码条理清晰,每个方法分开实现,便于维护;

缺点:

①变量没有注释,部分重要代码注释有点儿少,不便于小编读代码;

可将PrintInfor方法写进main函数中;

  1. PrimaryMathTeacher类

这个类完成了小学题库的生成,难点在括号的处理。

优点:

①生成后缀表达式,然后利用栈转换成中缀表达式来完成对括号的处理;

②通过运算优先级的判断,完成对无意义括号的删除;

③巧妙地生成了用户文件夹和调用了系统时间;

④查重函数将每次生成的题目保存下来,再将其保存之前依次比较确定是否为重复题目;

缺点:

①随机函数可写成一个方法多次调用,就不必多次写随机函数;

②在后缀表达式中,少了一些情况没有考虑到;

  1. JuniorMathTeacher类

这个类完成了初中题库的生成,难点在括号的处理及根号和平方的处理。

优点:

①随机生成根号和平方,避免了题目中过多的根号和平方的出现;

②巧妙地考虑根号和平方能出现的位置来完成题目的生成;

缺点:

①随机函数可写成一个方法多次调用,就不必多次写随机函数;

②代码有些冗余,建议再精简些;

  1. SeniorMathTeacher类

这个类完成了高中题库的生成,难点在括号,三角函数及度数的处理。

优点:

①抛出异常,打印轨迹,方便查错;

巧妙地考虑不合理题目的生成,例如:sin(60+sin60°);

缺点:

①题库中缺少三角函数及根号、平方的套用的题目;

②覆盖面不全,应考虑平衡每一题的难度;