SonarLint代码管理

-- 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.
   如果能在方法内部获得最好,实在不行在外面传进来。

参考资料