结对编程之队友代码赏析
2018-09-27 21:30 曾育彪 阅读(207) 评论(0) 编辑 收藏 举报前言:
本以为结对编程就只是让两个小伙伴合作完成一个小工程项目就OK啦,没想到在开始之前还有这么一手操作——赏析队友的代码!因为在我看来,现阶段大家写的代码的规范性都是稍微欠缺一些的(PS:队友用的是java,我用的是C++),读别人的代码无疑是对心态的一种挑战,不过从中,收获颇多~
队友代码总括:
用的是java语言来写,整个工程的完整性以及条理性都很好,思路也是特别地清晰,可拓展性强,能满足用户的需求,很好地利用了java语言的优点。
- TestPaperProgram类
这个类完成了用户的登录、状态的切换、以及题库生成等用户需求。
优点:
①使用MAP来完成账号和密码的配对,值得学习;
②JudgeInput可以完成登陆后在输入的时状态切换;
③代码条理清晰,每个方法分开实现,便于维护;
缺点:
①变量没有注释,部分重要代码注释有点儿少,不便于小编读代码;
②可将PrintInfor方法写进main函数中;
- PrimaryMathTeacher类
这个类完成了小学题库的生成,难点在括号的处理。
优点:
①生成后缀表达式,然后利用栈转换成中缀表达式来完成对括号的处理;
②通过运算优先级的判断,完成对无意义括号的删除;
③巧妙地生成了用户文件夹和调用了系统时间;
④查重函数将每次生成的题目保存下来,再将其保存之前依次比较确定是否为重复题目;
缺点:
①随机函数可写成一个方法多次调用,就不必多次写随机函数;
②在后缀表达式中,少了一些情况没有考虑到;
- JuniorMathTeacher类
这个类完成了初中题库的生成,难点在括号的处理及根号和平方的处理。
优点:
①随机生成根号和平方,避免了题目中过多的根号和平方的出现;
②巧妙地考虑根号和平方能出现的位置来完成题目的生成;
缺点:
①随机函数可写成一个方法多次调用,就不必多次写随机函数;
②代码有些冗余,建议再精简些;
- SeniorMathTeacher类
这个类完成了高中题库的生成,难点在括号,三角函数及度数的处理。
优点:
①抛出异常,打印轨迹,方便查错;
②巧妙地考虑不合理题目的生成,例如:sin(60+sin60°);
缺点:
①题库中缺少三角函数及根号、平方的套用的题目;
②覆盖面不全,应考虑平衡每一题的难度;