手机版

给每个程序员的20个代码命名技巧

时间:2021-09-09 来源:互联网 编辑:宝哥软件园 浏览:

代码中的任何地方都需要命名。作为程序员,我们必须命名类、变量、函数、参数、名称空间等等。这里有20个小技巧可以帮助你提高命名能力。

1.用一个能表达你意图的名字

这个名字必须告诉我们它是做什么的,它为什么存在,它是如何工作的。选择一个能表达意图的名字,有助于我们更好地理解代码。

int d;//在elapsedTimeInDays中经过的天数;int daysSinceCreationint daysSinceModificationint fileAgeInDays在上面的片段中,我们只能从注释中知道变量d指的是什么。因此,为了知道它的含义,阅读代码的人必须寻找它的实例来获得线索。因此,如果我们能很好地命名这个变量,阅读代码的人就能瞬间知道这个变量的含义。

2.不要害怕花时间选择名字。你应该尝试几种不同的名字,直到它们足以描述它们的含义。不要害怕花时间在他们身上。将来阅读你的代码的人(包括你自己)将从中受益。此外,一个描述性的名字甚至可以帮助你在头脑中澄清模块的设计。好的命名确实需要时间,但从长远来看,利大于弊。

3.重构名字如果你在后面的开发过程中想到了更好的名字,不要犹豫,马上改。今天的集成开发环境使得重建名字变得极其容易。

4.避免干扰词,如管理器、处理器、数据、信息和“我不知道这叫什么”的同义词,这些都是干扰词。如果你需要使用这些干扰词,那么你的命名可能太麻烦了。

5.小心难以命名的类/函数。难以命名的类或函数可能是一种代码味道。这表明:

代码做得太多了。代码做得不够。你对这个问题理解不够透彻,需要先获取更多的信息。6.类名类应该有一个名词或名词短语的名称,如客户、维基页面、帐户和地址解析器。继承的父类应该有一个简短而有影响力的名字。子类的名称应该更长,它与父类的区别在于形容词,比如从Account派生的SavingsAccount。

7.变量名变量名也应该是名词。大部分都是从它们所指向的类中派生出来的。布尔变量应该以谓词的形式编写,例如isEmpty和isTerminated,这样当它们被放入if语句中时就可以很容易地被理解。

8.方法名方法名应该是动词或动词短语,例如postPayment()、deletePage()和save()。访问器和调节器应该分别以get和set作为前缀。返回布尔值的方法应该以“is”为前缀,例如isPostable(),这样在if语句中就很容易理解了。

9.变量名的范围大小和长度变量名的长度应该与其范围大小相匹配。如果变量的范围很短,变量名的长度也应该很短。相反,变量名应该更长,更具描述性。

10.范围的大小和方法/类名的长度应该与方法和类名的范围成反比。对于公共方法,更短的名字更好,因为它们被调用了很多次。私有方法只在类的范围内调用,更长的名称可以用作文档。此规则的例外是派生类的名称。派生的类越多,在基类前添加的形容词就越多,名字也就越长。

11.一个概念一个词为一个抽象的概念选择一个词,然后不要改变它。例如,作为不同类中的等效方法,get()、fetch()和retrieve()可能会令人困惑。保持一致的词汇是程序员掌握代码的重要工具。

12.两个不同的概念不要用同一个词。如果你遵循第11.——点中的“一个概念,一个单词”的原则,你可以避免许多具有相同方法名的类。只要参数列表和各种方法的返回值在语义上是等价的,就没有问题。只有当你在两个不同的概念中使用同一个词时,问题才会出现。

例如,我们可以在多个类中使用add()方法,通过添加或连接两个现有值来创建一个新值。如果我们以后需要在类中引入一个add方法来向集合中添加参数,那么会因为语义不同而导致问题。这种新方法最好重命名为insert()。

13.使用解决方案域的名称,我们编写的代码将来可能会被其他程序员读取,所以使用一些技术术语来命名代码会给我们带来很大的好处。例如,算法名称、设计模式名称和数学术语的正确使用可能会使其他程序员更容易理解程序并产生共鸣。

14.使用问题域的名称。如果找不到通俗易懂的技术术语来命名,也可以从问题域中找到合适的代码名称。当未来阅读你的代码的程序员不确定代码的意义时,这将为他们提供一些线索。

15.添加有意义的上下文大多数名称本身没有意义,需要放入上下文(类/函数/命名空间)中,这样代码读者就可以理解它们所指的内容。在某些情况下,可能需要前缀名称来补充上下文。例如,假设我们有一些变量来表示地址:名字、姓氏、街道、门牌号、城市、州和邮政编码。如果只看变量状态,很难推断出它的含义。更好的解决方案是将这些变量封装在Address类中。

16.不要添加不必要的上下文。只要意思清楚,短一点的名字通常比长一点的好,所以不要以任何方式添加上下文。该名称不应带有可以从类/包/命名空间推断出的不必要信息的前缀。

17.避免编码鉴于现在IDE的强大,我们不再需要将类型和范围信息编码到变量名和类名中。这包括不必向接口添加I,因为使用代码的用户不需要知道他们的类正在传递给接口。所以如果一定要用编码的话,最好是编码实现而不是接口。

18.避免错误信息不要给出一些错误的信息,因为这会误导阅读代码的人。如果将一个实际支持数组的变量命名为accountList,人们很容易得出错误的结论。

19.名字不可读的编程是一种社交活动,使用那些不可读的名字只会阻碍我们的讨论。

20.使用易于搜索的名称和使用简短通用的名称将阻止我们在代码库中搜索东西。这对我们的代码操作和重构有很大的影响。

最后,如有不同意见,欢迎不吝赐教。

翻译链接:http://www.codeceo.com/article/20-naming-tips-programmer-know.html原文英文:更好命名的20个小技巧翻译作者:Codenong。com-晓峰。

版权声明:给每个程序员的20个代码命名技巧是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。

相关文章推荐