苏州华克斯-广西sonarqube教程

SonarSource 城市之旅2016丹切2016年5月26日在10:14pm今天我参加了伦敦 SonarSource 城市之旅。SonarSource 制作两个 '连续代码质量' 工具: SonarQube;和 SonarLint。

雷迪森 sas 波特曼酒店举办的低调活动约50与会者。我们听到了一些适当的技术介绍, 从奥利维尔 Gaudin, 弗雷迪槌, 和 SonarSource 的尼古拉斯秘鲁和邓肯波克林顿从微软。

技术债wu这一天开了一个问题。谁负责代码质量?还是 QA?

是不加掩饰的: 开发商。

在某些情况下, 引入技术债wu是可以的, 但团队需要了解他们所创建的问题的权衡和存在的程度。hao的方法是通过客观和一致的测量。

'修复泄漏'知道你有问题是一回事。修理它是另一回事。

这一天的首要主题是 '修复泄漏': 当你有一个漏水的管道, 你应该先修复它还是先把它擦干净?如果你不首先解决问题的根源, 那么清理就不是很有用。

(这对我来说特别的伤感, 因为我在家里的水管漏水, 所以我迟到了。

在实践中, 这意味着设置一个质量的酒吧 (或 '门' 的 SonarSource 行话) 新的变化, 但大多忽略现有的问题, 直到你得到控制的事情。

这似乎是一个不错的方法, 有两个原因:

它减少了在遗留的基本代码上开始的摩擦力, 因为你可以假装你是从一个干净的石板开始;这是沙子上的一条线, 它为球队的前进设定了期望。奥利维尔不厌其烦地强调, 有一个自动化的工具, 实施这种行为不会减轻你的教育团队的jia做法。每一个指标都可以博弈, 所以你需要让人们在船上的概念, 真正充分利用它。

SonarQubeSonarQube 度量您的代码库的可维护性、可靠性和安全性, 并跟踪随着时间的推移而改进。它还指出了代码中特定的代码气味, 应该是固定的。

SonarQube 是由超过75k 的公司使用的, 其中一些有数以千计的开发人员和数百万行代码。它成为事实上的代码质量工具, 因为它的介绍8年前, 超过其 Java 根现在支持超过20种语言。

弗雷迪给了我们一个简要的特点, 从近的版本, 包括 v5.6 (将在几个星期内发布)。

值得注意的是, 现代化的体系结构不再需要分析器和数据库之间的直接连接。这一切都通过了一个网络服务, 这是更明智的。

质量评级也正在完善。现有的 SQALE 度量对衡量项目的可维护性很有好处, 但它没有考虑到问题的严重性。它也没有真正与泄漏概念的网格。

在 SonarQube 5.6 中, SQALE 将重新命名为可维护性, 并且将为性、安全性和可靠性提供新的评级。将所有这些信息一起放在所有项目中将是一个新的治理仪表板 (一个商业插件)。

路线在工作中, 我们使用 gitflow。我们不想合并一个功能分支, 如果它会降低项目的质量, 因此我们特别希望了解分支支持在 SonarQube 中将如何改进。

已经有拉请求集成与 GitHub 和藏匿, 让你知道什么时候合并会引入债wu。

但是, 目前在 SonarQube 内部, 单独的分支被视为单独的项目。配置是重复的, 而且更糟糕的是, 每个功能分支都包含了主分支中的所有问题和债wu。

这是幸运的 SonarSource 的一个高优先级, 虽然它不会被宣布时, 它将船舶。目标是将项目的所有分支作为对主分支的比较。

群集是路线图的一个令人惊讶的补充, 因为这看起来不像是一种需要支持大量负载的产品。然而, 一些真正巨大的设施确实存在于野外, 它可以利用多个 web 服务器与同一数据库进行对话。

当弗雷迪宣布 SonarQube 为服务时, 群集的隐藏议程变得清晰明了。这将是一个免费的开放源码项目服务, 可以分析任何地方托管的项目 (虽然它需要一个 GitHub 帐户进行身份验证)。它将支持所有的内置 SonarSource 插件, 但没有第三方的。这对开源社区来说是一个好消息!

后, 我有机会问墙和集成系统, 如 JIRA。一般的意见是, 这些应该处理外部 SonarQube 本身, 并集成使用的全功能的 rest API 暴露的 SonarQube。

SonarLintSonarLint 是您的 IDE (Eclipse、IntelliJ 或 Visual Studio) 的插件, 它在您键入时标记代码质量问题。这个想法是为了防止泄漏之前, 他们共享与其他的研发







SonarLint 与开发人员集成的 z 系统

从 v14.0.0.5 开始, IBM z 系统开发人员 (IDz) 支持 SonarLint v3.2.0, 并在其主机 COBOL 和 PLI 代码中针对 bug 和质量问题向开发人员提供动态反馈。一旦将 SonarLint Eclipse 扩展并安装到您的 IDz 客户端中, 您就可以使用 SonarQube 服务器视图连接到 SonarQube 服务器, 然后使用子项目的上下文菜单将一个模块的子项目绑定到 SonarQube 服务器和项目。现在, 当使用 cobol 或 PLI 编辑器打开绑定子项目中的 cobol 或 PLI 文件时, 将在文件中标记任何违反在 SonarQube project 中设置的规则之一的代码, 并通过悬停帮助来显示解释。文件中发现的所有问题的列表都可在 SonarLint 的 '动态' 视图中找到。

从绑定的 SonarLint 子项目中打开 COBOL 或 PLI 文件会触发一项分析提示: 如果编辑器中没有出现问题注释, SonarLint 可能无法成功解析该文件。您可以在 Eclipse 控制台视图下检查 SonarLint 控制台, 以查找任何问题, 如缺少包含文件 (抄写)。如往常一样, 使用子项目的关联属性组中的 SYSLIB 字段来解析包含文件引用。您可以选择一个或多个文件, 甚至是子项目本身, 然后单击 SonarLint 分析, 而不是打开单个文件。生成的问题将在 'SonarLint 报告' 视图中报告, 您可以在其中双击要带到编辑器中相关代码行的问题。或者, 您可以右键单击某个问题, 然后选择要带到 SonarLint 规则说明视图的规则说明, 以及具有兼容和不兼容代码示例的规则的详细说明。

可以同时分析多个文件, 并在 SonarLint 报告视图中检查结果问题提示: 当使用分析函数时, 可能找不到近在编辑器中打开的文件的抄写, 因为 SonarLint 使用的是只在其中一个 IDz 编辑程序中打开文件或其依赖项时才会填充的本地文件缓存。


如何使用 SonarQube 改进工作流


twitter作为开发人员,中国sonarqube教程, 我不得不多次修复生产环境中的问题。有时, 我在代码之前没有看到任何错误, 而在其他时间, 我花了很多时间试图理解别人写的代码-更糟的是, 我把代码放到生产中, 在几个月后发现了安全漏洞。

很可能你也面对过这种情况。因此, 有一个工具, 可以帮助您在早期阶段检测到它们, 岂不是很棒吗?SonarQube 使这成为可能。在这篇文章中, 您将了解它如何帮助您清理代码并防止将来出现问题。

SonarQube 入门SonarQube 是一个开放源码的质量管理平台, 致力于不断分析和测量技术质量, 从早的计划阶段到生产。通过将静态和动态分析工具结合在一起, SonarQube 连续监视七轴上的代码, 如重复代码、编码标准、单元测试、复杂代码、潜在 bug、注释和设计以及体系结构。

SonarQube 是一种用于主要编程语言的代码分析器, 如 c/c++、JavaScript、Java、c#、PHP 或 Python, 等等。通常, 应用程序同时使用多种编程语言, 例如: Java、JavaScript 和 HTML 的组合。SonarQube 自动检测这些语言并调用相应的分析器。

SonarQube 现在是 Bitnami 目录的一部分。您可以或推出它与我们准备使用的云图像只需几次点击和开始使用它在您的所有项目。利用 Bitnami 图像的特点: 安全、xin、优化、一致等。

玩 SonarQube在这个 GitHub 的项目中,中国sonarqube教程, 您将找到一个用 JavaScript 编写的代码示例。目标: 向您展示如何将 SonarQube 合并到您的开发工作流中。存储库包含两个主文件夹 (源和测试), 这样, 您就可以知道测试所涵盖的代码的百分比。

这个项目还包括一个声纳工程. 属性文件, 其中有一些配置参数需要配置 SonarQube, 如用户名, 密码,中国sonarqube教程, 语言等。

运行

$ 声纳-扫描仪在项目文件夹内, 这样就启动了第yi个扫描仪, 您可以在 web 界面中检查结果。

第yi次扫描

正如您在上面的截图中所看到的, 当前的代码有零 bug、零漏洞和六代码的气味。

我将修改源代码以引入一个 bug 和一个漏洞。这一次是有意的, 但是在日常的工作中, 这样的问题会在你没有意识到的情况下出现。

添加错误

再次运行扫描仪使用

$ 声纳-扫描仪如预期的那样, 将出现新的 bug 和漏洞。再次检查分析以查看所做的更改:

比较扫描

屏幕右侧将出现一个新节 (以黄色高亮显示)。SonarQube 处理两种状态: 当前状态 (以白色表示) 和xin更改。正如您在截图中所看到的, 上次扫描中引入的更改增加了一个 bug 和一个漏洞。SonarQube 评估每个部分的质量, 评分基于不同的参数, 一个是jia状态。在这种情况下, 引入 bug 导致 'bug' 部分从 a 传递到 C, '漏洞' 部分从 a 到 B。

您可以设置 '泄漏期间' 来确定要进行比较的方式: 按时间或在每个扫描仪执行之间。

让我们详细地看看 '覆盖率' 一节: 38.1% 是测试覆盖率 (正如您在 GitHub 存储库中看到的那样, 我对某些文件进行了测试, 但对于所有的文档都没有)。在黄色部分, 您可以看到新添加的行的覆盖率。以前, 为了添加错误, 我引入了一些新行, 但我没有为这些新行创建任何测试, 因此新的测试覆盖率为0%。此外, 点击覆盖范围, 我可以看到更多的信息的覆盖面, 例如: 覆盖的文件, 覆盖线的数量, 等等。

错误信息

通过这种快速而简单的分析 (您只需执行一个命令), 您将能够防止出现在生产环境中的错误, 使代码保持安全并遵守jia做法和质量标准。在下面的迭代中, 我将致力于实现零 bug、漏洞和代码气味的目标。我还可以在测试中得到100% 的代码。一旦我的代码处于这种状态, 就很容易看出所做的更改是否引入了某种错误或坏的做法。

如何挤压 SonarQube正如您在上一节中看到的, 保持代码的良好状态非常简单。但是, 还有更多的发现。SonarQube 有很多很酷的集成。

分析方法可以在下列分析方法之间进行选择:

用于 MSBuild 的 SonarQube 扫描仪:. Net 项目的启动分析SonarQube 扫描器: maven 的启动分析和xiao配置SonarQube 扫描器 Gradle: 发射 Gradle 分析蚂蚁 SonarQube 扫描器: 蚂蚁发射分析詹金斯 SonarQube 扫描仪: 詹金斯发射分析SonarQube 扫描仪: 当其他分析器都不合适时, 从命令行启动分析插件另外,广西sonarqube教程, SonarQube 有一个更新中心与各种各样的插件组织入不同的类别, 一些有用的插件是:

代码分析器

SonarCFamily c/c++SonarPHPSonarJSSonarWebSonarJavacss集成

GitHub 插件: 分析拉请求, 并指出问题作为评论。谷歌分析: 将 google 分析跟踪脚本添加到 SonarQube 的 web 应用程序中。单片机引擎

善变的: 增加对善变的支持。git: 添加对 git 的支持。SVN: 添加对 Subversion 的支持。身份验证和授权

GitHub 身份验证: 通过 GitHub 启用用户身份验证和单一登录。GitLab 身份验证: 通过 GitLab 启用用户身份验证和单一登录。谷歌认证: 启用用户身份验证授权到谷歌。读过这篇文章后, 你可能想尝试 SonarQube, 看看它是如何融入你的日常工作的。您可以直接从 Bitnami 目录或启动它。

快乐 (和安全) 编码!



苏州华克斯-广西sonarqube教程由苏州华克斯信息科技有限公司提供。苏州华克斯信息科技有限公司是从事“Loadrunner,Fortify,源代码审计,源代码扫描”的企业,公司秉承“诚信经营,用心服务”的理念,为您提供更好的产品和服务。欢迎来电咨询!联系人:华克斯。

苏州华克斯信息科技有限公司
姓名: 华克斯 先生
手机: 13862561363
业务 QQ: 3521016152
公司地址: 苏州工业园区新平街388号
电话: 0512-62382981
传真: 0512-62382981