好代码是管出来的——C#的代码规范 (2)

  this:使用this区分类型中的属性与变量、静态成员,可以提高程序可读性。
  var:适当的使用var可以提高开发效率且不影响程序可读性,如在不知道返回值具体类型或者不需要知道类型的时候。
  反例:

  

好代码是管出来的——C#的代码规范

  本例来自:https://weblogs.asp.net/dixin/csharp-coding-guidelines-4-types

字符串内插(string interpolation):字符串内插是C#6.0的特性,使用字符串内插可以提高程序可读性:

  例:

  

好代码是管出来的——C#的代码规范

异常

当程序出现与预期不符时应该抛出异常让程序上游处理。

尽可能使用C#中内置的异常类型。

捕获异常必须处理。

获取指定异常而非统一使用Exception。

安全准则

  参考:https://docs.microsoft.com/zh-cn/dotnet/standard/security/secure-coding-guidelines
  更多规范可参考:https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/inside-a-program/coding-conventions
  代码使用规范是一个广泛的话题,除了以上一些通用的规范之外,还可以对OOP以及开发框架等方面根据实际情况制定规则,使用统一的规范进行开发可以让代码变得更加容易管理。

常用的代码规范工具

Visual Studio

  VS是非常强大的IDE,在众多功能中当然不会缺少对代码规范的支持。

StyleCop

  StyleCop是一个代码分析工具,StyleCop有两个版本StyleCop和StyleCop Analyzers,前者适用于VS2010-VS2017所有版本,它的原理是在编译时对代码进行分析,而StyleCop Analyzers仅支持VS2015+,它基于.Net的roslyn编译框架实现的,它支持开发时对代码进行实时分析(不再需要等编译)。
  StyleCop:https://github.com/StyleCop/StyleCop
  StyleCop Analyzers:https://github.com/DotNetAnalyzers/StyleCopAnalyzers

Resharper

  Resharper是jetbrains公司开发的一个VS收费插件,它不仅包含了代码分析,还具备了代码生成、编译、测试、调试等功能。
  VS2017与Resharper的功能比较https://www.jetbrains.com/resharper/documentation/comparisonMatrix_R2018_1_vs2017.html

EditConfig

  EditConfig是一个跨编辑器/IDE的代码风格一致性维护工具(协议/插件),现在VS2017已经支持EditConfig

DocFx

  DocFx是一个API文档生成工具,使用DocFx可以快速的搭建一个程序使用、及API文档,样式可参考:
  DocFx教程:
  API文档:

小结

  本文主要介绍了C#中的编程规范,并将规范分为了两个类型,分别是格式规范和使用规范,前者主要目的是让代码格式达到一致性,后者则是规定了代码的使用方法,最大化的减少不同经验开发人员编写代码的质量,提高程序的可读性、性能、稳定性及安全性。
  在开发过程中编程规范是一项非常重要的工作,它关系着代码是否能够被维护,提高可维护性可以减少团队成员增减、功能新增、代码变更等带来的高成本。
  编程规范的制定并不简单,不同的人对编程规范也有不同的理解,特别是代码的使用规范,它要求制定者必须要有丰富的代码开发以及代码优化经验。为了确保规范能够顺利的制定,个人认为需要以先制定后修改的方式进行,先制定是为了不耽误开发工作,在开发工作开始之前制定好规范即可按规范开发,后修改,其一是在开发过程中发现不合理的地方进行修改(口说无凭,实践出真理),另外是随着团队能力的提高,可以总结更多的代码使用最佳实践。
  文章的最后介绍了一些常用的规范工具,下篇文章将详细的介绍.Net平台下的规范工具以其使用。


  另附上阿里巴巴定义的Java规范:  

参考:
  https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/
  https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/inside-a-program/coding-conventions
  
  https://orcharddojo.net/orchard-resources/Library/DevelopmentGuidelines/BestPractices/CSharp
  https://www.codeproject.com/articles/118853/some-best-practices-for-c-application-development
  https://weblogs.asp.net/dixin/csharp-coding-guidelines-1-fundamentals
  https://github.com/dotnet/docfx
  https://github.com/alibaba/p3c/blob/master/%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4Java%E5%BC%80%E5%8F%91%E6%89%8B%E5%86%8C%EF%BC%88%E8%AF%A6%E5%B0%BD%E7%89%88%EF%BC%89.pdf

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpfxpg.html