前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于 SonarQube7.4 实现代码规范自动化检测解决方案

基于 SonarQube7.4 实现代码规范自动化检测解决方案

作者头像
夹胡碰
发布2020-11-11 17:35:19
1.4K0
发布2020-11-11 17:35:19
举报
文章被收录于专栏:程序猿~程序猿~

解决方案说明

  • 概述

代码规范检测,是对代码的可靠性、安全性、可维护性、代码重复率、代码量大小进行检测和评判,生成质量报告,反馈给开发人员进行代码优化。

  • 检测闭环

该解决方案使用SonarQube作为核心检测工具,通过1开发人员push/merge代码=》2执行SonarQube代码规范检测=》3企业微信通知=》4反馈开发人员代码检测结果,形成闭环。

  • 拒绝策略

整个解决方案刚刚实施,使用软校验的形式进行代码检测,对不规范的代码不强制限制提交,起督促监督作用。后期可针对重点项合理划分检测阈值,逐步提升至硬校验。

检测流程

后端开发人员push/merge代码到dev分支时,触发gitlab-ci,启动gitlab-runner执行gitlab-ci.yml脚本,执行sonar-scanner代码规范扫描命令,扫描结果推送至SonarQube(可在Web-UI界面查看检测结果详情),检测结束之后触发SonarQube-WebHooks发送统计结果到PushMessageServer服务,解析转换Json结果集并调用企业微信机器人通知Rest Api,对检测结果进行消息推送至企业微信。开发人员可以通过消息链接看到SonarQube-Web-UI的详细检测结果。

image.png

检测功能

1. 检测项说明

合计388条规则

image.png

2. 检测阈值配置

阈值可配置,暂时针对代码可靠性(A)-bugs,代码安全性(A)-漏洞,代码可维护性(异样),代码重复率(10%)。进行代码检测是否通过的评判项。

3. 支持多分支

暂时只针对dev分支进行检测

4. 提醒说明

不强制拒绝提交代码,软校验功能,检测不通过@人进行修改,通过只提示检测通过。但是,提交通过也不表示没有bug,有可能是严重程度没有达到阈值,需要长期关注。

5. 后期优化

针对检测项,及评判阈值,进行合理的修改。

检测通知样例

  • 通过(绿色)

image.png

  • 未通过(黄色)

image.png

SonarQube检测面板样例

http://192.168.102.27:9000

image.png

检测服务样例

image.png

监测项样例

1. 代码可靠性 - bugs

image.png


image.png

2. 代码安全性 - 漏洞

image.png


image.png

3. 代码可维护性 - 异样/异味

image.png


image.png


image.png

4. 代码重复率

image.png

5. 代码量大小

image.png


image.png

相关参考

SonarQube工具核心参考
  1. Windows环境从零搭建SonarQube 7.4(稳定版)
  2. Idea代码检查插件 - SonarLint 安装使用
安装部署参考
  1. Linux Ceonto7安装Docker-CE并使用
  2. Docker安装Mysql 5.7并使用
  3. Docker安装gitlab服务器
  4. Gitlab Runner安装注册
  5. sonarQube + gitlab-runner 实现代码规范自动化检测
  6. 企业微信群创建 - 群机器人 - 实现通知推送
阿里代码检测工具(Alibaba Java Coding Guidelines)使用参考
  1. Alibaba Java Coding Guidelines 代码检查插件Idea使用
  2. Alibaba Java Coding Guidelines 检测级别 - Blocker级别
  3. Alibaba Java Coding Guidelines 检测级别 - Critical级别
  4. Alibaba Java Coding Guidelines 检测级别 - Major级别
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 解决方案说明
  • 检测流程
  • 检测功能
  • 检测通知样例
  • SonarQube检测面板样例
  • 检测服务样例
    • 监测项样例
      • 相关参考
      相关产品与服务
      容器镜像服务
      容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档