zoukankan      html  css  js  c++  java
  • 静态代码扫描 SonarQube

    SonarQube简介

    SonarQube是一个代码质量管理开放平台,它集成了数千种自动的静态代码分析规则

    以python为例,典型的静态代码分析规则:

    l  "break" and "continue" should not be used outside a loop

    l  "yield" and "return" should not be used outside functions

    l  Methods and field names should not differ only by capitalization

     

    旨在提高开发人员的代码质量和安全性,使得开发人员编写更加干净,更加安全的代码。主要提供了三个比较大的功能:

    • 代码可靠性支持:提前捕获和提示代码中的错误,从而避免未定义的行为影响到终端用户。
    • 应用安全支持:修复可能危害到应用程序的漏洞,并通过安全热点学习AppSec(简单理解就是会学习和识别新的漏洞)。
    • 技术债务支持:确保管理的代码库干净并且可维护,以便提高开发人员的开发效率。

    目前SonarQube支持27种编程语言,基本上覆盖了当前主流的编程语言编写的项目:

    上面谈到的功能可能比较泛,实际上,研发团队可以基于SonarQube做下面的事情:

    • CI/CD流程加入一个SonarQube扫描的环节。
    • 实施代码质量阈值,只有通过了这个质量阈值检测才能进入下一个流程。
    • 代码质量低于阈值的项目要及时调整对应的代码。

    质量阈值可以进行自定义,SonarQube中针对每个项目会有详细的面板信息,里面会给出项目当前的健康状态,不同级别漏洞的分类和明细,漏洞对应提交者等多维度的统计信息,方便进行问题的追踪和修复。举个例子,笔者在上一家公司项目上线需要跑一个流水线,而SonarQube设定了不同等级的阈值,对于老项目,会使用最低等级的阈值:阻断性的错误数量要求为0,对于一些新的项目,则严格要求质量如严重性的错误要求为0等,只要无法通过质量阈值检查,那么项目是无法上线的。

  • 相关阅读:
    luogu P3327 [SDOI2015]约数个数和
    生成函数
    luogu P4318 完全平方数
    SP5971 LCMSUM
    luogu P2522 [HAOI2011]Problem b
    UOJ #82. 【UR #7】水题生成器
    CF1147F Zigzag Game
    CF1106F Lunar New Year and a Recursive Sequence
    1114: 逆序
    1113: 递归调用的次数统计(函数专题)
  • 原文地址:https://www.cnblogs.com/howmanyk/p/13470300.html
Copyright © 2011-2022 走看看