说明

为了保证代码质量,Code Review 是非常重要的一环,受限于现实情况,大多数团队没有足够的时间进行 Code Review,那么只能把一部分 CR 工作交给计算机去完成了。我们只需要定下合理的流程,用代码告诉计算机需要做什么,剩下的就交给我们可靠的伙伴吧。

应用了自动化 Code Review 后,如果你的代码写得不好,Xcode 会表示不开心。

如果你忽略 Xcode 的心情,那么质量管理平台会默默地记录这一切

这套东西既帮助开发们写出更高质量的的代码,也给经理们对工程质量的评估提供了一个切面的支持,同时只需要花费较少的人力维护

OCLint

工欲善其事,必先利其器

OCLint 是一个开源的,基于 Clang 用 C++ 编写而成的,可以用于 C、C++ 和 Objective-C 的静态代码分析器。它可以在扫描的过程中动态加载规则文件(Rules),因此可以实现非常灵活的,高度可自定义的代码分析方案。它几乎可以和大多数系统无缝集成,例如 Cmake、Bear、xcodebuild、xctool、Xcode、xcpretty、Jenkins CI、Travis CI 等。

OCLint 通过代码并寻找潜在问题来提高质量和减少缺陷,比如:

1.可能的错误 - 清空if / else / try / catch / finally语句

2.未使用的代码 - 未使用的本地变量和参数

3.复杂的代码 - 高回圈复杂度,NPath复杂度和高NCSS

4.冗余代码 - 冗余如果语句和无用的括号

5.代码气味 - 长方法和长参数列表

6.不好的做法 - 倒逻辑和参数重新分配

...

OCLint 安装

确保你已经安装了 Homebrew

$ brew tap oclint/formulae

$ brew install oclint

更新 OCLint

$ brew update

$ brew upgrade oclint

安装好后在终端中输入 oclint 验证是否成功安装,如出现如下提示说明已安装成功:

$ oclint

oclint: Not enough positional command line arguments specified!

Must specify at least 1 positional arguments: See: oclint -help

使用本地 Review

1.首先在电脑本地安装好 OCLint 并拿到公司自定义的 Rules 文件

2.在 Xcode 上配置好工程

3.build工程,等待结果显示在Xcode上。

转载于:https://juejin.im/post/5cb98af2e51d456e541b4cd5

项目工程自动化 - OCLint相关推荐

  1. node工程默认url_node命令行工具之实现项目工程自动初始化的标准流程

    一.目的 传统的前端项目初始流程一般是这样: 可以看出,传统的初始化步骤,花费的时间并不少.而且,人工操作的情况下,总有改漏的情况出现.这个缺点有时很致命. 甚至有马大哈,没有更新项目仓库地址,导致提 ...

  2. 特征工程自动化如何为机器学习带来重大变化

    随着技术的快速发展,在数据科学领域中,包括库.工具和算法等总会不断地变化的.然而,一直都有这么一个趋势,那就是自动化水平不断地提高. 近些年来,在模型的自动化选择和超参数调整方面取得了一些进展,但是机 ...

  3. Java利用jenkins做项目的自动化部署

    本地的jekins密码 2722e8ea873b4cf08884c22dff732bab 这篇文章主要介绍了Java利用jenkins做项目的自动化部署,小编觉得挺不错的,现在分享给大家,也给大家做个 ...

  4. Jenkins实现AndroidStudio工程自动化打包(基于Gitee)2022新手入门最简单细致教程

    前置条件: Java环境变量 (推荐使用Java11) Android SDK环境变量 搜索框搜索编辑系统环境变量: 在系统变量中添加 : 变量名 JAVA_HOME 变量值 (路径根据自己实际的ja ...

  5. 使用git将本地项目工程推送到码云上

    1.在本地使用Intellj IDEA构建项目工程,整个项目工程结构如下图所示: 2.在工程根目录下面,使用git Bash打开git客户端: 3.使用git init初始化项目,此时会在工程根目录下 ...

  6. VS项目工程管理技巧

    本文首发于「视觉项目实战营」:传送门. 我们在管理较大型的项目工程时,有时需要为了便于每次生成的dll以及lib文件能管理起来更加方便,必须要使用点小技巧,此处分享一下我们在开发中使用的一种技巧,供大 ...

  7. css网页设计实例代码_大型电商平台设计实例:电商平台项目工程、数据库选型、代码库...

    电商平台微服务体系架构 经过一系列的微服务设计, 下面使用一张维导图完整表示这个电商平台的微服务架构设计模型,如图 3-6 示. 这是一个为简单的电商平台微服务架构设计模型,并且使用了粗粒度的微服务划 ...

  8. 分析vue-cli@2.9.3 搭建的webpack项目工程

    前言 已经有很多分析Vue-cli搭建工程的文章,为什么自己还要写一遍呢.学习就好比是座大山,人们沿着不同的路登山,分享着自己看到的风景.你不一定能看到别人看到的风景,体会到别人的心情.只有自己去登山 ...

  9. Jyputer 项目工程设置Github同步,本地代码上传Github实例演示

    首先在 Github 上创建一个仓库,它将用于存储.同步本地 Jyputer 里的项目. 获取到仓库的 SSH 地址. 下面的文件夹就是我想同步的项目工程. 在当前文件夹下依次使用如下命令: git ...

最新文章

  1. 按ctrl+shift 无法切换输入法了
  2. GPU端吊打RegNet、EfficientNet的强悍担当:GENet
  3. 2020中国人工智能年度评选报名即将截止!4大类别7大奖项开放申请
  4. 关于SpringBoot场景启动器
  5. 支持色温调节 新款Kindle Oasia上市 国行版售价2399元起
  6. java 获取线程某个_Java中如何唤醒“指定的“某个线程
  7. face 3000 C++ 代码理解
  8. 8个超炫酷的jQuery相册插件欣赏
  9. WebLogic 之安全配置
  10. [原创]java WEB学习笔记103:Spring学习---Spring Bean配置:基于注解的方式(基于注解配置bean,基于注解来装配bean的属性)...
  11. 【吐血整理,建议收藏】B站上有哪些值得反复观看的Java视频教程?
  12. java解析返回报文_Java解析json报文实例解析
  13. 《畅玩NAS》 使用树莓派打造一个NAS服务器
  14. opengGL实战——太阳系三维场景动画搭建
  15. java.util.concurrent.TimeoutException: Waited 3000 milliseconds (plus 2 milliseconds, 351400 nanosec
  16. 剑指offer-20200226
  17. 分享一个有意思的游戏
  18. 0926物体检测和数据集
  19. 微信小程序开发实战 ⑤(API及多人协调开发)
  20. 3dmaxobj导出选项_3dmax导出obj没有贴图该怎么办

热门文章

  1. bzoj4171: Rhl的游戏
  2. web-13. 数组和字符串
  3. Unity 2D 跑酷道路动起来
  4. 统计学习方法 --- 感知机模型原理及c++实现
  5. JavaScript事件---事件入门
  6. C#事件-趣谈事件与委托
  7. IDEA下SSM项目搭建的基本操作
  8. linux几个不常用但是很有用的命令
  9. 第二sprint总结
  10. Delphi 2010 新增功能之: IOUtils 单元(1): 初识 TDirectory.GetFiles