General
- 代码能够正确运行,能够正确生成指定数量的题目和答案,并且能够对给出的题目和答案文件进行比对,输出结果。
- 代码没有非常复杂的逻辑,比较容易理解,但是在缺少注释的情况下有部分代码需要较长时间的分析才能理解。
- 建议将Program类中的方法改为非static类型的,有利于提高程序的封装性。
Security
- 对于控制台输入的格式检查不到位,例如:如果参数-n中出现字母,或者答案文件中出现字母,在调用int.Parse()时会出现程序崩溃的错误。
- 很多函数都没有对输入的参数进行格式检查,比如说Number类中的四则运算函数,如果调用方法时输入的参数other不合法时,容易产生除数为零等问题。
Documentation
- 缺少一些对整个类或者整个程序的整体说明,在第一次阅读代码的时候有点儿没有头绪。
- 简单的函数有注释,例如四则运算,求最大公约数等,但是最需要注释的几个表达式处理以及计算的具体过程缺少注释。
- 基本上都有注释,但是在Expression类中的expressions和operators两个属性的具体用途最好用注释具体说一下。
Testing
- 缺少unit test对所有方法的正确性进行测试。