1.有意义的命名(代码的整洁之道)
1.有意义的命名(代码的整洁之道)
目录
- 名副其实
- 避免误导
- 做有意义的区分
- 使用读的出来的名称
- 使用可搜索的名称
- 避免使用编码
- 避免思维映射
- 类名
- 方法名
- 每个概念对应一个词
- 别用双关语
- 使用解决方案领域名称
- 使用源自所涉问题领域的名称
- 添加有意义的语境
- 不要添加没有的语境
注:代码的整洁之道PDF: https://pan.baidu.com/s/16PLDWPiusGjcUfW_jgOm5w 密码: s708
1. 名副其实
- 变量、函数或类的名称应该已经答复了所有的大问题。它应该告诉你,它为什么存在,做什么事,应该怎么用。
int d; //消逝的时间,以日计
- 名称d什么也没说明,应该选择指明了计量对象和计量单位的名称
int elapsedTimeInDays;
int daysSinceCreation;
int daysSinceModification;
int fileAgeInDays;
2. 避免误导
- 提防使用不同之处较小的名称。比如XYZControllerForEfficientHandlingOfStrings和另一处的XYZControllerForEfficientStorageOfStrings.
- 以同样的方法拼写出同样的概念才是信息,拼写前后不一致就是误导。
- 别用accountList来指一组账号,除非它真的是List类型。List一词对程序员有特殊意义。如果包纳账号的容器并非是个List,就会引起错误的判断。所以,用accountGroup或bunchOfAccounts,甚至直接用accounts都会好一些。
3. 做有意义的区分
- 废话是没有意义的区分,假设你有一个Product类,还有一个ProductInfo或ProductData类,那么它们的名称虽然不同,意思却无区别。
- 废话都是冗余的,Variable一词永远不应该出现在变量名中。Table永远不应该出现在表名中。
- 要区分名称,就要可以鉴别不同之处的方式来区分。
4. 使用读的出来的名称
5. 使用可搜索的名称
- 单字母和数字常量有个问题,很难在一大篇文字中找出来。
- 找MAX_CLASSES_PER_STUDENT很容易,但想找数字7就麻烦了。
- 单字母名称仅用于短方法中的本地变量,名称的长度应与其作用域大小相对应。
6. 避免使用编码
7. 避免思维映射
- 不应该让看的人在脑中把你的名称翻译为他们熟知的名称。
- 单字母变量名就是个问题,在作用域较小、也没有冲突时,循环计数器自然有可能被命名为i或j或k,这是因为传统上惯用单字母做循环计数器。
8. 类名
- 类名和对象名应该是名词或名词短语,如Customer、WikiPage、Account和AddressParser。
- 避免使用Manager、Processor、Data和Info这样的类名。
- 类名不应当是动词。
9. 方法名
- 方法名应当是动词或动词短语,如postPayment、deletePage和save。
10. 每个概念对应一个词
- 给每个抽象概念选一个词,并且一以贯之。例如,使用fetch、retrieve和get来给在多个类中的同种方法命名,你怎么记得住哪个类中的那个方法呢?
- 函数名称应当独一无二,而且要保持一致。
11. 别用双关语
12. 使用解决方案领域名称
- 记住,只有程序员才会读你的代码,所以,尽管用计算机科学术语、算法名、模式名、数学术语。
- 依据问题所涉领域来名称是不可取的,因为不该让协作者老是问客户每个名称的含义。
- 对于熟悉房问题模式的程序员来说,名称AccountVisitor富有意义。
- 给这些事取个技术性的名称,通常是最靠谱的做法。
13. 使用源自所涉问题领域的名称
14. 添加有意义的语境
- 你需要用良好的命名的累、函数或名称空间来放置名称,给读者提供语境,如果没这么做,给名称添加前缀就是最后一招了。
- 设想有名为firstName、lastName、street、houseNumber、city、state和zipcode的变量,当它们搁一块的时候,明确构成了一个地址。不过假如只在某个方法看见孤零零一个state变量,就很难腿短那是地址的一部分
- 可以添加前缀来提供语境,更好的方案是创建名为Address的类。
15. 不要添加没有的语境
- 只要短名称足够清楚,就要比长名称好。别给名称添加不必要的语境。
- 对应Address类的实体来说,accountAddress和customerAdderss都是不错的名称,不过用在类名上就不太好了。Address是个好类名。如果需要与MAC地址、端口地址和Web地址相区别,会考虑使用PostalAddress、MAC和URI,这样的名称更为准确,而精准正是命名的要点。
1.有意义的命名(代码的整洁之道)相关推荐
- 3.注释(代码的整洁之道)
3.注释(代码的整洁之道) 目录 注释不能美化糟糕的代码 用代码来阐述 好注释 坏注释 注:代码的整洁之道PDF: https://pan.baidu.com/s/16PLDWPiusGjcUfW_j ...
- 2.函数(代码的整洁之道)
2.函数(代码的整洁之道) 目录 短小 只做一件事 每个函数一个抽象层次 switch语句 使用描述性的名称 函数参数 无副作用 分隔指令与询问 使用异常代替返回的错误码 别重复自己 结构化编程 如何 ...
- 四月书单--《你一年的8760小时》,《代码的整洁之道》
当你深刻的认识到自己的不足时,就会激发无限的潜能.成为一个优秀的自己.前几天和发小聊天,她告诉我,一年前想通了一件事,只和过去的自己比较.从农村来到北京的她曾经因为别人的辉煌而不自信,但是庆幸她能告诉 ...
- 《Clean Code》代码的整洁之道(一)
<代码整洁之道>:细节之中自有天地,整洁成就卓越代码 概述 软件质量,不但依赖于架构及项目管理,而且与代码质量紧密相关.这一点,无论是敏捷开发流派还是传统开发流派,都不得不承认.<代 ...
- 开课吧:分享C++代码的整洁之道!
大家好,今天分享的主题是:C++代码整洁之道. 整洁的代码在团队中无疑是很受欢迎的,可以高效的被其它成员理解和维护,本文参考<C++代码整洁之道>和<Google C++编码规范&g ...
- 架构整洁之道 pdf_代码有整洁之道,而架构同样有整洁之道
大家好!我是超级机器人 UltraBot,今天给大家一些值得阅读的开源书籍和项目. Etcd3 学习笔记 etcd 是一个分布式一致性键值存储,用于共享配置和服务发现.etcd 是 Go 编写,并使用 ...
- 前端代码的整洁之道 | 技术头条
在前端开发过程中,你有没有遇到过由于代码交互太多太重时,想改动一行代码"牵一发而动全身":使用框架很爽,可框架绑定应用却很麻烦?那么如何解决呢? 你需要"前端整洁&quo ...
- 代码整洁之道(读后感)
总论: 5S原则: 1.整理(Seiri):恰当的命名. 2.整顿(Seiton):物皆有其位,而后物尽其位.每段代码都有该在你希望它所在的地方.不在就要重构(?) 3.清楚(Seiso).无用的注释 ...
- c++ 命名规则 private_【译】代码中如何写出更有意义的命名
作为一名开发人员,在编码过程中,你总会花很多时间来思考如何正确命名.因为名称无处不在,你需要考虑文件名.类名.方法名和变量名. 虽然我们需要花费很多时间,但是为了更好的命名还是值得的.本文我将向你介绍 ...
最新文章
- 解决ScrollView嵌套ListView高度的问题
- zookeeper在搭建的时候,解决后台启动为standalone模式问题
- 解决text-overflow: ellipsis;不生效的问题
- Play! Framework 系列(二):play 的项目结构
- 前端代码规范网址导航(总结)
- leetcode37. 解数独(hashmap+回溯)
- mybatis学习笔记-04-常见错误排查
- 浅析 Go IO 的知识框架
- [CareerCup] 3.5 Implement Queue using Two Stacks 使用两个栈来实现队列
- rabbitmq可靠性投递_RabbitMQ可靠性
- ArcGIS制图技巧系列(1)还原真实的植被
- 《隐私计算》重 磅发布,全面、系统论述数据要素安全流通价值
- idea改类名快捷键_IDEA使用之快捷键(default设置)
- 【Flutter】Dart中的var、final 和 const基本使用
- 第4个HttpClient 例子,下载指定图片并保存到请定目录
- 如果直接放到pst,exchange上就没有了
- 送书 | 别泡枸杞,别晒步数!7招搞懂健康数据,有型有颜等TA来撩
- 移动光猫上插usb储存设备在终端系统中该如何设置才能共享里面的文件。新手,小白,求大神指点
- 算法学习---- 随机森林的基本原理
- 数据库是根和数据仓库是魂
热门文章
- Exchange与ADFS单点登录 PART 6:Exchange声明规则配置
- ASP.NET Core MVC 模型绑定用法及原理
- GO模仿python –m SimpleHTTPServer 8080
- GIT入门笔记(5)- 创建版本库
- hdu5831 Rikka with Parenthesis II
- **16.app后端如何保证通讯安全--url签名
- linux svn 重新定位SVN URL
- 牛客多校 - 1 or 2(一般图最大匹配)
- HDU - 5920 Ugly Problem(Java大数+贪心)
- HDU - 2825 Wireless Password(AC自动机+状压dp)