写点什么

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

2020 年 2 月 17 日

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 年 2 月 17 日 09:001783

评论 1 条评论

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

设计模式

Jeff

漫画通信:惊呆了,手机登录还可以这么玩!

阿里云Edge Plus

云通信 通信 通信云

深入浅出Shiro系列

程序员的时光

架构师训练营第四章作业

饶军

以应用为中心:开放应用模型(OAM)初探

郭旭东

Kubernetes OAM

第四周直播总结笔记

Carlos

命题作业和总结—第四周

于江水

极客大学架构师训练营

Kafka面试题——20道Kafka知识点

古月木易

Kafka知识点

“信息茧房”里的人

架构精进之路

自我思考 程序员成长

架构师训练营第 4 周 总结

时来运转

为什么美国程序员工作比中国程序员工作轻松、加班少?

程序员生活志

程序员 加班

一路“开挂”,完美诠释“年少有为”——90 后首席科学家王乃岩

二叉树视频

写作平台 二叉树 年少有为

Kafka面试题——20道Kafka知识点

奈学教育

Kafka知识点

从业务代码到Openjdk源码的debug之路

飞影

Java debug 深入理解JVM Openjdk TLAB

第四周作业

田振宇

《机器学习理论导引》阅读攻略

华章IT

学习 周志华

程序员不得不知的十大职场误区

陆陆通通

程序员 职场 架构师 工资 误区

第四周总结

石刻掌纹

分布式柔性事务之事务消息详解

古月木易

分布式柔性事务‘’

游戏夜读 | 不受欢迎的那个人

game1night

以懂行助力加速:华为中国生态之行2020蕴藏的时代钥匙

脑极体

项目域名配置流程

打鱼小王子

架构师训练营第4周作业

时来运转

分布式柔性事务之事务消息详解

奈学教育

分布式事务

架构师训练营第四章作业

叮叮董董

架构 技术方案 解决手段 互联网架构

爱恨交织的红黑树

ytao

数据结构 算法

大型互联网应用技术方案

石刻掌纹

成功从小公司跳槽进蚂蚁定级P7,只因刷了七遍这些面试真题

互联网架构师小马

Java 程序员 面试 找工作 架构师

week04 学习总结 互联网面临挑战和架构模式

Z冰红茶

使用 Prometheus-Operator 监控 Calico

米开朗基杨

Prometheus calico

架构师训练营第四章总结

叮叮董董

总结 架构师 训练营

2021 ThoughtWorks 技术雷达峰会

2021 ThoughtWorks 技术雷达峰会

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