代码复审

Posted zhaobs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了代码复审相关的知识,希望对你有一定的参考价值。

项目地址:https://github.com/YoungForest/Sudoku-Cli


 

一、代码复审check list

  1. 概要部分
    • 代码符合需求和规格说明。对功能的实现非常完善。
    • 代码设计有比较周全的考虑。首先,程序对输入有详细的处理,对输入的格式进行了检查,并对输入的数字大小进行了判断。程序还有周全的错误处理,把错误信息输出到ErrorLog.txt中。
    • 代码有较高的可读性。代码根据功能分为了几个不同的类,对功能的划分较为直观,关键部分有详细的注释,但有些部分仍缺少必要的注释,存在一些难以理解的代码。
    • 由于代码的分工十分明确,所以易于维护。
    • 代码的每一行都执行并检查过了。
  2. 设计规范部分
    • 没有应用常用的设计模式。
    • 有较多的硬编码存在,比如在很多的for循环中
    •  代码使用C#编写,不会影响移植 。

    • 没有可以调用已有库的功能。
    • 没有无用的代码。
  3. 代码规范部分
    • 程序整体代码风格一致。
  4. 具体代码部分
    • 对不同类型的错误进行了处理,在某些地方检查了函数的返回值。
    • 参数传递没有错误,字符串长度是字符的长度,以0开始计数。
    • 对输入的数字大小进行了判断,没有用到switch语句,没有可能出现死循环的地方。
    • 没有使用断言。
    • 在生成数独的回溯中申请资源,没有可导致内存泄漏的地方。
    • 没有无用的元素。
  5. 效能
    • 程序的效能较差,生成50000个数独大概要4分钟。
    • string的操作可以用StringBuilder 来优化。
    • 程序只有对文件的读写操作,不会超时。没有网络调用。
  6. 可读性
    • 代码的可读性较高,有大量的注释。但仍有个别关键函数缺少必要的注释,读起来难以理解
      •  

  7. 可测试性
    • 代码的单元测试不足。需要增加一些单元测试。
    • 没有涉及到数据库、网络、多线程等。

 

二、设计代码规范

  1. 和cpplint提供的代码规范相比,我个人的代码有很多的不足
    • 我的命名有很大的问题,很多类名和变量名都是全部小写的
    • 没有写copyright
    • 使用tab缩进
    • 很多符号的后面没有加空格
    • 大括号是单独的一行
  2. 代码规范里我想不到的部分
    • 需要写copyright
    • 使用4个空格缩进
    • 一些符号的后面需要加空格
  3. 代码规范的意义
    • 我认为对代码进行规范是为了增加代码的可读性,便于团队合作开发和维护。
  4. 我们使用的代码规范
    • 使用驼峰命名
    • 常量以k开头
    • 用4个空格缩进
    • 需要加空格的符号后面加空格
    • 函数之间空一行
    • 每个函数和代码块前加上详细的注释
    • 有必要时在变量声明的后面加上注释
    • 所有地方都不省略大括号  

 

以上是关于代码复审的主要内容,如果未能解决你的问题,请参考以下文章

20180320作业2:进行代码复审训练

进行代码复审训练

代码复审

代码规范代码复审PSP

代码复审实战

词法分析器代码复审