项目地址:https://github.com/YoungForest/Sudoku-Cli
一、代码复审check list
- 概要部分
- 代码符合需求和规格说明。对功能的实现非常完善。
- 代码设计有比较周全的考虑。首先,程序对输入有详细的处理,对输入的格式进行了检查,并对输入的数字大小进行了判断。程序还有周全的错误处理,把错误信息输出到ErrorLog.txt中。
- 代码有较高的可读性。代码根据功能分为了几个不同的类,对功能的划分较为直观,关键部分有详细的注释,但有些部分仍缺少必要的注释,存在一些难以理解的代码。
- 由于代码的分工十分明确,所以易于维护。
- 代码的每一行都执行并检查过了。
- 设计规范部分
- 没有应用常用的设计模式。
- 有较多的硬编码存在,比如在很多的for循环中
-
代码使用C#编写,不会影响移植 。
- 没有可以调用已有库的功能。
- 没有无用的代码。
- 代码规范部分
- 程序整体代码风格一致。
- 具体代码部分
- 对不同类型的错误进行了处理,在某些地方检查了函数的返回值。
- 参数传递没有错误,字符串长度是字符的长度,以0开始计数。
- 对输入的数字大小进行了判断,没有用到switch语句,没有可能出现死循环的地方。
- 没有使用断言。
- 在生成数独的回溯中申请资源,没有可导致内存泄漏的地方。
- 没有无用的元素。
- 效能
- 程序的效能较差,生成50000个数独大概要4分钟。
- string的操作可以用StringBuilder 来优化。
- 程序只有对文件的读写操作,不会超时。没有网络调用。
- 可读性
- 代码的可读性较高,有大量的注释。但仍有个别关键函数缺少必要的注释,读起来难以理解
- 代码的可读性较高,有大量的注释。但仍有个别关键函数缺少必要的注释,读起来难以理解
- 可测试性
- 代码的单元测试不足。需要增加一些单元测试。
- 没有涉及到数据库、网络、多线程等。
二、设计代码规范
- 和cpplint提供的代码规范相比,我个人的代码有很多的不足
- 我的命名有很大的问题,很多类名和变量名都是全部小写的
- 没有写copyright
- 使用tab缩进
- 很多符号的后面没有加空格
- 大括号是单独的一行
- 代码规范里我想不到的部分
- 需要写copyright
- 使用4个空格缩进
- 一些符号的后面需要加空格
- 代码规范的意义
- 我认为对代码进行规范是为了增加代码的可读性,便于团队合作开发和维护。
- 我们使用的代码规范
- 使用驼峰命名
- 常量以k开头
- 用4个空格缩进
- 需要加空格的符号后面加空格
- 函数之间空一行
- 每个函数和代码块前加上详细的注释
- 有必要时在变量声明的后面加上注释
- 所有地方都不省略大括号