代码整洁之道读书笔记----第二章---命名--第一节-名副其实(2018-07-27)

名副其实


  以JAVA为例,在对代码中的各种类,接口,变量,方法,进行命名的时候,要采用有意义的命名,禁止使用无意义的字符及字符串,如:“a","ab"。
  可能很多的人,在学习一门语言的时候,没有对这个命名有特别的关注。

这里写图片描述

随便写几个字符或者字符串去指代

  这样的方式虽然不好,但是并不是说没有优势,优势就在于:方便你个人的阅读,在代码量很少的时候,也方便暂时用此来快速的完成对一个小问题的验证。但是劣势也随之而来:一旦当代码量很大的时候,比如在一个大项目中,一旦采用这种方式,势必你的项目负责人会把你的头锤爆,写这种东西,让和你协作的其他人要花上巨多的时间去阅读,才能明白你的代码到底是如何意思。
这里写图片描述


那么如何规范自己的代码命名规则呢?

八个字”名副其实,词到意到”。
我还是简单罗列一下书中的几个观点

  1. 名副其实
      所谓名副其实,就是名字和意思要让人一目了然,不能模糊,尽可能不要缩写,除非是大家都比较认同的缩写,比如接口类名前要加个I,接口实现类名后要加个Impl,等等。千万别出现,无意义的命名,比如定义一个Car,就别搞个C出来。
      这里写图片描述
      此处是视频链接—黑人小哥搞笑版你的名字
  2. 避免误导
      比如accountList来指代一组账号,除非它是真的List类型。因为List这个单词对于程序猿有特别的含义,如果包含账号的容器并非真的是个List,就会引起错误的判读。
      这里写图片描述
  3. 不要添加没有用的语境
      这个就比如MyBigProject,然后在每个变量添加一个MBP的前缀,不觉得很多余吗?
      

接下来分享一下阿里云的java代码规范干货

这个有点多,我敲一遍,也帮我自己复习一下

  1. 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或者美元符号结束。
  2. 代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。
  3. 类名使用UpperCamelCase风格,但是一下情形例外:DO/BO/DTO/VO/AO/PO等。
  4. 方法名,参数名,成员变量,局部变量都统一使用lowerCamelCase风格,必须遵从驼峰形式。
  5. 常量命名全部大写,单词间用下划线隔开,力求语义表达清楚,不要嫌名字长
  6. 抽象类命名使用Abstract或Base开头:异常类命名使用Exception结尾,测试类命名以它要测试的类名开始,以Test结尾。
  7. 类型与中括号紧挨相连来定义数组。
  8. POJO类中布尔类型的变量,都不要加is前缀,否则部分框架解析会引起序列化的错误。
  9. 包名统一使用小写,点分隔符之间有且只有一个自然语义的英语单词,包名统一使用单数形式,但是类名如果有负数含义,类名可以使用负数形式。
  10. 杜绝完全不规范的缩写,避免望文不知意
  11. 为了达到代码自解释的目标,任何自定义编程元素在命名时,使用尽量完整的单词来表达其意。
  12. 如果模块,接口,类,方法使用了设计模式,在命名时体现出具体模式。
  13. 接口类中的方法和属性不要加任何修饰符号,保持代码的简洁性,并加上有效的javadoc注释。尽量不要在接口里定义变量,如果一定要定义变量,肯定是与接口方法相关,并且是整个应用的基础常量。
  14. 接口和实现类的命名有两套规则。
  15. 其一,对于Service和DAO类,基于SOA的理念,暴露出来的服务一定是接口,内部的实现类用Impl的后缀和接口区别。
  16. 如果是形容能力的接口名称,取对应的形容词为接口名(通常是-able的形式).
  17. 枚举类类名建议带上Enum后缀,枚举成员名称需要全大写,单词间用下划线隔开。
  18. 各层命名规约
  19. Service/DAO层命名规约
  20. 获取单个对象的方法用get做前缀。
  21. 获取多个对象的方法用list做前缀。
  22. 获取统计值的方法用count做前缀。
  23. 插入的方法用save/insert做前缀
  24. 删除的方法用remove/delete做前缀。
  25. 修改的方法用update做前缀。
  26. 领域模型命名规范
  27. 数据对象:xxxDO,xxx即为数据表名。
  28. 数据传输对象:xxxDTO,xxx为业务领域相关的名称。
  29. 展示对象:xxxVO,xxx一般为网页名称。
  30. POJO是DO/DTO/BO/VO的统称,禁止命名成xxxPOJO。

以上都是自己的感受,如果有什么不对的话...
这里写图片描述
开玩笑的,如果有什么错的,欢迎各位指正。
这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_33121481/article/details/81239665