使用OCLint进行Code Review

Posted menchao

tags:

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

OCLint是一个静态分析工具,支持C,C++,Objective-C代码,可以高效的实现Code Review的自动化,检查代码中的缺陷。

  1. 未使用的变量参数
  2. 复杂的代码逻辑,多个if/else的判断
  3. 不需要废弃的代码
  4. 过长的方法名或过多的参数
  5. 其它,可自己设置规则 

下面开始从坏境搭建到配置来讲解OCLint到使用。

一 坏境搭建

1.通过homebrew安装OCLint
brew tap oclint/formulae

  

brew install Clint
2.安装xcpretty
sudo gem install xcpretty  

安装完后,如果控制台输入oclint后出现下面内容,表示安装成功

技术图片

二 XCode配置

1.增加taget

在现有xcode项目中增加target,如下图,命名为"oclint"

技术图片

 

2.增加脚本

选中OCLint Target,进入Build Phases选项,点左上角的加号,选择“New Run Script Phase”

技术图片

脚本输入框输入如上脚本代码:

chmod -R 777 $SRCROOT/oclint
$SRCROOT/oclint/oclint.sh

  

3.创建脚本文件

在主工程目录下新建oclint文件夹,新建oclint.sh脚本文件,编辑内容如下:

cd到工程目录下,执行命令:

技术图片

 

 

 

 

技术图片 

脚本具体内容:

技术图片
export LC_ALL=en_US.UTF-8
source ~/.bash_profile
#获取项目路径
PROJECT_DIR=$(cd `dirname $0`;cd ..;pwd)
cd ${PROJECT_DIR}
buildPath="${PROJECT_DIR}/oclint/build"
compilecommandsJsonFolderPath="${PROJECT_DIR}/oclint"
compilecommandsJsonFilePath="${PROJECT_DIR}/oclint/compile_commands.json"
rm -rf "$compilecommandsJsonFolderPath/build"
xcodebuild SYMROOT=$buildPath | xcpretty -r json-compilation-database -o $compilecommandsJsonFilePath
cd $compilecommandsJsonFolderPath
oclint-json-compilation-database -- -report-type xcode -rc CYCLOMATIC_COMPLEXITY=10 -rc LONG_CLASS=1000 -rc LONG_METHOD=50 -rc LONG_LINE=140 -rc LONG_VARIABLE_NAME=30 -rc SHORT_VARIABLE_NAME=1 -rc MAXIMUM_IF_LENGTH=5 -rc MINIMUM_CASES_IN_SWITCH=2 -rc NCSS_METHOD=30 -rc NESTED_BLOCK_DEPTH=5 -rc TOO_MANY_METHOD=30 -rc TOO_MANY_PARAMETERS=5 -max-priority-1 0 -max-priority-2 5 -max-priority-3 10
oclint sh

 

4.compile_commands.json配置

使用xcpretty生成的compilation_db.json,

xcodebuild |xcpretty -r json-compilation-database

 工程同级目录下会生成build/reports/ompilation-db.json,拷贝到oclint目录下,重命名为compile_commands.json。如步骤3。

以上配置完成后,target选择oclint,可以进行编译了,这时就可以看到设置的规则警告。

技术图片

项目中脚本设置了-rc LONG_LINE=140 表示一行不能超过140,所以会出警告。下一步将具体介绍规则配置。

三 OCLint规则

系统默认规则

技术图片

四 OCLint自定义规则

 待完成。。

以上是关于使用OCLint进行Code Review的主要内容,如果未能解决你的问题,请参考以下文章

Code Review 最佳实践

ReviewBoard进行Code Review

[行业关键词] review code review

我是如何进行code review的

关于Code Review

让XCode自动CodeReview你的代码-OCLint使用