summerflowerying / blog-summer

热爱生活 带着翠花看日出
0 stars 0 forks source link

代码大全读书笔记 #60

Open summerflowerying opened 5 years ago

summerflowerying commented 5 years ago

代码大全

第十一章 变量名的力量

11.1 选择好变量名的注意事项

  1. 最适当的变量长度 : 当变量的长度在8-20字符时, 调试程序耗时更少
  2. 变量名对作用域的影响 较短的名字适用于局部变量和循环变量
  3. 变量名的计算限定词

    1.为变量赋予主要意义的部分应位于最前面, 可以最先被阅读到 如revenueTotal(总收入), expenseTotal(总支出), expenseAverage(平均支出), 而不是totalExpense这样的命名 2.把计算的量放在名字最后这条也有例外, 就是num限定词的位置是约定俗成的, num放在变量名的开始位置代表一个总数, numCustomer表示员工的总数; num放在变量名的结束位置代表一个下标, customerNum表示员工的序号,但这种方式会有误解, 所以更建议使用count表述数量

    • 如customerCount就代表员工总数, customerIndex代表某个特定的员工.
  4. 变量名中的常用对仗词

    max / min begin / end first / last next / previous up / down

11.2 为特定类型的数据命名

  1. 为状态变量命名 为状态变量取一个比flag更好的名字, 标记的名字中不应该含有flag; 含义模糊的标记如printFLAG = 16, 含义清晰的标记reportType = ReportType_Annual;
  2. 为布尔变量命名

    • done : 用done表示某件事情已经完成, 这一变量可用于表示循环结束或一些其他的操作已完成; 在事情完成之前把done设为false, 在事情完成之后done设为true.
    • erroe : 用error表示有错误发生, 在错误发生之前把变量设为false, 在错误已经发生时把它设为true.
    • found : 用found表明某个值已经找到, 在没有找到该值的时候把found设为false, 一旦找到该false设为true. 如在一个数组中找某个值
    • success : 用success表明某个操作是否成功, 失败时为false, 成功为true. 建议用更具体的名字代替success, 如processingComplete来代替. 给布尔变量赋予隐含'真假'含义的名字 像done和success就是不错的布尔变量名, 为了更好效果, 应该把status替换为类似statusOK这样的名字, 同时把sourceFile替换为sourceFileAvailable, sourceFileFound, 既能体现该变量所代表含义的名字 ;

    有些人喜欢在布尔变量名前加is, 如isError, 问题是不能用于哪些模糊不清的名字: isStatus? 这毫无意义, 缺点是降低了简单逻辑表达式的可读性,if(isFound)的可读性要略差于if(found); 使用肯定的布尔变量名 否定的名字如notFound较难阅读, 特别是当他们被求反if not notFound, 这样的名字应该替换为found, done, 那么就可以用found而不必写双重否定的not notFound.

11.4 语言相关的命名规则的指导原则

区分类和对象 : 通过大写字母开头区分类型和变量, 如Widget widget;

  1. java的规则 : java语言的风格规定一开始就创建好了
    • i和j是整数下表,
    • 常量全部大写 (ALL_CAPS) 并用下划线分割
    • 类名和接口名中的每一个单词的首字母均大写, 包括第一个单词, 如ClassOrInterfaceName.
    • 变量名和方法名的第一个单词的首字母小写, 后续单词的首字母大写, 如variableOrRoutineName.
    • 除用于全部大写的名字之外, 不使用下划线作为名字中的分隔符
    • 访问器子程序使用get和set前缀

11.6创建具备可读性的短名字

  1. 编写的一般指导原则
    • 使用标准的缩写(列在字典中的常见缩写)
    • 去掉所有非前置元音, (computer变成comtr, screen变成scrn, apple变成appl, integer变intgr)
    • 去掉虚词and or, the等
    • 使用每个单词的第一个或前几个字母
    • 保留每个单词的首字母和尾字母
    • 去掉无用的后缀 ing, end等
    • 反复使用上述技术, 直到把变量名的长度缩减到8-20个字符