作者:何新宇
链接:https://www.zhihu.com/question/21440067/answer/24522844
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

不同的代码段采用不同的命名长度。通常来说,循环计数器(loop counters)采用1位的单字符来命名,循环判断变量(condition/loop variables)采用1个单词来命名,方法采用1-2个单词命名,类采用2-3个单词命名,全局变量采用3-4个单词命名。对变量采用具体的命名(specific names)方式,”value”, “equals”, “data”在任何情况下都不是一种有效的命名方式。采用有意义的命名(meaningful names)。变量的名字必须准确反映它的含义和内容。不要用 o_, obj_, m_ 等前缀命名。变量不需要前缀标签来表示自己是一个变量。遵循公司的变量命名规则,在项目中坚持使用同一种变量命名方式。例如txtUserName, lblUserName, cmbSchoolType等,否则会对可读性造成影响,而且会令查找/替换工具(find/replace tools)不可用。遵循当前语言的变量命名规则,不要不统一(inconsistently)地使用大/小写字母。例如:userName, UserName, USER_NAME, m_userName, username, …。
以Java为例:
* 类名使用驼峰命名法(Camel Case):VelocityResponseWriter
* 包名使用小写:com.company.project.ui
* 变量使用首字母小写的驼峰命名法(Mixed Case):studentName
* 常量使用大写:MAX_PARAMETER_COUNT = 100
* 枚举类(enum class)采用驼峰命名法,枚举值(enum values)采用大写。
* 除了常量和枚举值以外,不要使用下划线’_’在同一个类不同的场景(contexts)中不要复用变量名。例如在方法、初始化方法和类中。这样做可以提高可读性和可维护性。不要对不同使用目的的变量使用同一个变量名,而是赋予它们不同的名字。这同样对保持可读性和可维护性很重要。变量名不要使用非ASCII字符(non-ASCII chars)。这样做可能会在跨平台使用时产生问题。不要使用过长的变量名(例如50个字符)。过长的变量名会导致代码丑陋(ugly)和难以阅读(hard-to-read),还可能因为字符限制在某些编译器上存在兼容性问题。仅使用一种自然语言(natural language)来命名变量。例如,同时使用德语和英语来命名变量会导致(理解)不一致和降低可读性。使用有意义的方法名。方法名必须准确表达该方法的行为,在多数情况下以动词(verb)开头。(例如:createPasswordHash)遵循公司的方法命名规则,在项目中坚持使用同一种方法命名方式。例如 getTxtUserName(), getLblUserName(), isStudentApproved(),否则会对可读性造成影响,而且会令查找/替换工具不可用。遵循当前语言的变量命名规则,不要不统一地使用大/小写字母。例如:getUserName, GetUserName, getusername, …。
以Java为例:
* 方法使用首字母小写的驼峰命名法:getStudentSchoolType
* 方法参数使用首字母小写的驼峰命名法:setSchoolName(String schoolName)使用有意义的方法参数命名,这样做可以在没有文档的情况下尽量做到“自解释(documentate itself)”

如何优雅地为程序中的变量和函数命名相关推荐

  1. MATLAB程序中使用变量获取到某代码段的运行时间

    ** 在实时仿真过程中,需要实时获取到某段程序的运行时间,以便根据时间变化来调整对象的变化参数. 比如GPSR路由协议应用于车联网时,在模拟交通场景时需要实时根据程序运行时间和节点速度更改节点的位置信 ...

  2. 如何给程序中的变量起个好名字?

    作者丨Daan 译者丨王文刚 策划丨万佳 对一个人来说,名字很重要,俗语说"人如其名".对程序中的变量而言,名字同样非常重要. 作为开发人员,你要花费大量的敲代码时间来创建变量和考 ...

  3. python 函数变量_Python函数中的变量和函数返回值

    1.函数的变量 局部变量和全局变量: Python中的任何变量都有特定的作用域 在函数中定义的变量一般只能在该函数内部使用,这些只能在程序的特定部分使用的变量我们称之为局部变量 在一个文件顶部定义的变 ...

  4. Python函数中的变量和函数返回值

    1.函数的变量 局部变量和全局变量: Python中的任何变量都有特定的作用域 在函数中定义的变量一般只能在该函数内部使用,这些只能在程序的特定部分使用的变量我们称之为局部变量 在一个文件顶部定义的变 ...

  5. python命名规则数字开头的成语_浅谈Python中带_的变量或函数命名

    搜索热词 Python 的代码风格由 PEP 8 描述.这个文档描述了 Python 编程风格的方方面面.在遵守这个文档的条件下,不同程序员编写的 Python 代码可以保持最大程度的相似风格.这样就 ...

  6. JavaScript常见变量和函数命名示例

    JavaScript作为前端开发从业人员必须掌握的3大基础知识中最重要的一环,也是平是接触时间最长.写得最多的.在开发过程中必然会遇到命名的问题,你会词穷.纠结.惆怅吗?本文的出现相信能够解决大部分烦 ...

  7. spark 获取广播变量_Spark流式程序中广播变量和累加器为何使用单例模式

    Spark中广播变量详解以及如何动态更新广播变量​mp.weixin.qq.com 1.广播变量是只读的,使用单例模式可以减少Spark流式程序中每次job生成执行,频繁创建广播变量带来的开销 2. ...

  8. java程序中的变量_Java中的变量

    实例变量的作用域与对应实例的生存范围相同,而类属性的作用域与这个类的生存范围相同.成员变量无须显式初始化,系统会默认初始化. 与成员变量不同的是,局部变量除了形参之外,不必须显式初始化,否则不可以访问 ...

  9. c语言c++语言中静态变量,函数详解

    静态变量,静态函数对于一些c,c++的初学者来说,造成了不少的困扰.昨晚和寝室的室友讨论到这 个问题,想了一下,作了一下总结: 虽然说c和c++在很多人的眼里就是孪生姐妹,其实还是有很大区别的.在这里 ...

最新文章

  1. JavaScript_下_Dom
  2. libcublas.so: cannot open shared object file
  3. quartus2管教锁定出不来_Quartus II 中常见Warning 原因及解决方法(转载)
  4. mysql 恢复 二进制,mysql通过二进制日志恢复数据库
  5. waf可以检测哪个端口的流量_锐速云:CC防御过程中,WAF的主要特点有哪些?
  6. 2010.7.29 模式对话框
  7. 资源 ACCP-S1 BOOK3开发工具的下载
  8. Python实现单向循环链表
  9. 7-192 素因子分解 (20 分)
  10. 基础02Random类、ArrayList类
  11. java.io.NotSerializableException: org.apache.kafka.clients.consumer.ConsumerRecord
  12. ADSL拨号代理-构建IP代理池
  13. 六度分割理论和SNS
  14. js找出最长单词_js获取字符串中最长单词长度的3种方法
  15. 无人驾驶实践进阶——定位
  16. android 一个比较好的CoolRefreshView 上啦下拉刷新
  17. 初等函数的麦克劳林级数展开+逆函数的展开求法
  18. CSS 控制边框样式
  19. html中的input文本框禁止输入问题
  20. 如何注册可以群发邮件的邮箱?群发邮件怎么发送呢?

热门文章

  1. boost::mpi模块对gather() 和gatherv() 集合的测试
  2. boost::mp11::mp_replace_if_q相关用法的测试程序
  3. boost::sloan_ordering用法的测试程序
  4. boost::graph模块实现bfs算法的测试程序
  5. boost::fusion::at_c用法的测试程序
  6. boost::coroutine2模块实现layout的测试程序
  7. GDCM:扫描包含DICOM文件的目录的测试程序
  8. GDCM:DICOM文件转储ADAC文件的测试程序
  9. VTK:PolyData之MultiBlockMergeFilter
  10. 为Qt Designer创建自定义Widgets小部件