首页 > 代码库 > Clean Code

Clean Code

代码整洁之道

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

1. 有意义的命名

  1. 名副其实
    变量、函数或类的名称应该告诉你,它为什么会存在,它做什么事,应该怎么用,如果需要注释来补充,那就不算是名副其实。

  2. 避免误导

    • 某些系统的专有名词不要使用。
    • 堤防使用不同之处较小的名称。比如XYZControllerForEfficientHandlingOfStrings和另一处XYZControllerForEfficientStorageOfStrings,就难以区分。
    • 拼写前后不一致就是误导。
    • 不要使用误导性的名称,比如使用小写字母l和大写字母O。
  3. 做有意义的区分
    光是添加数字序列(a1,a2,……aN)或是废话(比如ProductInfo和ProductData,意思无啥区别,还不如叫Product)远远不够,应该依义命名。
    错误的示例如下:程序员很难确定该调用哪个函数。

  1. getActiveAccount();
  2. getActiveAccounts();
  3. getActiveAccountInfo();
  1. 使用读的出来的名称
    如果名称读不出来,讨论的时候就会像个傻鸟。

  2. 使用可搜索的名称
    名称长短应与其作用域大小相对应。e就是个不便于搜索的名称。

  3. 避免使用编码
    带编码的名称通常也不便发音,容易打错。

    • 匈牙利命名法:在C语言API的时代,编译器不会做类型检查,程序员需要使用这种标记法来帮助自己记住类型。Java和C#都是强类型(静态类型)的语言,在编译开始前就会进行类型检测,已经不需要这种标记法了。
    • 成员前缀:不必使用“m_”来标明成员变量。应当将类和函数做的足够小,消除对成员前缀的需要。而且现在的编辑器可以通过颜色来区分变量类型。
  4. 避免思维映射
    在作用域小时,循环计数器可能被命名为i,然后在多少情况下,单字母名称不是一个好的选择。

  5. 类名
    类名和对象名应该是名词或名词短语。

  6. 方法名
    方法名应当是动词或动词短语。属性访问器(get-)、修改器(set-)和断言(is-)应该根据其值命名。

  7. 别使用俚语

  8. 每个概念对应一个词
    给每个抽象概念选一个词,并且一以贯之。例如:fetch、retrieve和get来给多个类中的同种方法命名。
    函数名称应当独一无二,而且保持一致,这样才能不借助多余的浏览就能找到正确的方法。

  9. 别用双关语
    比如add方法,如果这些add方法的参数列表和返回值在语义上等价,就没有问题。或者需要考虑是否用insert或append之类的词来命名才对。

  10. 使用解决方案领域名称
    尽管用计算机术语、算法名、模式名、数学术语。不该让协作者老是跑去问客户每个名称的含义,他们早该通过另一名称了解这个概念了。

  11. 使用源自所涉及问题领域的名称
    优秀的程序员和设计师,工作之一就是分离解决方案领域和问题领域的概念。与所涉领域更为贴近的代码,应当采用源自领域的名称。

  12. 添加有意义的语境
    很少有名称能够自我说明的——多少都不能。需要使用良好命名的类、函数或命名空间来放在名称,提供语境。如果没这么做,最后一招——添加前缀。

  13. 不要添加没用的语境
    只要短名称足够清楚,就比长名称要好。将项目缩写作为所有方法的前缀是非常糟糕的做法。



来自为知笔记(Wiz)


Clean Code