第二章 有意义的命名
取个好名字的简单规则
1、名副其实
名副其实说起来简单。但是这是一件严肃的事情。选个好名字要花时间,但省下来的时间比花掉的多。注意命名,一旦发现有更好的名字,就换掉旧的。
如果名称需要注释来补充,那就不算是名副其实。
比如:
int d;//消逝的时间,以日计
修改为:
int elapsedTimeInDays;
2、避免误导
必须避免留下掩藏代码本意的错误线索;应当避免使用与本意相悖的词。
提防使用不同之处的较小名称。
比如:用小写字母l和大写字母O作为变量名。
3、做有意义的区分
以数字系列命名(a1,a2,....)是依义命名的对立面。
废话是另一种没意义的区分。如:Product、ProductInfo和ProductData
废话都是冗余的。
如:getActiveAccount();
getActiveAccounts();
getActiveAccountInfo();
4、使用读得出来的名称
5、使用可搜索的名称
单字母名称和数字常量有个问题,就是很难在一大篇文字中找出来。
6、避免使用编码
6.1匈牙利语标记法
6.2变量前缀
6.3接口与实现
7、避免思维映射
明确是王道
8、类名
类名和对象名应该是名词或名词短语。如:Customer
避免使用Manager、Processor、Data或Info这样的类名。类名不应当是动词
9、方法名
方法名应当是动词或动词短语。如:postPayment。
重载构造器时,使用描述了参数的静态工厂方法名:
Complex fulcrumPoint = Complex.FromRealNumber(23.0);
通常好于:
Complex fullcrumPoint = new Compled(23.0);
可以考虑将相应的构造器设置为private,强制使用这种命名手段。
10、别扮可爱
11、每个概念对应一个词
给每个抽象概念选定一个词,并且一以贯之。
12、别用双关语
避免将同一单词用于不同目的。同一术语用于不同概念。
13、使用解决方案领域名称
14、使用源自所涉问题领域的名称
15、添加有意义的语境
16、不要添加没用的语境
不妨试试这些规则,看你的代码可读性是否有怕提升。如果你是在维护别人写的代码,使用重构工具来解决问题。效果立竿见影,而且持续下去。
- 浏览: 10538 次
- 性别:
- 来自: 南京
相关推荐
个人读书笔记,学习共享,希望每个苦恼于代码一坨坨混乱不堪的程序员都能学习. * 整洁代码的意义? 可读性,可维护性。 * 如何写出整洁代码? 1.只做一件事 2.不重复 3.有表达力 * 整洁代码的态度要求,要遵守...
《代码整洁之道》读书笔记
代码整洁之道是一本主要写代码规范的书籍,我读完以后为了给同事们分享里面的重点知识,做了几个幻灯片,主要是各个知识点和笔记。
代码整洁之道读书笔记
个人阅读代码整洁之道所做的笔记
作者 Robert C. Martin 是 cleancoders.com 联合创始人,Uncle Bob Consulting LLC 创始人, 为全球大型公司提供软件开发咨询、培训以及技能培训服务。
这是有关代码整洁之道的幻灯片笔记,简单介绍了本书的一些重点知识点。
代码整洁的读书笔记之一 截取文章中的一小段,自己留着用,时刻提醒自己
该文档是《代码整洁之道》的经典语句,能够帮助读者了解该书的主要内容。同时,本文档对软件工程师的工作也有一定的帮助!
1、有意义,名副其实:降低代码的模糊度,明确说明代码的用途; 2、避免误导:accountList的类型最好就是...《代码整洁之道》阅读对象为一切有志于改善代码质量的程序员及技术经理,本文档是阅读后的读书笔记!!!!
小白读《R语言实战》写的读书笔记(第二章)
系统架构设计师学习笔记-第二章.docx系统架构设计师学习笔记-第二章.docx系统架构设计师学习笔记-第二章.docx系统架构设计师学习笔记-第二章.docx系统架构设计师学习笔记-第二章.docx系统架构设计师学习笔记-第二章....
系统架构设计师学习笔记-第二章.pdf系统架构设计师学习笔记-第二章.pdf系统架构设计师学习笔记-第二章.pdf系统架构设计师学习笔记-第二章.pdf系统架构设计师学习笔记-第二章.pdf系统架构设计师学习笔记-第二章.pdf...
流畅的python 阅读笔记(第二章 序列构成的数组)
CSL学习笔记--第二章 怎么应用CSL.docxCSL学习笔记--第二章 怎么应用CSL.docxCSL学习笔记--第二章 怎么应用CSL.docxCSL学习笔记--第二章 怎么应用CSL.docxCSL学习笔记--第二章 怎么应用CSL.docxCSL学习笔记--第二章 ...
JAVA笔记-第二章.rar
CISA笔记-第二章,里面有学生上课听讲的内容,供大家参考
学生读书笔记共享-学生读书笔记共享系统-学生读书笔记共享系统源码-学生读书笔记共享管理系统-学生读书笔记共享管理系统java代码-学生读书笔记共享系统设计与实现-基于springboot的学生读书笔记共享系统-基于Web的...