当前位置: 首页 > news >正文

sonar是一款静态代码质量分析工具

sonar介绍

  1. sonar是一款静态代码质量分析工具,支持Java、Python、PHP、JavaScript、CSS等25种以上的语言;
  2. 而且能够集成在IDE、Jenkins、Git等服务中,方便随时查看代码质量分析报告;
  3. sonar通过配置的代码分析规则,从可靠性、安全性、可维护性、覆盖率、重复率等方面分析项目,风险等级从A~E划- 分为5个等级;
  4. sonar设置了质量门,通过设置的质量门评定此次提交分析的项目代码是否达到了规定的要求;
  5. sonar可以集成pmd、findbugs、checkstyle等插件来扩展使用其他规则来检验代码质量;

使用sonar目的

对于团队而言,编写干净的代码对于维护健康的代码至关重要。 代码是否健康主要由以下四个指标来判断:

  1. 可读性:代码是否可读易读,对于一个团队来说,编码标准是否一致,编码风格是否一致;
  2. 功能性:代码正确得实现了业务逻辑;
  3. 可维护性:代码逻辑是有层次的,是容易修改的;
  4. 高效性:代码实现在时间和空间的使用上是高效的; 团队成员可能每个人对于代码的标准及风格不同,即使通过eslint等约束也不一定能从多个维度保证代码质量,只能检测基础语法等代码质量问题。 所以引入一个可以保证团队成员代码标准一致,质量稳定,风格稳定的工具也许是有必要的。

sonar功能

它是从 Architecture Design(架构设计) , Coding Rule(编码规则), Potential Bugs(潜在错误), Duplications(重复代码), Comments(注释), Unit Tests(单元测试), Complexity(复杂度) 7个维度检查代码质量的。 相比lint工具检测维度比较全面, 有可视化的友好展示代码缺陷的界面,结合CI/CD工具,可以不依赖手工检查,定时清查代码。

sonarlint可以结合IDEA作为开发约束, sonarQube可以结合自动化构建工具检查分析代码质量,并输出代码检测可视化界面。

sonar使用

sonarlint -- 开发进行时的idea分析工具

以vscode举例,在扩展里面安装sonarlint,可以在写代码的时候在编辑器内或控制台给出提示;

相关文章:

  • EN 14782建筑金属结构产品—CE认证
  • Leetcode 376. 摆动序列
  • Linux12 crontab 定时任务 at 一次性任务
  • 【树莓派】项目中找不到第三方库的问题
  • leetcode136,137,260:只出现一次的数字 | || |||
  • mysql安装8.0详细操作
  • 《算法竞赛进阶指南》,USACO2007 牛站
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • 【MindSpore易点通】如何将PyTorch源码转成MindSpore低阶APIP,并在Ascend芯片上实现单机单卡训练
  • vue前端 页面样式强制覆盖
  • WPF 控件专题 ScrollBar控件详解
  • DocuWare 庆祝文档管理云解决方案推出10 周年
  • Busybox实践2:分析busybox文件链接原理并编程模拟实现自己的busybox文件
  • 12030.LMK03000时钟合成器
  • el-table表格进行排序 清除排序和清除排序箭头的高亮图标
  • angular组件开发
  • CSS盒模型深入
  • EOS是什么
  • HTTP--网络协议分层,http历史(二)
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • js ES6 求数组的交集,并集,还有差集
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • Python实现BT种子转化为磁力链接【实战】
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 时间复杂度与空间复杂度分析
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 我感觉这是史上最牛的防sql注入方法类
  • 由插件封装引出的一丢丢思考
  • 自定义函数
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • ​马来语翻译中文去哪比较好?
  • #NOIP 2014# day.2 T2 寻找道路
  • %@ page import=%的用法
  • (007)XHTML文档之标题——h1~h6
  • (C++17) std算法之执行策略 execution
  • (接口封装)
  • (十六)一篇文章学会Java的常用API
  • (十三)Maven插件解析运行机制
  • (图)IntelliTrace Tools 跟踪云端程序
  • (转)scrum常见工具列表
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .net 4.0发布后不能正常显示图片问题
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append)
  • .NET命名规范和开发约定
  • /使用匿名内部类来复写Handler当中的handlerMessage()方法
  • @RequestMapping用法详解
  • [<MySQL优化总结>]
  • [2016.7 Day.4] T1 游戏 [正解:二分图 偏解:奇葩贪心+模拟?(不知如何称呼不过居然比std还快)]
  • [Android] Implementation vs API dependency
  • [GN] Vue3.2 快速上手 ---- 核心语法2
  • [hdu 3065] 病毒侵袭持续中 [AC自动机] [病毒特征码匹配]
  • [HNOI2018]排列
  • [I2C]I2C通信协议详解(一) --- 什么是I2C