SonarLint –为 c#、VB.NET、Java、JavaScript、PHP 和 Python 提供一个免费的静态分析工具5月3日, 2017Code 质量, 评论, Toolingsonar 皮棉, 视觉工作室这是一个. NET 的重点帖子。
很高兴看到人们正在构建的东西, 现在 c# 编译器是开源的。我们实际上是在工具中游泳, 这不是一件坏事, 但我需要考虑我的开发管道中有多少工具。我目前在日常工作中使用 ReSharper 和前缀。NDepend 和 PVS-工作室每周一次的基础上, 但只在个人和开源项目。我可以在混合中添加另一个吗?确保!这不是侵入性的, 不会与 ReSharper 或 VS 代码提示冲突。在报告代码相关问题的方式上也有一些轻微的幽默。
通过 IDE 的用法
使用此工具的选项尚未更改, 但它支持三shou欢迎的 IDE 的:
IntelliJ视觉工作室蚀全mian的语言支持来自 IntelliJ 和 Eclipse 的 IDE。如果您使用的是 Visual Studio (VS), 那么您将得到一个很好的 c# 和 VB.NET 规则集。
您也可以在命令行中使用它, 这对于连续生成管线来说是的。需要通过 MSBuild 进行分析, 因为它们的命令行工具当前未按广告方式工作。运行分析是很容易的, 而且我可以在构建的末尾处理一个 XML 文件, 以生成报告或存储某处以便随着时间的推移进行分析。需要注意的一点是, XML 报告将在每个项目目录中生成一次。
msbuild n/p: RunCodeAnalysis = true/p: CodeAnalysisLogFile = MyXmlReport. xml1msbuild n/p: RunCodeAnalysis = true/p: CodeAnalysisLogFile = MyXmlReport. xml与 Visual Studio 中的规则交互
有一个广泛的214规则 c# 和62的 VB.NET, 虽然它们不是所有的默认启用。可以对规则进行定制, 以便为一个项目运行一个规则集, 并为另一个项目设置另一个规则集, 我将在短期内解释。
在真正的 VS 时尚代码, 违反了其中的一个规则得到一个弯曲线下面的代码行, 然后可以处理通过按 ctrl+。还有漂亮的功能, 这是新的 VS2017, 它使工作与分析仪更愉快。它不仅允许我修复当前正在查看的问题, 而且还可以解决相同的问题文档、项目或解决方案。很好。
正如您在下面所看到的, 还有用于禁止规则的选项。您可以内联或在它为您创建的全局抑制文件中执行此项。
# 杂注指令还有一个说明作为注释, 它可能对其他开发人员有帮助。通常我需要查找杂注代码, 所以这是一个不错的 VS 功能, 提高了整个开发人员的经验。
我真正喜欢的另一个特性是, 这些警告给出了一个简短的段落, 解释了规则冲突背后的原因。这个特别的警告是真正引起共鸣的东西, 因为我不喜欢注释代码。应删除死代码。如果有机会, 你认为你会需要它后, 那么没有问题, 这就是源代码管理的是!
如果您需要完整的规则列表, 我发现联机帮助非常有用, 因为您可以通过各种带有标记的规则类型进行筛选。
定制规则
与 VS works 的代码分析方式保持一致, 您可以通过右键单击分析器节点 inVS 并选择 '打开活动规则集' 来访问规则列表。
从那里, 规则集只是另一个类别节点。如果您想了解有关定制规则集的更多信息, 我有一个关于 Visual Studio 代码分析的博客文章, 它将在更深入地进行。
一个知道的陷阱
我无法得到规则运行在构建和不断得到这个错误。
警告 CA0064: 由于无法加载指ding的规则集或不包含任何托管代码分析规则, 因此未执行任何分析。
我确实在 SonarLint 谷歌集团发布了一个问题,中国sonarqube 规则, 但据我所知, 它是孤立于我的机器。如果发生这种情况, 您需要添加分析器程序集 SonarAnalyzer.CSharp.dll, 如下所示。
如果希望分析在生成时运行, 请通过 '项目属性' 并单击 '在生成时启用代码分析', 在每个项目基础上启用分析。
代码质量是一个不断增长的市场, 它是分析师对其大规模采用和大量投资回报的雷达。
认知的复杂性提供了一个新的衡量如何硬编码是理解-一个开发商的直觉正确的。白皮书本文描述了认知的复杂性, 提出了一种新的度量方法,中国sonarqube 规则, 以地测量法的相对理解。在这样做的时候, 它解决了这个领域中圈复杂度的缺点。圈复杂度使用数学模型来评估方法, 对测试所需的工作量进行精que测量, 但不准确地测量需要了解它们的工作量。认知的复杂性打破了使用数学模型评估软件可维护性的实践。它从由圈复杂度所设置的先例开始, 但使用人工判断来评估结构应如何计算, 并决定应将哪些内容添加到整个模型中。结果是, 它产生了方法复杂性评分, 使程序员对可维护性的相对评估比以前的模型更公平。
SonarQube 平台
SonarQube 是一个连续的质量分析平台, 它作为 web 服务器运行, 跟踪指标
分析代码和代码结构。SonarQube 是一个开源平台, 并被开发
牢记一个主要目标: '使代码质量管理可供每个人使用
xiao的努力。SonarQube 生态系统是由 SonarQube 平台和一套
plug-ins 在公共基础设施上担任东道主。
SonarQube 实质上提供了代码分析器、仪表板、报告工具、问题跟踪和
TimeMachine 作为功能, 但它也有一个插件机制, 使社区能够
扩展功能 (当前有超过 60 plug-ins 可用)。
SonarQube 可以成为源代码质量的协调中心, 因为它不需要
限于开发人员或技术娴熟的, 但可以提供有用的信息广泛
项目经理, 技术领导, IT, 甚至在一个组织内的业务领导
可自定义的仪表板。SonarQube 的建筑和 plug-ins (如 SQALE) 和
管理和跟踪技术债务的机会可以为管理人员提供关键信息和
业务在整个软件生命周期中反复地主动地解决缺陷。他们提供
与质量和成本有关的项目的概述, 并帮助解决风险。
SonarQube 提供的不仅仅是关于软件健康的指标。由于开发人员
提供了一个粒度代码级别的信息, SonarQube 使这些构建软件
查找并深化到存在代码问题的位置。SonarSource 的产品组合使
对软件变更领域的反馈和影响分析, 并提供反馈, 说明如何
改进开发方法。产品还提供与构建管理的协调
(与詹金斯的支持), 以帮助实现持续集成的部署。
SonarQube 集成的工具, 如 FindBugs, Checkstyle, PMD, FXCop的, C的p的p的Check 出 of-the-box,
或提供 plug-ins。然后, 它可以充当代码分析工具的中心中心,
从而为多个项目提供历史洞察力和趋势分析。一体化的地方
分析和报告是一个加号, 即使组织选择不对发送的报告采取行动。
可以访问有关代码复杂性的历史数据和发现的问题工具的数量
该代码可以提供是否有效地构建软件的可视性, 或者如果方法
需要改变。
在语言方面, SonarQube 支持分析 Java 的, 但也有超过20
语言, 如 COBOL、c++、PL/SQL 和 c# 通过 plug-ins (开源或商业)
因为报告引擎是语言不可知的。
SonarQube 使组织能够在七轴上覆盖质量并报告:
?重复代码
?编码标准
按单元测试?覆盖范围
?复杂代码
?潜在 bug
?评论
?设计与体系结构
xin版本还改进了软件质量属性的评估, 并
一个更好的工作范围的技术债务和孤立的问题, 创造技术债务,
根据参考。SonarQube 是可配置的, 可以给代码一个 '等级' (从 a 到
E), 并可以确定它通常在努力和所需的工作类型方面的成本
改进软件。例如,中国sonarqube 规则, 由于缺少单元测试, 代码可能有较低的评级, 或者
由于大量的重复代码或安全违规。SonarQube 将显示
违规行为是并将估计解决这些问题的费用。用户可以更改工作量估计和
他们会被计算在内,华东sonarqube 规则, 这是有帮助的。此版本还可以使比较团队
根据需要对项目和组织的各个部分进行评估。
虽然 SonarQube 可以在战shu上用于一次性审计, 但它可以更具战略性地利用
作为一个共享的, 共同的信息来源的质量分析正如刚才所描述的, 以帮助
支持代码质量的持续改进策略。
各种各样的组织使用 SonarQube 提供的产品组合的范围 (从
本公司的免费 '开源' 选项给企业, 站点范围内的 '终ji' 许可版本)。
然而, 目标在是大和非常大公司与企业, 分布
开发团队和合作伙伴协调。一人团队可以使用开源版本
显然, 这可以作为一个坡道上的收养。但一旦一个组织越过
在开发项目和用户的数量方面, 需要移动到
商业企业解决方案。IDC 发表了三企业客户参考
SonarQube, 主要是开始开放源码收养, 获得立足点, 然后演变
到部署1000以上的用户。
华克斯-华东sonarqube 规则由苏州华克斯信息科技有限公司提供。苏州华克斯信息科技有限公司在行业软件这一领域倾注了诸多的热忱和热情,华克斯一直以客户为中心、为客户创造价值的理念、以品质、服务来赢得市场,衷心希望能与社会各界合作,共创成功,共创辉煌。相关业务欢迎垂询,联系人:华克斯。