一.命名规范

1.考虑在命名空间中使用复数

  System.AllCollections

  System.TheCollection

2.用名词和名词组给类型命名

  ScoreManager

  UserController

3.用形容词给接口命名

  接口的规范是“Can Do”,也就是说它规范的是类型可以具有哪些行为。所以接口的命名应该是一个形容词组,前面增加I.

  IDisposable

  IEnumerable

4.考虑让子类的名字以基类名字作为后缀

  class MyException:Exception {}

5.用PascalCasing命名公开元素

  开放给调用者的属性,字段,方法都应该采用PascalCasing命名方式。

6.用camelCasing命名私有字段和局部变量

  private string firstName;

7.委托和事件类型应添加上级后缀

委托按照委托类型的作用分为以Delegate结尾和CallBack结尾。如果委托用于回调性质,则shiyongCallBack结尾。

8.事件和委托变量使用动词或形容词短语命名

public event RutedEventHandler Click;

public event SizeChangedEventHandler SizeChanged;

二.代码整洁

代码整洁的要求之一就是减少代码。

1.使用默认的访问修饰符

   既可以减少代码的数量,还有助于我们熟悉代码的默认行为。

2.不知道该不该用大括号的时,就用

  如if语句下只有一行语句,要不要用大括号。一个括号不会增加多少代码,但是却让代码看上去增加了一致性。

3.只对外公布必要的操作

4.使用表驱动法来避免过长的if或switch分支

5.最少甚至不要注释

6.若抛出异常,则必须注释

三.规范开发行为

1.不要过度设计,在敏截中体会重构的乐趣

C# 《编写高质量代码改善建议》整理&笔记 --(六)编码规范及习惯的更多相关文章

  1. C# 《编写高质量代码改善建议》整理&笔记 --(一)基本语言篇

     题记:这是自己的观后感,工作两年了,本来打算好好学习设计模式,或者作为客户端深入了解GPU编程的,但是突然发现还有这么一本书. <编写高质量代码改善建议>,感觉这正是自己需要的. 我是做 ...

  2. C# 《编写高质量代码改善建议》整理&笔记 --(五)成员设计

    1.可以字段应该重构为属性 2.谨慎将数组或集合作为属性 数组和集合作为属性存在会引起这样的一个分歧:如果属性是只读的,我们通常会认为他是不可改变的.但是如果将只读属性应用于数组和集合,而元素的内容和 ...

  3. C# 《编写高质量代码改善建议》整理&笔记 --(三)泛型&委托&事件

    1.泛型 基于泛型,我们可以将类型参数化,以便更大范围地进行代码复用.同时,它减少了泛型类及泛型方法中的转型, 确保类型安全. 1)总是优先考虑泛型 优点:可重用性,类型安全,高效率. 2)避免在泛型 ...

  4. C# 《编写高质量代码改善建议》整理&笔记 --(五)类型设计

    1.区分接口和抽象类的应用场合 区别: ①接口支持多继承,抽象类则不能. ②接口可以包含方法,属性,索引器,事件的签名,但不能有实现,抽象类则可以. ③接口在增加新方法后,所有的继承者都必须重构,否则 ...

  5. C# 《编写高质量代码改善建议》整理&笔记 --(四)资源管理&序列化

    1.显示释放资源需继承接口IDisposable 什么是资源:C#中每一个类型都代表一种资源,而资源又分为以下两类. 托管资源:由CLR管理分配和释放的资源,即从CLR里new出来的对象. 非托管资源 ...

  6. 编写高质量代码改善C#程序的157个建议——建议149:使用表驱动法避免过长的if和switch分支

    建议149:使用表驱动法避免过长的if和switch分支 随着代码变得复杂,我们很容易被过长的if和switch分支困扰. 一个类枚举类型Week如下: enum Week { Monday, Tue ...

  7. 编写高质量代码改善C#程序的157个建议——建议1:正确操作字符串

    最近拜读了陆敏技老师的<编写高质量代码改善C#程序的157个建议>,感觉不错,决定把笔记整理一遍. 建议1: 正确操作字符串 字符串应该是所有编程语言中使用最频繁的一种基础数据类型.如果使 ...

  8. 博友的 编写高质量代码 改善java程序的151个建议

    编写高质量代码 改善java程序的151个建议 http://www.cnblogs.com/selene/category/876189.html

  9. 编写高质量代码--改善python程序的建议(六)

    原文发表在我的博客主页,转载请注明出处! 建议二十八:区别对待可变对象和不可变对象 python中一切皆对象,每一个对象都有一个唯一的标识符(id()).类型(type())以及值,对象根据其值能否修 ...

随机推荐

  1. SOFA 源码分析 — 负载均衡和一致性 Hash

    前言 SOFA 内置负载均衡,支持 5 种负载均衡算法,随机(默认算法),本地优先,轮询算法,一致性 hash,按权重负载轮询(不推荐,已被标注废弃). 一起看看他们的实现(重点还是一致性 hash) ...

  2. Android动态字符串拼接----%s

    在开发经常遇到字符串中的某一数据或多个数据是动态变化的. 如下图 不要创建3个TextView,暂时不考虑颜色变化的情况,可以用以下做法. <string name="maintain ...

  3. JDK及JRE目录结构

    JDK文件结构及目录: c:\jdk1.7.0: JDK安装根目录,包括版权.许可证和READEME文件,还包含ser.zip记录Java平台档案. c:\jdk1.7.0\bin 包含在Java开发 ...

  4. 获取linux帮助命令

    命令的分类 linux的命令分为内部命令和外部命令.  内部命令指的是shell程序自带的命令,是shell程序的一部分,这些命令由shell程序识别并在shell程序内部完成运行,通常在linux系 ...

  5. JavaScript (一、ECMAScript )

    一.js简介和变量 1.JavaScript的概述组成和特点 a.JavaScript 是脚本语言,是世界上最流行的编程语言,这门语言可用于 HTML 和 web,更可广泛 用于服务器.PC.笔记本电 ...

  6. CSS定位使用方法

    .box0 { width: 200px; height: 200px; position: relative; background: #cfa } .box0-1,.box0-2 { width: ...

  7. 第七章之S5PV210移植到Nandflash

    1,之前的操作都是基于SD卡进行运行的,如今在Nandfalsh中运行u-boot.因为s5p_goni.h配置文件没有配置Nand相关文件,所以先配置Nand文件. 在include/configs ...

  8. JAVA中写时复制(Copy-On-Write)Map实现

    1,什么是写时复制(Copy-On-Write)容器? 写时复制是指:在并发访问的情景下,当需要修改JAVA中Containers的元素时,不直接修改该容器,而是先复制一份副本,在副本上进行修改.修改 ...

  9. 并发库应用之七 & 信号灯Semaphore应用

    Semaphore可以维护当前访问自身的线程个数,并且提供了同步机制. Semaphore实现的功能类似于厕所里有5个坑,有10个人要上厕所,同时就只能有5个人占用,当5个人中 的任何一个让开后,其中 ...

  10. SSM-Spring-13:Spring中RegexpMethodPointcutAdvisor正则方法切入点顾问

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- RegexpMethodPointcutAdvisor:正则方法切入点顾问 核心: <property ...