大型网站制作哪家好,在哪里购买游戏源码,wordpress 无法升级,晋江文创园网站建设代码是软件开发过程的产物#xff0c;代码的作用是通过编译器编译后运行#xff0c;达到预期的效果(功能、稳定性、安全性等等)#xff0c;而另外一个重要作用是给人阅读。对于机器来说只要代码正确就能够正确的运行程序#xff0c;但是人不同#xff0c;如果代码编写混乱… 代码是软件开发过程的产物代码的作用是通过编译器编译后运行达到预期的效果(功能、稳定性、安全性等等)而另外一个重要作用是给人阅读。对于机器来说只要代码正确就能够正确的运行程序但是人不同如果代码编写混乱就会对代码阅读造成障碍导致代码无法维护甚至会导致代码重构等高成本活动所以规范代码势在必行。 本文从以下几个方面介绍代码规范以及相关工具。.Net代码规范简介代码格式规范命名规范布局规范注释规范代码使用规范常用的代码规范工具小结.Net代码规范简介 文章开始提到过代码是给人看的代码规范的目的在于创建一个统一的规范来保持代码的整洁这样有利于提高代码的可维护性但除此之外还可以将一些代码的最佳实践也作为规范的一部分这样还可以提高代码的性能和安全性。 一般来说.Net的代码规范主要有代码格式规范、代码使用规范前者保证代码可读性后者保证代码执行效率和安全性。代码格式规范 代码格式规范主要的目的是统一代码编写格式避免开发人员独特的代码编写方式以便于项目的所有开发人员能快速的阅读其他人员开发的代码代码格式规范主要有以下几个方面 注除以下规范外对于一个工程来说应该还有工程结构规范(也可以理解为代码目录结构规范)工程结构规范可能因项目不同而不同但是统一规范可以提高代码查找效率和开发效率(团队新成员不会再疑惑代码应该放哪里)。命名规范 命名规范主要涉及命名空间、类型、接口、属性、方法、变量等相关命名其主要规范有使用Pascal(单词首字母大写)命名方式对命名空间、类型、枚举类型、枚举值、事件、属性、方法、常量进行命名。 例public class PersonManager {}使用Camel()命名方式对参数、变量、字段进行命名。 例private string userName; 禁止使用缩写除URL、IO等能达成共识的缩写除外使用缩写可全大写。 例System.IO接口以I做为前缀进行命名。 例public interface IConvertor {}抽象类以Abstract为前缀或者以Base为后缀进行命名。 例public abstract class PersonBase {}异常类型以Exception为后缀。 例public class CustomException {}在对任何东西命名时需要使用有意义的名称并且保证单词拼写正确以及语法正确避免使用拼音(地名等通用拼音除外)。 例 public string Name {get; set;} 反例 public string N {get; set;}布局规范 布局规范的目的是使代码变得整洁提高代码可读性其主要规范有代码缩进为4个空格。 左右花括号必须独自一行括号内容为空时除外 例public void WriteLog(string log) { Console.WriteLine(log); } public void EmptyMethod(string log) {}括号的使用if/for/while/do等关键字后面与左括号直接需要加空格 if (x 1)运算符左右需要加空格 a c b;单行代码限制120个字符超长处理方式第二行相对第一行缩进4个空格从第三行开始无需缩进。运算符及方法调用的“.”需要跟随换行但逗号不需要。 例WebHost.CreateDefaultBuilder(args) .UseStartupStartup() .Build(); App.Method(a b, c);注释规范 注释用来对编写的代码进行说明包括功能说明以及实现说明这样可以大大的提高程序的可读性另外规范的注释还可以通过工具来生成相应的API文档C#的注释规范有以下几种类注释 例/// summary /// This is a Entity Class for Post. /// /summary public class Post属性及方法注释 /// summary /// Get post with id /// /summary /// param nameidposts identity/param /// returnspost instance/returns public Post GetPostById(int id)代码单行注释 //this is a single line comment代码多行注释 /* this is comment1 this is comment2 */代码使用规范 代码的使用规范或者说是代码编写的最佳“实践”(当然优良的格式规范也是一种最佳实践)它们是根据代码的实现/运行原理以及特定的应用场景进行实践的最佳方案这些方案的使用除了可以提高代码的可读行外还可以减少程序Bug、提高程序性能及安全性如以下几个方面使用语言特性 this使用this区分类型中的属性与变量、静态成员可以提高程序可读性。 var适当的使用var可以提高开发效率且不影响程序可读性如在不知道返回值具体类型或者不需要知道类型的时候。 反例 本例来自https://weblogs.asp.net/dixin/csharp-coding-guidelines-4-types字符串内插(string interpolation)字符串内插是C#6.0的特性使用字符串内插可以提高程序可读性 例 异常当程序出现与预期不符时应该抛出异常让程序上游处理。尽可能使用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/StyleCopAnalyzersResharper Resharper是jetbrains公司开发的一个VS收费插件它不仅包含了代码分析还具备了代码生成、编译、测试、调试等功能。 VS2017与Resharper的功能比较https://www.jetbrains.com/resharper/documentation/comparisonMatrix_R2018_1_vs2017.htmlEditConfig EditConfig是一个跨编辑器/IDE的代码风格一致性维护工具(协议/插件)现在VS2017已经支持EditConfigDocFx DocFx是一个API文档生成工具使用DocFx可以快速的搭建一个程序使用、及API文档样式可参考 DocFx教程http://dotnet.github.io/docfx/tutorial/docfx_getting_started.html API文档http://dotnet.github.io/docfx/api/Microsoft.DocAsCode.html小结 本文主要介绍了C#中的编程规范并将规范分为了两个类型分别是格式规范和使用规范前者主要目的是让代码格式达到一致性后者则是规定了代码的使用方法最大化的减少不同经验开发人员编写代码的质量提高程序的可读性、性能、稳定性及安全性。 在开发过程中编程规范是一项非常重要的工作它关系着代码是否能够被维护提高可维护性可以减少团队成员增减、功能新增、代码变更等带来的高成本。 编程规范的制定并不简单不同的人对编程规范也有不同的理解特别是代码的使用规范它要求制定者必须要有丰富的代码开发以及代码优化经验。为了确保规范能够顺利的制定个人认为需要以先制定后修改的方式进行先制定是为了不耽误开发工作在开发工作开始之前制定好规范即可按规范开发后修改其一是在开发过程中发现不合理的地方进行修改(口说无凭实践出真理)另外是随着团队能力的提高可以总结更多的代码使用最佳实践。 文章的最后介绍了一些常用的规范工具下篇文章将详细的介绍.Net平台下的规范工具以其使用。 另附上阿里巴巴定义的Java规范 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://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://docs.microsoft.com/zh-cn/dotnet/standard/security/secure-coding-guidelines#application-code-that-is-not-a-reusable-component 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相关文章好代码是管出来的——使用Git来管理源代码好代码是管出来的——Git的分支工作流与Pull Request好代码是管出来的——使用GitHub原文地址https://www.cnblogs.com/selimsong/p/9160928.html .NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com