zoukankan      html  css  js  c++  java
  • 《Code Complete》ch.11 变量名的力量

    What?

      如何给变量命名

    Why?

    1. 易读(你三个月前的代码=别人的代码),易记,恰如其分
    2. 整齐的命名具有美感,强迫症患者居家旅行杀人放火之必备

    How?

    以问题为导向

      好名字反映的是问题(what),并非解决方案(how)。名字不应体现计算细节

    • // good
      Object studentData;
      int sum;
      // bad
      Object inputData;
      int calcValue;

    控制变量名长度

    • 合适的变量名长度为10~16个字符
    • 较长的名字适用于少用到的全局变量,较短的名字适用于局部变量、循环变量
    • 计算限定词total, sum, average, max, min, count, index等需要加到变量名最后
      int revenueTotal, expenseAverage, expenseTotal;
      int studentCount, studentIndex;

    合理使用对仗词

    • begin/end
    • first/last
    • locked/unlocked
    • min/max
    • next/previous
    • old/new
    • opened/closed
    • visible/invisible
    • source/target
    • source/destination
    • up/down

    循环变量

    • 循环内用简单的i, j, k, l,不要在循环外使用这些作为变量名,因为它们已经太深入人心了
    • 嵌套循环,需要明确变量名
    • 循环外用到的循环变量,需要需要明确变量名

    状态变量、标志位

    • 避免使用flag、status这些不具备明确意义的名字
    • 使用paid、approved这些可以直接读懂的更好

    临时变量

    • 别用temp、tmp,要使用有明确意义的

    布尔变量

    • good:done、found、error、success、fileAvailable
    • bad:isDone、isFound,is是多余的
    • bad:done/undone、success/fail,可以用一个变量解决的问题不必再额外增加一个(!done、!success)

    枚举类型

    • 要体现出自己是一个枚举组中的一员,如Color.Black、Color.White
      public Enum Color {
          Black,
          White
      }
      Color black = Color.Black;

     常量

    • 大写字母,下划线分隔。除此之外不应在变量名中出现下划线

    关于缩写

    • 去掉所有的非前置元音,如computer->cmptr、screen->scrn、integer->intgr
    • 去掉虚词and、or、the
    • 使用每个单词的第一个或前几个字母
    • 统一在每个单词的第一/第二/第三个字母处截断
    • 去除无用后缀,如ed、ing
    • 反复缩减直到长度控制在20字符
    • bad:b4、hilite
    • bad:myVar
    • 缩写要一致,一次使用终身使用

    Bad Manners

    • 变量名中使用数字,如file1、file2
    • 拼错单词
    • 仅仅靠大小写来区分
    • 中英混杂
  • 相关阅读:
    根据数组对象中的某个属性值排序
    vue小知识
    vue项目中config文件中的 index.js 配置
    小问题
    原生无缝轮播
    webpack打包提交代码
    echarts
    面试问题
    MySql
    vue-router 跳转原理
  • 原文地址:https://www.cnblogs.com/maozhige/p/3782642.html
Copyright © 2011-2022 走看看