-- vs2019+SonarLint的安装配置与使用
【官网】:https://github.com/SonarSource/sonarlint-visualstudio
应用场景
团队越来越大,产品迭代越来越多,代码复杂性也提高了,那些Review,算法分析,架构设计等问题都应该建立在代码本身没有太多的smell等问题否则上述难度都被加大,团队人员参与进来会觉得很难维护。这时可以考虑使用SonarLint基础资源
Vs的【扩展】管理工具
使用须知
可以通过vs的【扩展】中联机搜索:'Sonarlint',安装,如果网速慢则可以按照下载资源中的github中下载vs的匹配版本。
配置步骤
A)在asp.net core项目中设置-排除对指定代码的单元测试覆盖率分析.
在项目属性文件中,编辑类似如下的排除规则.
A1)排除匹配的所有代码.
<ItemGroup>
<SonarQubeSetting Include="sonar.coverage.exclusions">
<Value>**/*.cs</Value>
</SonarQubeSetting>
</ItemGroup>
A2)排除指定目录下的代码.
<ItemGroup>
<SonarQubeSetting Include="sonar.coverage.exclusions">
<Value>**/user/**.cs</Value>
</SonarQubeSetting>
</ItemGroup>
A3)排除整个Project项目。
<PropertyGroup>
<!-- Exclude the project from analysis -->
<SonarQubeExclude>true</SonarQubeExclude>
</PropertyGroup>
[注]在.csproj文件中排除整个项目,而不是单个文件,或者依赖声纳过滤器.
常见问题
快速入门
【关于SonarLint的常见smell的处理】
1)Split this method into two, one handling parameters check and the other handling the asynchronous code.进入async类的方法,保证里面至少会执行到一个await,否则因为内部判断分支导致没有执行到await,那么应该考虑调整 方案1) "拆分参数判断到在进入该异步方法之前,之后再进该方法async +awaiy" 或者 方案2)"将该方法中的await拿出去,仅作为同步方法处理".
2)All ‘SendAsync‘ method overloads should be adjacent.
父类的重载方法尽量保持只有一个public,其余的是protected.
3)Remove the field ‘_appSetting‘ and declare it as a local variable in the relevant methods.
如果能在方法内部获得最好,实在不行在外面传进来。