书籍网址:https://xiaomi.f.mioffice.cn/file/boxk4cZQDL5sGgXgM6ChQvTtlmf

第一章 代码应当易于理解

  • 代码的写法应当使别人理解它所需的时间最小化
    • 添加注释
    • 采用多行语句完善逻辑

      第二章 把信息装到名字里

      选择专业的词

      将名字描述更加专业:get => fetch/download
      将名字描述更加具体:size => Height/NumNodes/MemoryBytes
      send => deliver、dispatch、announce、distribute、router
      find => search、extract、locate、recover
      start => launch、create、begin、open
      make => create、set up、bulid、generate、compose、add、new

      避免泛泛的名字

      例如:tmp(临时存储)、retval(返回值)、foo(函数存储)
      tmp:只应用于短期存在且临时性为其主要存在因素的变量
      retval:用描述变量名字进行替代
      循环迭代器的i、j、iter、it…用更加确切的命名表示club_i、menber_i、user_i

      用具体的名字代替抽象的名字

      DISALLOW_EVIL_CONSTRUCTORS(不允许邪恶的创造者)=> DISALLOW_COPY_AND_ASSIGN(不允许复制和分配)
      run_locally (运行在本地)=> use_local_database(使用本地数据库)

      使用前缀或后缀来给名字附带更多信息

      为名字附带:具体描述、带单位的值、附带其重要属性

      决定名字的长度

      小作用域:短名字
      用缩略词解决名字过长问题
      丢掉没用的词

      利用名字的格式来表达含义

      用全部大写的名字代表常量
      类成员变量必须以一条下划线结尾
      构造函数 => 首字母大写
      JQuery中JQ返回结果用$开头
      Css中用_分开id的单词;用-分开class的单词

      第三章 不会误解的名字

      防止名字存在被误解的可能
      例如:filter()、Clip()等
      解决方案:min、max表示(包含)极限;first、last表示包含范围;begin、end表示包含/排除范围
      布尔值的命名:加上is、has、can或should等
      匹配使用者期望:
      get:轻量级访问
      component:重量级访问
      size():看起来很像轻量级操作时间复杂度O(n)
      countsize()/countElements():重量级操作,时间复杂度O(n)
      权衡多个备选名字:
      选择不会产生误解且描述最为清晰的变量

      第四章 审美