你对良好变量命名有什么个人准则?

本文分享变量命名的准则与技巧,比如使用描述性命名、遵循规范等方法,以便编写可读性强、可维护性高的代码。
On this page

你对良好变量命名有什么个人准则?

摘录

精心选择的变量名使您的代码更易于理解和修改。本文共享了一些指南,如使用描述性名称,一致的约定,避免关键字和重构。


变量名是编写清晰易读的代码中最重要的方面之一。我们给变量赋予的名称对代码的可维护性和可理解性有着巨大的影响。在本文中,我将分享一些个人的指导原则和建议,以便给变量赋予良好的名称。

介绍

选择得当的变量名对于编写易于理解和修改的代码至关重要。有意义且一致的名称使人们能够简单地理解变量代表的含义,而不必查找其声明。另一方面,像xtempvar1这样的不好的名称会迫使开发人员每次遇到它们时都要解码这些变量的用途。

良好的变量命名需要时间,但长期来看会有巨大的回报。研究发现,开发人员花费超过一半的时间来阅读代码,而不是编写代码。这使得可读性强的代码成为一项宝贵的资产。在命名变量时投入努力可以减轻阅读代码时的认知负担,并使意图清晰明了。

清晰和描述性的名称

我的第一个经验法则是变量名应该具有描述性和明确性。我总是尽量使用能够解释变量用途的完整、有意义的单词。

例如,userNamename更好。如果totalPrice代表的是总价格而不是单价,则与price相比,totalPrice更好。我避免使用缩写和首字母缩略词,因为这些可能会让对代码库不熟悉的人感到困惑。只要有助于理解,较长的名称是可以接受的。

我还追求描述变量用途的名称,而不是像datainfo这样的通用名称,这些名称可能指代任何东西。名称越精确和专注,越好。

统一的命名约定

命名约定,例如 camelCase 用于变量和函数,或者 UPPER_SNAKE_CASE 用于常量,有助于在代码库中确保一致性。我尽量遵循项目中已经使用的约定,而不是引入可能令人困惑的新约定。

在线工具,如字符串转换为 Snake Case字符串转换为 CamelCase,可以快速转换格式以保持统一性。

避免过长的命名

然而,我避免使用过长或冗长的名称,这些名称会感觉不自然。例如,calculateTotalUserPurchasesValue可能在技术上是准确的,但是calculateTotalPurchases一眼就能理解,同时传达了意思。

我尽量在简洁和描述之间找到合适的平衡。常见的词语,如userdatainfo,通常可以省略而不失清晰度。

避免关键字和特殊字符

变量名称应避免与语言关键字、内置类和函数名称冲突。例如,在 Ruby 中使用stringhash作为变量名是不好的选择。

我还避免在名称中使用特殊字符,如破折号、点号或空格。下划线可以用来分隔单词,但应该谨慎使用。坚持使用字母数字字符可以使变量名最不易引发问题。

避免具有误导性或模棱两可的名称

还应避免具有模糊或可能引起多种含义的名称。例如,data可能指原始输入数据或处理后的输出数据。line可能表示几何线或文本行。

我确保名称清楚地反映变量的特定目的或内容。明确的名称消除了假设,并防止混淆。

使用驼峰命名法和下划线一致

在像 JavaScript 这样的语言中,我倾向于始终使用驼峰命名法来命名变量和函数。例如,getUserPostsget_user_posts更易读。

然而,在 Python 中,我遵循PEP8风格指南,并使用蛇形命名法来命名变量和函数。get_user_posts将成为标准惯例。

无论选择哪种命名风格,我都会在整个代码库中保持一致性和可读性。String to CamelCaseString to Snake Case工具可以快速转换这两种格式。

定期审查和重构命名

每当我阅读代码库并发现自己感到困惑时,我会重新评估变量名称的质量。如果名称需要解读,这是重构的一个红旗。

随着需求的变化,一些名称可能会变得误导或多余。将变量重命名以更好地揭示意图有助于减少认知负担。

String to Upper Snake Case这样的工具可以根据标准惯例批量自动重命名变量。我利用这些工具和重构技术不断改进变量名。

结论

变量命名是一项基础技能,直接影响代码理解和质量。通过使用有意义、明确和一致的命名,开发人员可以编写自我说明的代码,清晰地传达意图。

我鼓励所有程序员应用我在这里概述的准则。在初始开发过程中投入时间思考最佳名称,并在以后无情地进行重构。使用经过精心选择的变量名编写代码将使您的程序更易读和可维护。