发布在即!企业 AIGC 应用程度测评,3 步定制专属评估报告。抢首批测评权益>>> 了解详情
写点什么

C#静态分析工具 Roslynator.Analyzers 将方法数量提高了 500 多

  • 2020-02-17
  • 本文字数:1217 字

    阅读完需:约 4 分钟

C#静态分析工具Roslynator.Analyzers将方法数量提高了500多

Roslynator.Analyzers 软件包的新版本 2.3.1 将分析、重构和修复方法的数量提升到了 500 多个。Roslynator 使用开源的 Roslyn .NET 编译器平台对 C#代码进行静态分析。这个分析驱动 IDE 显示可以帮助你改进代码的提示和操作信息。


Roslynator 可以安装到 Visual Studio 2017、Visual Studio 2019 和 Visual Studio Code 中。VSCode 版本可以在 Linux、Mac 和 Windows 上运行。这样,它就可以利用最新版本的 Roslyn,即 3.0 版本。Roslynator.Analyzers 2.3.1 将是支持 Visual Studio 2017 的最后一个版本。


可以在一个简单的“hello world”控制台应用程序中看下这个功能。


using System;using System.Collections.Generic; namespace HelloWorldApp{    class Program    {        static void Main(string[] args)        {              var a = new List<string>() { "Hello","World"};            var b = a.ToArray();            for (var f = 1;f < b.Length;f++) {                Console.WriteLine(value: b[f].ToString());            }                    }    }}
复制代码


Roslynator 在可以重构的项旁边添加了一个灯泡动作项菜单,并在屏幕底部的面板中列出了问题。曲线突出了问题面板中提到的问题。该系统在你输入时工作。例如,当你输入 for 语句时,如果结束条件无法解析为布尔值,Roslynator 分析器就会突出显示。




使用配置文件或 Visual Studio IDE,可以配置你希望包含在项目中的检查和修复。配置文件可以共享,使整个团队能够使用相同的设置。


分析器是可扩展的,因此,你可以编写自己的分析器来处理组织中常见的问题,比如弃用的 API 或源代码中包含的安全凭据。该工具还支持命令行变体,以便可以将其集成到构建管道中。


与其他静态分析工具一样,Roslynator 不需要执行软件来确定程序的行为和特性。它通过检查源代码来实现这一点。这些工具在 20 世纪 70 年代就出现了,当时,Stephen C. Johnson在他的 C 语言课程中提出了 Lint 的想法。它们甚至可以用于非编译语言,如 Python 和 JavaScript。


SonarAnalyzer、XUnit Analyzers、Code Cracker、FxCop 和 StyleCop 等工具之所以能够相对轻松地进行这种分析,是因为 Roslyn 编译器的独特创建方式。如下所示,编译器和工具不是以黑盒的方式提供,而是作为一系列 API 和服务提供的。这些工具可以使用编译器 API 来识别问题代码以及生成替换选项。



图片来源:Roslyn Overview on github


然而,并不是所有流行的代码分析工具都使用 Roslyn。例如,Resharper工具已经存在了更长时间,它使用的是 JetBrains 专有的技术。Resharper 比 Roslyn 早了几年,他们的引擎提供的特性比 Roslyn API 多,比如解决方案范围的错误分析,“大局(big picture)”代码检查,以及更广泛的语言支持,比如 Razor。JetBrains 已经在他们的其他产品中使用了 Roslyn 技术,比如Rider IDE


原文链接:


C# Static Analysis Tool Roslynator.Analyzers Now Has over 500 Ways to Improve Code


2020-02-17 09:0011312

评论 1 条评论

发布
用户头像
C#太过先进老板们看不懂,老板们只认识java
2020-02-17 09:42
回复
没有更多了
发现更多内容

前端二面高频手写面试题

helloworld1024fd

JavaScript

【敏捷转型,效能提升】敏捷转型实践系列分享

京东科技开发者

敏捷 敏捷团队 效能度量 效能提升 #DevOps

XTransfer技术专家亮相Flink Forward Asia 2022

XTransfer技术

重写Nacos服务发现:多个服务器如何跨命名空间,访问公共服务?

LigaAI

Java 测试 nacos 测试环境 12 月 PK 榜

手把手教你成为荣耀开发者:应用管理指南

荣耀开发者服务平台

前端 快应用 荣耀 honor 应用集成

星环数据云平台 TDC 3.1 发布,新增滚动重启、存储回收站等八大核心功能

星环科技

民航二所马勇:数据安全防护体系的探索与思考

极盾科技

数据安全

五大亮点来袭!神州云科冬季发布会报名通道开启,千份精美礼品等你来拿!

云科通明湖

搜电充电:创新“服务卡片”,让即时充电更便捷

HarmonyOS开发者

HarmonyOS

聊聊电商系统架构, 常见的9个大坑

Java全栈架构师

程序员 后端 架构师 电商 系统秒杀

TiDB Operator数据导入

TiDB 社区干货传送门

迁移 集群管理 管理与运维 备份 & 恢复

TiCDC 源码解读(1)-- TiCDC 的架构概览

TiDB 社区干货传送门

破记录!国产数据库KunDB 单节点TPC-C事务性能超180万tpmC

星环科技

将渲染计算搬到云端,开启低成本、强交互、沉浸式体验

阿里云视频云

云计算 阿里云 云渲染 串流

Lightning checksum failed 报错实践案例

TiDB 社区干货传送门

【12.9-12.16】写作社区优秀技术博文一览

InfoQ写作社区官方

热门活动

别再秃头背锅了!这个小技巧统计第三方接口耗时很安逸

Java永远的神

Java 程序员 后端 架构师 springboot

从TiDB搭建到监控闭环

TiDB 社区干货传送门

监控 管理与运维

百TB级TiDB集群在线更换NVME磁盘优化实践

TiDB 社区干货传送门

性能调优 管理与运维 应用适配 6.x 实践 大数据场景实践

深度剖析 | 【JVM深层系列】[HotSpotVM研究系列] JVM调优的"标准参数"的各种陷阱和坑点分析(攻克盲点及混淆点)「 1 」

洛神灬殇

JVM 12 月 PK 榜 调优参数 调优技术

性能最大提升60%,阿里云发布基于第四代英特尔至强的第八代ECS实例

云布道师

阿里云

TiDB Operator扩缩容和集群的管理

TiDB 社区干货传送门

集群管理 管理与运维 安装 & 部署 扩/缩容

几个常见的js手写题,你能写出来几道

helloworld1024fd

JavaScript

Github上获赞59.8K的面试神技—1658页《Java面试突击核心讲》

架构师之道

编程 程序员 java面试

GaiaX开源解读 | 给Stretch(Rust编写的Flexbox布局引擎)新增特性,我掉了好多头发

阿里巴巴文娱技术

开源 rust 后端 rust语言 GaiaX

公交车LED电子路牌宣传效果更好吗

Dylan

LED显示屏 户外LED显示屏 led显示屏厂家

全球首家!星环科技通过3TB TPCx-AI测试,实现大数据与AI的完美融合

星环科技

TiDB增强型 StatefulSet 控制器--Advanced StatefulSet

TiDB 社区干货传送门

集群管理 管理与运维 安装 & 部署 扩/缩容

中移链合约常用开发介绍 (一)开发基本流程

BSN研习社

中移链

RocketMQ Connect 构建流式数据处理平台

Apache RocketMQ

RocketMQ Connect

TiCDC 在多种场景的新特性的应用

TiDB 社区干货传送门

安装 & 部署 OLTP 场景实践

C#静态分析工具Roslynator.Analyzers将方法数量提高了500多_编程语言_Andy Clark_InfoQ精选文章