这是Medium网站上的Better Programming博客文章的翻译。 在其中,Daan程序员共享简单的规则,之后您可以给函数和变量起好名字。
作为开发人员,您可能会花费大量时间来创建变量并提出其名称。 名称无处不在:文件,类,方法和那些相同的变量都需要名称。
由于我们花了很多时间来分配名称,因此以高质量的方式进行此操作非常重要。 在本文中,我将向您介绍一些简单的规则,然后您可以创建好名字。 毕竟,这是一门完整的艺术!
使用能表明您意图的名称
名称应指示代码的用途。 说起来容易做起来难,对吧? 您多久遇到一次变量,这些变量的名称没有说明程序员的意图?
规则是这样的:如果名称需要注释,则不会传达意图。此代码段中有一个变量,其名称尚不清楚:
<?php private $s;
$s
变量不会告诉我们任何信息,并且与时间段无关。 最好选择一个名称,该名称将指示要测量的内容和单位。
以下名称之一将更合适。
<?php private $days_since_creation; private $elapsed_time_in_seconds; private $seconds_since_last_modified;
意图名称使代码更易于理解,因此更易于维护。
您将花费时间选择正确的名称,但将来会保存它。
考虑以下示例:
<?php function getList() { $list1 = []; foreach ($this->the_list as $x) { if ($x % 2 != 0) { $list1[] = $x; } } return $list1; } function getOddNumbers() { $odd_numbers = []; foreach ($this->numbers as $number) { if (isOdd($number)) { $odd_numbers[] = $number; } } return $odd_numbers; }
为什么很难理解
getList
函数的
getList
? 没有复杂的表达式,代码已正确对齐和格式化,只有三个变量,仅此而已。
现在看一下
getOddNumbers
函数。 您是否看到她和
getList
做相同的事情?
注意,代码并没有变得更复杂或更简单。 我们保留了运算符,变量和嵌套级别的数量,但现在更加清晰透明。
名称上的一个小变化-已经很容易理解发生了什么。
避免误传
尽量避免错误的关联,以免破坏代码的用途。
请勿使用可能以与预期不同的方式理解的词。 例如,请勿
productList
产品组
productList
,除非它确实是
List
类型的对象。 这样的名称可能导致错误的结论。 最好只使用
products
。
变量的最差名称可能以大写字母
O
和小写字母
L
开头,因为这些字符与0和1非常相似。
也请谨慎使用彼此之间仅稍有不同的名称。 直到您注意到一个文件中的
SomeMethodForEfficientStorageOfFiles
与另一个文件中的
SomeMethodForEfficientStorageOfFiles
之间
SomeMethodForEfficientHandlingOfFiles
细微差异,将花费多少时间? 同意,乍一看它们是相同的。
突出有意义的差异
使用编号不是最佳的命名方式。 这些名称毫无意义,因为它们根本没有透露作者的意图。
让我们看下面的例子:
<?php public function duplicateArray($arr1, &$arr2) { foreach ($arr1 as $key => $value) { $arr2[$key] = $value; } }
如果将
$arr1
和
$arr2
重命名
$arr1
$source
和
$destination
此代码片段将更好地阅读。
使用可以发音的名称
如果您不能说出函数的名称,那么您就不可能谈论它,听起来也不是白痴。 这实际上很重要,因为讨论代码是编程的一部分。 但是,我们每个人都必须遇到名称不发音的变量。
假设您有一个名为
$xsq
的变量,并且经常与公司讨论它。 在这里,您正在与同事交谈:
-恩,这是什么?
-什么? 有访问队列?
一些开发人员会将变量名称发音为一个单词,而另一些则作为缩写。
使用可搜索的名称
单字母名称的问题在于它们很难在代码中找到。
数值常量也是一样。 最好用变量替换它们。 例如,如果您需要在代码中查找某些内容,通常的数字8可能会导致很多问题。 但是,如果用
MAX_BLOCKS_DISPLAYED
类的数字替换数字,将会更加容易。
值得使用单个字母的名称的唯一情况是在短方法内为局部变量创建名称。
类成员前缀
不要使用m_前缀。
一些开发人员习惯在类成员之前使用下划线前缀。 不要那样做 您的类和方法应该足够紧凑,以便您不需要任何这些前缀。
或者,您可以使用IDE(或安装插件),该IDE根据变量的范围突出显示变量。
将您的代码想像成森林中的野餐点-使其比到达之前更干净。
结论
这是为代码创建更易理解的名称的方式。
评论,留下您的问题,如果您想让我涵盖与编程相关的其他主题
,请写信 。
本文的灵感来自罗伯特·马丁(Robert Martin)的书《清洁代码》(Clean Code),我强烈建议阅读。