前言
现在很少有公司做 code review(对写好的程序做代码级检查),于是很多人在进度的压力下潦草应付,只要测试通过就算搞定。表面上看,开发速度很快,进度有保障;但实际上,这样的程序连开发者自己都很难读懂,一旦有bug,很难调试,将来维护升级都非常困难。
OK,如果你意识到没有进行 code review 有很大风险,而且你的项目已经开发了很久了,如果现在一行一行去看代码进行审核的话,可想而知是非常痛苦的一件事情,给大家推荐一款非常实用的软件SonarQube,他能帮你找出代码潜在BUG,安全漏洞,不良做法,不良规范,等等。
从现在开始,从我做起,每天进行代码审查。
SonarQube简介
sonar 是一个用于代码质量管理的开源平台,用于管理源代码的质量,对于领导来说用来审查代码质量再好不过了,当然 作为开发者使用 实时审查代码 防止代码不过关 防止被领导上级说你 再好不过了!
sonar 通过插件形式,可以支持包括:java,C#,C/C++,P/SQL,Cobol,JavaScrip,Groovy等等二十几种编程语言的代码质量管理与检测
sonar界面如下:
它可以从以下七个维度检测代码质量,而作为开发人员至少需要处理前5种代码质量问题
不遵循代码标准sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规
范代码编写潜在的缺陷sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具检测出潜在的缺陷
糟糕的复杂度分布文件、类、方法等,如果复杂度过高将难以改变,这会使得开发人员难以理解它们且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试
重复显然程序中包含大量复制粘贴的代码是质量低下的,sonar可以展示源码中重复严重的地方
注释不足或者过多没有注释将使代码可读性变差,特别是当不可避免地出现人员变动时,程序的可读性将大幅下降而过多的注释又会使得开发人员将精力过多地花费在阅读注释上,亦违背初衷
缺乏单元测试sonar可以很方便地统计并展示单元测试覆盖率
糟糕的设计
安装准备
mysql5.7(64位) 下载地址如下:
https://dev.mysql.com/downloads/installer/
maven3 自行下载 并配置环境变量
jdk1.8(64位) 自行下载并配置环境变量
SonarQube7.0 下载地址如下
https://www.sonarqube.org/downloads/
注:sonar对版本要求很大 尤其是jdk和mysql 一定要是使用较新的版本
sonar搭建
1、配置mysql
sonar需要数据库的支持所以要安装数据库并配置
mysql的安装步骤我就不说了 这里强调一下 编码使用 utf-8
1.1、创建数据库名为 sonar
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
1.2、创建一个sonar用户并把这个用户的密码设置为soanr