最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

天天日报丨读C#代码整洁之道笔记01_C#的编码标准和原则

来源:博客园

1.编码原则

1.1.SOLID原则

  • 1.1.1.单一职责原则(Single Respon-sibility Principle)

  • 1.1.1.1.类和方法应当仅具备单一职责。所有组合为单一职责的元素应当组合在一起并进行封装。

  • 1.1.2.开闭原则(Open-Closed Principle)


    (资料图片)

  • 1.1.2.1.类和方法应当对扩展开放,对修改封闭。

  • 1.1.3.里氏替换原则(Liskov Substitution)

  • 1.1.3.1.若函数接收一个基类的指针,那么该指针应当可以替换为任何从基类派生的类(的指针)而无须事先知晓具体类信息。

  • 1.1.4.接口隔离原则(Interface Segregation Principle)

  • 1.1.4.1.与其设计一个大而全的接口不如拆分为若干小型接口,而类可以选择实现需要的接口中的方法。

  • 1.1.5.依赖倒置原则(Dependency Inversion Principle)

  • 1.1.5.1.高层次的模块不应当依赖低层次的模块。

  • 1.1.5.2.低层次的模块的替换不应当影响高层次模块的使用。

  • 1.1.5.3.不论是高层次的模块还是低层次的模块都应当依赖于抽象。

  • 1.1.5.4.抽象不应当依赖于细节,但是细节应当依赖于抽象。

1.2.YAGNI原则

  • 1.2.1.“你不会需要它”(You Ain"t Gonna Need It)

  • 1.2.2.确保类、方法和整体代码行数保持绝对最小水平。

1.3.KISS原则

  • 1.3.1.“保持软件简单易懂”(Keep It Simple,Stupid)

  • 1.3.2.务必要保持代码整洁易读,确保即使是新手程序员也能够理解其含义。

1.4.DRY原则

  • 1.4.1.“避免重复的代码”(Don"t Repeat Yourself)

  • 1.4.2.当遇到重复代码时应当尽早将其移除

1.5.奥卡姆剃刀法则

  • 1.5.1.Occam"s Razor, Ockham"s Razor

  • 1.5.2.“如无必要,勿增实体”,即“简单有效原理”。

  • 1.5.2.1.最简单的方案也最可能是正确的那个方案

  • 1.5.2.2.假设越多,设计方案包含缺陷的可能性就越大

  • 1.5.2.3.项目的构成组件越少,出问题的可能性就越少

2.编码方法

2.1.测试驱动开发(Test-Driven Development,TDD)

2.2.行为驱动开发(Behavioral-Driven Development,BDD)

  • 2.2.1.SpecFlow

2.3.面向方面编程(Aspect-Oriented Programming,AOP)

  • 2.3.1.PostSharp

3.良好代码

3.1.合理的缩进

  • 3.1.1.工具实现

3.2.有意义的注释

3.3.API文档注释

  • 3.3.1.文档越易用,开发人员使用API的意愿就越强

3.4.使用命名空间合理组织代码

  • 3.4.1.使用命名空间合理组织代码

3.5.合理的命名规则

  • 3.5.1.Pascal命名法

  • 3.5.1.1.命名空间、类、接口、枚举和方法

  • 3.5.2.驼峰命名法

  • 3.5.2.1.变量名称、参数名称

  • 3.5.3.在成员变量上必须加上前缀下划线

3.6.一个类执行一种任务

3.7.一个方法做一件事情

3.8.方法的代码少于10行,最好不超过4行

  • 3.8.1.代码格式化、链式函数算1行?

3.9.方法的参数不多于两个

  • 3.9.1.方法最好没有参数

  • 3.9.2.有两个以上的参数时就需要考虑类和方法的职责是不是太多了

  • 3.9.3.方法的确需要两个以上的参数,那么最好将其合并为一个对象参数

3.10.合理使用异常

3.11.代码可读性强

3.12.代码耦合程度低

3.13.高内聚的代码

  • 3.13.1.将公共的功能正确地分组的代码具有高度的内聚性

3.14.对象会被恰当销毁

  • 3.14.1.请务必调用Dispose()方法明确地销毁使用中的资源

  • 3.14.2.将对象(引用)设置为null以使其超出作用范围

  • 3.14.3.using语句

3.15.避免使用Finalize()方法

  • 3.15.1.最好在更加可靠的Dispose()方法中来销毁非托管资源

3.16.合理地进行抽象

  • 3.16.1.当设计只向更高的级别开放,并仅开放必需的内容时,它就处在正确的抽象层次上

3.17.在大型类中使用#region进行区域划分

关键词: