zoukankan      html  css  js  c++  java
  • <<代码大全>>阅读笔记之二 变量名的力量

    1.变量命名的注意事项

    1)可理解性

    变量要望文知义,看到这个变量不用看其他的代码就知道这个变量表示什么意思

    好的变量命:currentDate, heartRate

    糟糕的变量名:newButton, peopleCnt


    2)可读性

    变量不仅要可理解,还要容易读,要是变量像这样:numberOfShitsInChinaMansFootballNationalTeam,太长了,会疯掉的

    研究发现,变量名的长度在8~20各字符的长度时是易于调试的,因此上面的变量可以改为numShitsInTeam, 在可理解性和可读性之间做一个平衡


    2.变量命对作用域的影响

    短的变量名也不一定不好,像for i in healthInfos:,i代表一个临时的数据,作用域仅限制在这个for循环里面

    研究表明:较长的名字适用于很少用到的变量或全局变量,而较短的名字适用于局部变量或者循环变量。

    不过,短的变量命常常会带来一些麻烦,因此,作为一项防御式编程策略,应尽量避免使用短的变量名


    3.变量名中的计算值限定词

    代码里经常会出现表示计算结果的变量,总额、平均值、最大值、最小值等,要用total,average,max,min等限定词,那么请记住把限定词加在名字的最后。

    这种方式的优点在于:


    1)突出主要含义

    对于revenueAverage,阅读者第一眼看到的是revenue,就知道这个变量表示的是收益;如果用averageRevenue,阅读者第一眼看到的是average,只知道这是平均值,是什么的平均值呢?不知道!这是因为在averagerevenue里面,revenue是主体,表示主要含义,average只是修饰词,因此把主体放在前面,更有利于理解


    2)增加一致性

    如果之后还有类似的变量revenueTotal, revenueMax, revenueMinexpenseTotal, expenseMax,就会显得很工整


    4.为特定类型的数据命名

    1)为for循环中的变量命名

    对于python的for循环,不要使用i,info等不表示具体含义的临时变量,因为这样阅读者无法根据变量名猜测变量的意义

    好的示例:for health_info in health_infos

    糟糕的示例:for i in health_infos

    其中health_infos表示一个存储用户健康数据的数组,for health_info in health_infos阅读者一眼就能看出来health_info代表某一个用户的健康数据


    2)为状态变量命名

    不要使用单纯的flag来命名状态变量


    CHECKLIST

    1)变量名完整并准确地表达了变量所代表的含义吗?

    2)变量名反映了现实世界的问题而不是编程语言方案吗?

    3)变量名是否过长?

    4)如果有计算限定词,它被放到变量名的后面了吗?

    5)for循环中的变量名能表示具体含义吗?

    6)命名规则能够区分局部数据、类的数据和全局数据吗?

    7)所有单词的缩写方式一致吗?

  • 相关阅读:
    elasticsearch restful api 关于PUT与POST
    elasticsearch关于 PUT /index/type/id
    Windows性能计数器相关基础(一)
    打了断点但VS2010断点无效
    使程序以管理员权限运行(C++)
    CListCtrl控件使用方法总结 --很详细(一)
    AdjustTokenPrivileges(进程权限)
    四种方法实现VC枚举系统当前进程
    MFC个人笔记--创建属性表,并通过文件操作,保存属性表中用户的选择 的步骤
    学习笔记--MFC在滚动条窗口如何使所图的图形不产生偏移
  • 原文地址:https://www.cnblogs.com/zzliu/p/11965655.html
Copyright © 2011-2022 走看看