写点什么

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:0015308

评论 1 条评论

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

贡献者任务第五期,炫酷登场!

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

OpenMLDB Meetup No.6 回顾 | OpenMLDB+37手游:一键查收特征计算场景案例及进阶使用攻略

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

谈谈产品如何定位

产品海豚湾

产品经理 产品定位 商业洞察 10月月更 SaaS 产品

直冲云霄,阿里大牛耗时49天整理12W字面试手册,押题准确率直冲95%

Geek_0c76c3

Java 数据库 开源 程序员 开发

专访 | 许伟 ——贡献榜 Top4 也只是“开源小白”

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

秋招Java面试大纲:Java+并发+spring+数据库+Redis+JVM+Netty等

Geek_0c76c3

Java 数据库 开源 程序员 开发

OpenMLDB Airflow Connector:让 MLOps 工作流更自由

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

OpenMLDB v0.6.0 发布 | 便捷性、可用性大幅提升!

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

TiDB 数据冷热存储分离测试

TiDB 社区干货传送门

实践案例 管理与运维 新版本/特性解读 数据库架构设计

开源星「001号」落地 OpenMLDB,欢迎登陆赢神秘大礼包!

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

如何选择架构中的底层工具?OpenMLDB 在 Akulaku 数据驱动中的应用实践给你答案

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

不愧是阿里新产SpringSecurity+OAuth2实战笔记,(用户+案例+认证+框架)打造企业级认证与授权

程序员小毕

程序员 程序人生 springsecurity java面试 安全框架

GitHub下载量从19暴涨到5W,这份架构师学习路线只用了一晚

Geek_0c76c3

Java 数据库 开源 程序员 开发

首届第四范式 Tech Day 回顾

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

决策 AI:以高效落地为目标的工程技术

第四范式开发者社区

机器学习 数据库 时序数据库 特征

【Meetup 明天见】OpenMLDB+37手游:一键查收特征计算场景案例及进阶使用攻略

第四范式开发者社区

人工智能 数据库 开源 时序数据库

深入理解Kubernetes Pod调试

俞凡

最佳实践 云原生

阿里最新分享 SpringCloudAlibaba 实战小抄(第五版),一代更比一代强

Geek_0c76c3

Java 开源 程序员 数据 开发

拼搏一周!刷了1000道Java高频面试题喜提阿里offer,定级P7

Geek_0c76c3

Java 数据库 开源 程序员 架构

究竟都是谁在使用?OpenMLDB 落地案例大起底

第四范式开发者社区

人工智能 数据库 开源 时序数据库 特征

倒数三天 | WAIC 滴水湖 AI 开发者创新论坛:当数据库遇上 AI 来啦!

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

活动紧急插播 | QCon 全球软件开发者大会早班车连线分享

第四范式开发者社区

人工智能 数据库 开源 时序数据库 特征

AICon 2022 | 来杭州和 OpenMLDB 见面吧

第四范式开发者社区

人工智能 机器学习 数据库 时序数据库 特征

OpenMLDB 进阶使用攻略和高级特性介绍

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

OpenMLDB 开源一周年,感恩遇见

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

Redis--Redis集群、缓存穿透、缓存击穿、缓存雪崩

Java学术趴

10月月更

OpenMLDB+Byzer,SQL 也能玩转机器学习全流程

第四范式开发者社区

机器学习 数据库 开源 时序数据库 特征

阿里打工4年被裁,国庆七天系统查漏补缺期间我总结出了一条对标阿里P5~P7Java程序员体系学习路线

Java永远的神

程序员 程序人生 后端 Java 面试 学习路线

专访 | 赵沁雪:参与开源,不是一个人的战斗

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

阿里最新产物:亿级流量高并发系统设计(全彩版小册开源)

Java全栈架构师

程序员 程序人生 系统架构 中间件 java面试

花2个月面过阿里Java岗,拿个25K不过分吧?

程序知音

Java java面试 后端技术 秋招 Java面试八股文

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