C# 《编写高质量代码改善建议》整理&笔记 --(六)编码规范及习惯
一.命名规范
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# 《编写高质量代码改善建议》整理&笔记 --(六)编码规范及习惯的更多相关文章
- C# 《编写高质量代码改善建议》整理&笔记 --(一)基本语言篇
题记:这是自己的观后感,工作两年了,本来打算好好学习设计模式,或者作为客户端深入了解GPU编程的,但是突然发现还有这么一本书. <编写高质量代码改善建议>,感觉这正是自己需要的. 我是做 ...
- C# 《编写高质量代码改善建议》整理&笔记 --(五)成员设计
1.可以字段应该重构为属性 2.谨慎将数组或集合作为属性 数组和集合作为属性存在会引起这样的一个分歧:如果属性是只读的,我们通常会认为他是不可改变的.但是如果将只读属性应用于数组和集合,而元素的内容和 ...
- C# 《编写高质量代码改善建议》整理&笔记 --(三)泛型&委托&事件
1.泛型 基于泛型,我们可以将类型参数化,以便更大范围地进行代码复用.同时,它减少了泛型类及泛型方法中的转型, 确保类型安全. 1)总是优先考虑泛型 优点:可重用性,类型安全,高效率. 2)避免在泛型 ...
- C# 《编写高质量代码改善建议》整理&笔记 --(五)类型设计
1.区分接口和抽象类的应用场合 区别: ①接口支持多继承,抽象类则不能. ②接口可以包含方法,属性,索引器,事件的签名,但不能有实现,抽象类则可以. ③接口在增加新方法后,所有的继承者都必须重构,否则 ...
- C# 《编写高质量代码改善建议》整理&笔记 --(四)资源管理&序列化
1.显示释放资源需继承接口IDisposable 什么是资源:C#中每一个类型都代表一种资源,而资源又分为以下两类. 托管资源:由CLR管理分配和释放的资源,即从CLR里new出来的对象. 非托管资源 ...
- 编写高质量代码改善C#程序的157个建议——建议149:使用表驱动法避免过长的if和switch分支
建议149:使用表驱动法避免过长的if和switch分支 随着代码变得复杂,我们很容易被过长的if和switch分支困扰. 一个类枚举类型Week如下: enum Week { Monday, Tue ...
- 编写高质量代码改善C#程序的157个建议——建议1:正确操作字符串
最近拜读了陆敏技老师的<编写高质量代码改善C#程序的157个建议>,感觉不错,决定把笔记整理一遍. 建议1: 正确操作字符串 字符串应该是所有编程语言中使用最频繁的一种基础数据类型.如果使 ...
- 博友的 编写高质量代码 改善java程序的151个建议
编写高质量代码 改善java程序的151个建议 http://www.cnblogs.com/selene/category/876189.html
- 编写高质量代码--改善python程序的建议(六)
原文发表在我的博客主页,转载请注明出处! 建议二十八:区别对待可变对象和不可变对象 python中一切皆对象,每一个对象都有一个唯一的标识符(id()).类型(type())以及值,对象根据其值能否修 ...
随机推荐
- SOFA 源码分析 — 负载均衡和一致性 Hash
前言 SOFA 内置负载均衡,支持 5 种负载均衡算法,随机(默认算法),本地优先,轮询算法,一致性 hash,按权重负载轮询(不推荐,已被标注废弃). 一起看看他们的实现(重点还是一致性 hash) ...
- Android动态字符串拼接----%s
在开发经常遇到字符串中的某一数据或多个数据是动态变化的. 如下图 不要创建3个TextView,暂时不考虑颜色变化的情况,可以用以下做法. <string name="maintain ...
- JDK及JRE目录结构
JDK文件结构及目录: c:\jdk1.7.0: JDK安装根目录,包括版权.许可证和READEME文件,还包含ser.zip记录Java平台档案. c:\jdk1.7.0\bin 包含在Java开发 ...
- 获取linux帮助命令
命令的分类 linux的命令分为内部命令和外部命令. 内部命令指的是shell程序自带的命令,是shell程序的一部分,这些命令由shell程序识别并在shell程序内部完成运行,通常在linux系 ...
- JavaScript (一、ECMAScript )
一.js简介和变量 1.JavaScript的概述组成和特点 a.JavaScript 是脚本语言,是世界上最流行的编程语言,这门语言可用于 HTML 和 web,更可广泛 用于服务器.PC.笔记本电 ...
- CSS定位使用方法
.box0 { width: 200px; height: 200px; position: relative; background: #cfa } .box0-1,.box0-2 { width: ...
- 第七章之S5PV210移植到Nandflash
1,之前的操作都是基于SD卡进行运行的,如今在Nandfalsh中运行u-boot.因为s5p_goni.h配置文件没有配置Nand相关文件,所以先配置Nand文件. 在include/configs ...
- JAVA中写时复制(Copy-On-Write)Map实现
1,什么是写时复制(Copy-On-Write)容器? 写时复制是指:在并发访问的情景下,当需要修改JAVA中Containers的元素时,不直接修改该容器,而是先复制一份副本,在副本上进行修改.修改 ...
- 并发库应用之七 & 信号灯Semaphore应用
Semaphore可以维护当前访问自身的线程个数,并且提供了同步机制. Semaphore实现的功能类似于厕所里有5个坑,有10个人要上厕所,同时就只能有5个人占用,当5个人中 的任何一个让开后,其中 ...
- SSM-Spring-13:Spring中RegexpMethodPointcutAdvisor正则方法切入点顾问
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- RegexpMethodPointcutAdvisor:正则方法切入点顾问 核心: <property ...