项目工程自动化 - OCLint
说明
为了保证代码质量,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相关推荐
- node工程默认url_node命令行工具之实现项目工程自动初始化的标准流程
一.目的 传统的前端项目初始流程一般是这样: 可以看出,传统的初始化步骤,花费的时间并不少.而且,人工操作的情况下,总有改漏的情况出现.这个缺点有时很致命. 甚至有马大哈,没有更新项目仓库地址,导致提 ...
- 特征工程自动化如何为机器学习带来重大变化
随着技术的快速发展,在数据科学领域中,包括库.工具和算法等总会不断地变化的.然而,一直都有这么一个趋势,那就是自动化水平不断地提高. 近些年来,在模型的自动化选择和超参数调整方面取得了一些进展,但是机 ...
- Java利用jenkins做项目的自动化部署
本地的jekins密码 2722e8ea873b4cf08884c22dff732bab 这篇文章主要介绍了Java利用jenkins做项目的自动化部署,小编觉得挺不错的,现在分享给大家,也给大家做个 ...
- Jenkins实现AndroidStudio工程自动化打包(基于Gitee)2022新手入门最简单细致教程
前置条件: Java环境变量 (推荐使用Java11) Android SDK环境变量 搜索框搜索编辑系统环境变量: 在系统变量中添加 : 变量名 JAVA_HOME 变量值 (路径根据自己实际的ja ...
- 使用git将本地项目工程推送到码云上
1.在本地使用Intellj IDEA构建项目工程,整个项目工程结构如下图所示: 2.在工程根目录下面,使用git Bash打开git客户端: 3.使用git init初始化项目,此时会在工程根目录下 ...
- VS项目工程管理技巧
本文首发于「视觉项目实战营」:传送门. 我们在管理较大型的项目工程时,有时需要为了便于每次生成的dll以及lib文件能管理起来更加方便,必须要使用点小技巧,此处分享一下我们在开发中使用的一种技巧,供大 ...
- css网页设计实例代码_大型电商平台设计实例:电商平台项目工程、数据库选型、代码库...
电商平台微服务体系架构 经过一系列的微服务设计, 下面使用一张维导图完整表示这个电商平台的微服务架构设计模型,如图 3-6 示. 这是一个为简单的电商平台微服务架构设计模型,并且使用了粗粒度的微服务划 ...
- 分析vue-cli@2.9.3 搭建的webpack项目工程
前言 已经有很多分析Vue-cli搭建工程的文章,为什么自己还要写一遍呢.学习就好比是座大山,人们沿着不同的路登山,分享着自己看到的风景.你不一定能看到别人看到的风景,体会到别人的心情.只有自己去登山 ...
- Jyputer 项目工程设置Github同步,本地代码上传Github实例演示
首先在 Github 上创建一个仓库,它将用于存储.同步本地 Jyputer 里的项目. 获取到仓库的 SSH 地址. 下面的文件夹就是我想同步的项目工程. 在当前文件夹下依次使用如下命令: git ...
最新文章
- 按ctrl+shift 无法切换输入法了
- GPU端吊打RegNet、EfficientNet的强悍担当:GENet
- 2020中国人工智能年度评选报名即将截止!4大类别7大奖项开放申请
- 关于SpringBoot场景启动器
- 支持色温调节 新款Kindle Oasia上市 国行版售价2399元起
- java 获取线程某个_Java中如何唤醒“指定的“某个线程
- face 3000 C++ 代码理解
- 8个超炫酷的jQuery相册插件欣赏
- WebLogic 之安全配置
- [原创]java WEB学习笔记103:Spring学习---Spring Bean配置:基于注解的方式(基于注解配置bean,基于注解来装配bean的属性)...
- 【吐血整理,建议收藏】B站上有哪些值得反复观看的Java视频教程?
- java解析返回报文_Java解析json报文实例解析
- 《畅玩NAS》 使用树莓派打造一个NAS服务器
- opengGL实战——太阳系三维场景动画搭建
- java.util.concurrent.TimeoutException: Waited 3000 milliseconds (plus 2 milliseconds, 351400 nanosec
- 剑指offer-20200226
- 分享一个有意思的游戏
- 0926物体检测和数据集
- 微信小程序开发实战 ⑤(API及多人协调开发)
- 3dmaxobj导出选项_3dmax导出obj没有贴图该怎么办