美文网首页
第二章 有意义的命名

第二章 有意义的命名

作者: oliversmallgan | 来源:发表于2016-12-14 20:18 被阅读10次

2.2 名副其实

  1. 在代码中体现上下文的语境,能够知道这段代码想干什么;

2.3 避免误导

  1. 避免留下隐藏代码本意的线索;
  2. 提防使用不同之处较小的名称;
  3. 以同样的方式书写同样的概念才是信息;

2.4 做有意义的区分

  1. 在变量后面添加数字来做区分和说废话没有任何区别;
  2. 废话永远都是冗余,Variable一词永远不应当出现在变量中,而Table一词永远不要出现表名中;
  3. 要区别名称,就要以读者能鉴别不同之处的方式来做区分;

2.5 使用读得出来的名称

2.6 使用搜索得出来的名称

  1. 单字母名称仅用于短方法中的本地变量。
  2. 名称长短应与其作用域大小相对应。
  3. 若变量或常量可能在代码多处使用,则应赋其以便于搜索得名称。

2.7 避免使用编码

  1. 将类型和作用域带进名称里面,增加了解码的负担;
  2. 匈牙利标记法,成员前缀或后缀,接口和实现;

2.8 避免思维映射

  1. 不应让读者把你的名称翻译为他们脑中熟知的名称;
  2. 专业程序员了解,明确才是王道;

2.9 类名

说明:类名和对象名应该是名词或者名词短语,避免使用Manager、Data、Info这样的名称,不使用动词。

2.10 方法名

说明:方法名使用动词或动词短语,重载构造器时,使用带参数的静态工厂方法名。

2.11 别扮可爱

2.12 每个概念对应一个词

说明:给每个抽象概念选一个词,并一以贯之,明确对概念的一致认识有助于迅速找到正确的名称。

2.13 避免使用双关语

  1. 避免将同一单词用于不同目的;
  2. 代码作者应尽量写出易于理解的单词

2.14 使用解决方案领域名称

说明:多使用专业的术语,因为毕竟只有程序员才会看你的代码,给某些事取一个技术性的名字,是最靠谱的做法。

2.15 使用源自问题领域的名称

说明:优秀的程序员和设计师,其工作之一就是分离解决方案领域和问题领域的问题。

2.16 添加有意义的语境

  1. 你需要有良好的类、函数或名称空间来放置名称,为读者提供上下文的语法;
  2. 算法能够通过分解为更小的函数使语境增强,从而显得干净利落;

2.17 不要添加没有必要的语境

说明:只要短名称足够清楚,就要比长名称好,别给名称添加不必要的语境。

2.18 最后的话

说明:取好名字最难的地方在于需要良好的描述技巧和工友的文化背景。

相关文章

  • Clean Code Notes(代码规范)

    [TOC] Clean Code Notes 1_命名 1.1_命名要点 有意义的命名 有意义的区分 有意义命名部...

  • 《代码整洁之道》 [(美国)马丁] ——(读书笔记(持续更新)

    第二章:做有意义的命名 —(2017-08-03日) 1.名副其实:选个好的命名,见名知意,变量,或函数,或类冯名...

  • 第二章 有意义的命名

    避免误导 例如: 不要用accountList来指定一组账号,除非它真的是List类型,可以使用accounts或...

  • 第二章 有意义的命名

    2.2 名副其实 在代码中体现上下文的语境,能够知道这段代码想干什么; 2.3 避免误导 避免留下隐藏代码本意的线...

  • java编码规范(更新中)

    编码规范 命名规范 任何包名、类名、方法名、属性等都要使用有意义的单词,有意义的命名;命名不在于长,而在于解释 包...

  • 有意义的命名

    前言 在开发过程中,给变量以及方法提供一个有意义的命名至关重要。有意义的命名对代码可读性的提升有很大帮助。一个项目...

  • 有意义的命名

    名副其实 变量名应该告诉你:他为什么会存在,他做什么事,他应该怎么用 如果名称需要注释来补充,那就不算名副其实 p...

  • 有意义的命名

    在编程过程中,命名随处可见。我们在编程过程中,应使命名名副其实。这件事很重要也很严肃,选个好的名字要花很多时间,但...

  • 有意义的命名

    当发现更合理的命名时,可以随时替换。 变量、函数和类要依义命名,好的命名可以不用补充注释就知道其用途。好命名能有效...

  • 有意义的命名

    有意义的命名 我们给变量,函数,参数,类和封包命名,我们给源代码及源代码所在目录命名,既然有这么多命名要做,不妨做...

网友评论

      本文标题:第二章 有意义的命名

      本文链接:https://www.haomeiwen.com/subject/vgxsmttx.html