1.有意义的命名(代码的整洁之道)


目录

  1. 名副其实
  2. 避免误导
  3. 做有意义的区分
  4. 使用读的出来的名称
  5. 使用可搜索的名称
  6. 避免使用编码
  7. 避免思维映射
  8. 类名
  9. 方法名
  10. 每个概念对应一个词
  11. 别用双关语
  12. 使用解决方案领域名称
  13. 使用源自所涉问题领域的名称
  14. 添加有意义的语境
  15. 不要添加没有的语境

注:代码的整洁之道PDF: https://pan.baidu.com/s/16PLDWPiusGjcUfW_jgOm5w 密码: s708


1. 名副其实

  1. 变量、函数或类的名称应该已经答复了所有的大问题。它应该告诉你,它为什么存在,做什么事,应该怎么用。
int d; //消逝的时间,以日计
  1. 名称d什么也没说明,应该选择指明了计量对象和计量单位的名称
int elapsedTimeInDays;
int daysSinceCreation;
int daysSinceModification;
int fileAgeInDays;

2. 避免误导

  1. 提防使用不同之处较小的名称。比如XYZControllerForEfficientHandlingOfStrings和另一处的XYZControllerForEfficientStorageOfStrings.
  2. 以同样的方法拼写出同样的概念才是信息,拼写前后不一致就是误导。
  3. 别用accountList来指一组账号,除非它真的是List类型。List一词对程序员有特殊意义。如果包纳账号的容器并非是个List,就会引起错误的判断。所以,用accountGroup或bunchOfAccounts,甚至直接用accounts都会好一些。

3. 做有意义的区分

  1. 废话是没有意义的区分,假设你有一个Product类,还有一个ProductInfo或ProductData类,那么它们的名称虽然不同,意思却无区别。
  2. 废话都是冗余的,Variable一词永远不应该出现在变量名中。Table永远不应该出现在表名中。
  3. 要区分名称,就要可以鉴别不同之处的方式来区分。

4. 使用读的出来的名称

5. 使用可搜索的名称

  1. 单字母和数字常量有个问题,很难在一大篇文字中找出来。
  2. 找MAX_CLASSES_PER_STUDENT很容易,但想找数字7就麻烦了。
  3. 单字母名称仅用于短方法中的本地变量,名称的长度应与其作用域大小相对应。

6. 避免使用编码

7. 避免思维映射

  1. 不应该让看的人在脑中把你的名称翻译为他们熟知的名称。
  2. 单字母变量名就是个问题,在作用域较小、也没有冲突时,循环计数器自然有可能被命名为i或j或k,这是因为传统上惯用单字母做循环计数器。

8. 类名

  1. 类名和对象名应该是名词或名词短语,如Customer、WikiPage、Account和AddressParser。
  2. 避免使用Manager、Processor、Data和Info这样的类名。
  3. 类名不应当是动词。

9. 方法名

  1. 方法名应当是动词或动词短语,如postPayment、deletePage和save。

10. 每个概念对应一个词

  1. 给每个抽象概念选一个词,并且一以贯之。例如,使用fetch、retrieve和get来给在多个类中的同种方法命名,你怎么记得住哪个类中的那个方法呢?
  2. 函数名称应当独一无二,而且要保持一致。

11. 别用双关语

12. 使用解决方案领域名称

  1. 记住,只有程序员才会读你的代码,所以,尽管用计算机科学术语、算法名、模式名、数学术语。
  2. 依据问题所涉领域来名称是不可取的,因为不该让协作者老是问客户每个名称的含义。
  3. 对于熟悉房问题模式的程序员来说,名称AccountVisitor富有意义。
  4. 给这些事取个技术性的名称,通常是最靠谱的做法。

13. 使用源自所涉问题领域的名称

14. 添加有意义的语境

  1. 你需要用良好的命名的累、函数或名称空间来放置名称,给读者提供语境,如果没这么做,给名称添加前缀就是最后一招了。
  2. 设想有名为firstName、lastName、street、houseNumber、city、state和zipcode的变量,当它们搁一块的时候,明确构成了一个地址。不过假如只在某个方法看见孤零零一个state变量,就很难腿短那是地址的一部分
  3. 可以添加前缀来提供语境,更好的方案是创建名为Address的类。

15. 不要添加没有的语境

  1. 只要短名称足够清楚,就要比长名称好。别给名称添加不必要的语境。
  2. 对应Address类的实体来说,accountAddress和customerAdderss都是不错的名称,不过用在类名上就不太好了。Address是个好类名。如果需要与MAC地址、端口地址和Web地址相区别,会考虑使用PostalAddress、MAC和URI,这样的名称更为准确,而精准正是命名的要点。

1.有意义的命名(代码的整洁之道)相关推荐

  1. 3.注释(代码的整洁之道)

    3.注释(代码的整洁之道) 目录 注释不能美化糟糕的代码 用代码来阐述 好注释 坏注释 注:代码的整洁之道PDF: https://pan.baidu.com/s/16PLDWPiusGjcUfW_j ...

  2. 2.函数(代码的整洁之道)

    2.函数(代码的整洁之道) 目录 短小 只做一件事 每个函数一个抽象层次 switch语句 使用描述性的名称 函数参数 无副作用 分隔指令与询问 使用异常代替返回的错误码 别重复自己 结构化编程 如何 ...

  3. 四月书单--《你一年的8760小时》,《代码的整洁之道》

    当你深刻的认识到自己的不足时,就会激发无限的潜能.成为一个优秀的自己.前几天和发小聊天,她告诉我,一年前想通了一件事,只和过去的自己比较.从农村来到北京的她曾经因为别人的辉煌而不自信,但是庆幸她能告诉 ...

  4. 《Clean Code》代码的整洁之道(一)

    <代码整洁之道>:细节之中自有天地,整洁成就卓越代码 概述 软件质量,不但依赖于架构及项目管理,而且与代码质量紧密相关.这一点,无论是敏捷开发流派还是传统开发流派,都不得不承认.<代 ...

  5. 开课吧:分享C++代码的整洁之道!

    大家好,今天分享的主题是:C++代码整洁之道. 整洁的代码在团队中无疑是很受欢迎的,可以高效的被其它成员理解和维护,本文参考<C++代码整洁之道>和<Google C++编码规范&g ...

  6. 架构整洁之道 pdf_代码有整洁之道,而架构同样有整洁之道

    大家好!我是超级机器人 UltraBot,今天给大家一些值得阅读的开源书籍和项目. Etcd3 学习笔记 etcd 是一个分布式一致性键值存储,用于共享配置和服务发现.etcd 是 Go 编写,并使用 ...

  7. 前端代码的整洁之道 | 技术头条

    在前端开发过程中,你有没有遇到过由于代码交互太多太重时,想改动一行代码"牵一发而动全身":使用框架很爽,可框架绑定应用却很麻烦?那么如何解决呢? 你需要"前端整洁&quo ...

  8. 代码整洁之道(读后感)

    总论: 5S原则: 1.整理(Seiri):恰当的命名. 2.整顿(Seiton):物皆有其位,而后物尽其位.每段代码都有该在你希望它所在的地方.不在就要重构(?) 3.清楚(Seiso).无用的注释 ...

  9. c++ 命名规则 private_【译】代码中如何写出更有意义的命名

    作为一名开发人员,在编码过程中,你总会花很多时间来思考如何正确命名.因为名称无处不在,你需要考虑文件名.类名.方法名和变量名. 虽然我们需要花费很多时间,但是为了更好的命名还是值得的.本文我将向你介绍 ...

最新文章

  1. 解决ScrollView嵌套ListView高度的问题
  2. zookeeper在搭建的时候,解决后台启动为standalone模式问题
  3. 解决text-overflow: ellipsis;不生效的问题
  4. Play! Framework 系列(二):play 的项目结构
  5. 前端代码规范网址导航(总结)
  6. leetcode37. 解数独(hashmap+回溯)
  7. mybatis学习笔记-04-常见错误排查
  8. 浅析 Go IO 的知识框架
  9. [CareerCup] 3.5 Implement Queue using Two Stacks 使用两个栈来实现队列
  10. rabbitmq可靠性投递_RabbitMQ可靠性
  11. ArcGIS制图技巧系列(1)还原真实的植被
  12. 《隐私计算》重 磅发布,全面、系统论述数据要素安全流通价值
  13. idea改类名快捷键_IDEA使用之快捷键(default设置)
  14. 【Flutter】Dart中的var、final 和 const基本使用
  15. 第4个HttpClient 例子,下载指定图片并保存到请定目录
  16. 如果直接放到pst,exchange上就没有了
  17. 送书 | 别泡枸杞,别晒步数!7招搞懂健康数据,有型有颜等TA来撩
  18. 移动光猫上插usb储存设备在终端系统中该如何设置才能共享里面的文件。新手,小白,求大神指点
  19. 算法学习---- 随机森林的基本原理
  20. 数据库是根和数据仓库是魂

热门文章

  1. Exchange与ADFS单点登录 PART 6:Exchange声明规则配置
  2. ASP.NET Core MVC 模型绑定用法及原理
  3. GO模仿python –m SimpleHTTPServer 8080
  4. GIT入门笔记(5)- 创建版本库
  5. hdu5831 Rikka with Parenthesis II
  6. **16.app后端如何保证通讯安全--url签名
  7. linux svn 重新定位SVN URL
  8. 牛客多校 - 1 or 2(一般图最大匹配)
  9. HDU - 5920 Ugly Problem(Java大数+贪心)
  10. HDU - 2825 Wireless Password(AC自动机+状压dp)