美文网首页
代码命名之要

代码命名之要

作者: RobertY | 来源:发表于2017-10-28 13:43 被阅读44次

每一个程序员都想写出一段整洁而富有艺术感的代码,让写代码从枯燥乏味的过程转化为可欣赏的艺术品。与世上其他很多事情相似,代码整洁之道也一样贵在细节。而代码细节最重要的一个体现方面是代码命名的规范与注意事项。

代码中,随处可见命名。变量,函数,参数,类,封装包,目录,jar文件,war文件,ear文件等都需要精确化命名。下面讨论一下代码命名注意事项:

名副其实

代码中的命名合理化需要名副其实,最让读者头疼的那些诸如“int d; List list1;”等这样的命名方式,这些名称表达的不是代码的精简度,而是模糊度,其所代表的意义并未明确体现出来。名副其实的命名方式,变量/函数/类的名称应该就已经答复了其所代表的相关事项:例如,它为什么会存在,它做什么事,应该怎么用等此类问题。如果名称需要额外的注释来补充,那就不算名副其实。

避免误导

程序员应该避免掩藏代码本意的错误线索

  1. 错误地使用一些约定俗成与本意相悖的词容易误导读者。例如,使用"String[] accountList"来表达一组帐号,accountList容易让读者误认为是一个List数据类型;
  2. 在代码不同区域使用外形相似的两个不同的变量名容易误导读者,例如:XYZControllerForEfficientHandingOfStrings和另一处的XYZControllerForEfficientStorageOfStrings。
  3. 变量名拼写前后不一致,不同的局部变量,但中系统中表达的意思确是一样的。此时需要保持变量命名的一致性,增强读者理解容易度。
  4. 应用小写l和大写O作为变量名,尤其是中组合中单独使用,他们看起来更像“一”和“零”。

做有意义的区分

有时,为了区分概念相近但却不同的变量时,很多时候我们可能会随便修改其中一个变量让编译器识别它们的不同。导致的结果就是,以错误的拼写方式命名,或者随手添加一些数字或字母等没有明确意义的字符。我们把这些额外添加的符号看成废话,这些额外的符号丝毫不能说明变量之间有说明区别。例如,zork和theZork具体的区别到底是什么?又例如,nameString一定会比name好么?难道name还有可能是浮点数不成?这里的nameString中的String即可认为是废话。

要区分名称,就要以读者能鉴别不同之处的方式来区分。

使用读得出来的名称

很多朋友会用缩写方式命名,此时我们需要注意能让变量名称可以读出来。例如,程序里有个genymdhms(生成日期,年/月/日/时/分/秒),请问这个名称怎么读?

使用可搜索的名称

单字母和数字常量有个问题,很难中大片代码中搜索出来。因此,长名胜过短名,不过前提是长名中不要用没有任何意义的废话。这样反而让程度不够精简。

避免使用编码

程序中最好不要自己约定代码习惯,例如,自己中系统中规定类成员变量前统一加一个前缀等这样方式。当你的代码规模较大,要统一所有人按照你的编码习惯难度很大,一旦这个习惯被打破,那之前添加的那些前缀便衍生为废话了。

类名

类名和对象名应该是名词,避免使用Manager,Processer,Data或Info这样没有具体化实际意义的类名。

方法名

方法名应当是一个动词短语。

别用双关语

避免将统一单词用于不同目的的场合。同一术语用于不同概念,就是双关语了。例如,有些方法是实现添加操作,会用add,而另外一些方法是插入,则最好用insert,如果是末尾添加元素,最好用append。如果这里所有的情况都用add,就体现不出这些方法操作上的细小区别了。

添加有意义的语境词汇

很命名中不同地方表达相似概念,如何区分不同的概念?一个有效的方法是添加命名的语境词汇,可以通过添加前缀方式,例如addrFirstName, addrLastName, addrState等。但此时的语境词汇需要明确表达其中的意义,不能添加一些看出来意义的废话语境。

总结

本文总结于《代码整洁之道》,代码命名最重要的是:有意义+简洁。

相关文章

  • 代码命名之要

    每一个程序员都想写出一段整洁而富有艺术感的代码,让写代码从枯燥乏味的过程转化为可欣赏的艺术品。与世上其他很多事情相...

  • Cocoa代码风格指南之命名规范(一)

    Cocoa代码风格指南之命名规范(一) Cocoa代码风格指南之排版规范(二) Cocoa代码风格指南之注释规范(...

  • Cocoa代码风格指南之使用规范(四)

    Cocoa代码风格指南之命名规范(一) Cocoa代码风格指南之排版规范(二) Cocoa代码风格指南之注释规范(...

  • Cocoa代码风格指南之注释规范(三)

    Cocoa代码风格指南之命名规范(一) Cocoa代码风格指南之排版规范(二) Cocoa代码风格指南之注释规范(...

  • Cocoa代码风格指南之排版规范(二)

    Cocoa代码风格指南之命名规范(一) Cocoa代码风格指南之排版规范(二) Cocoa代码风格指南之注释规范(...

  • Cocoa代码风格规范(推荐)

    Cocoa代码风格指南之命名规范(一)Cocoa代码风格指南之排版规范(二)Cocoa代码风格指南之注释规范(三)...

  • 《Clean Code代码整洁之道》第二章 有意义的命名(上)

    软件中随处可见命名 ,我们给变量、函数、参数、类和封包命名。我们给源代码及源代码所在的目录命名,既然有这么多命名要...

  • AMD_CMD_RequireJS

    1、为什么要使用模块化? 解决命名冲突,当代码量很大的时候很容易有命名冲突。 实现依赖管理,代码量很大时候,代码之...

  • Android开发中的优化方案

    一、命名规范 代码规范先从命名规范开始,Android的命名规范主要涉及:Java源代码,xml文件,图片资源。 ...

  • iOS编码规范

    目录 核心原则 命名 文件命名 视图命名 方法命名 变量命名 图片命名 代码格式 空格 函数的书写 函数调用 协议...

网友评论

      本文标题:代码命名之要

      本文链接:https://www.haomeiwen.com/subject/wftspxtx.html