【问题标题】:What are some best practices to follow when naming variables?命名变量时要遵循哪些最佳实践?
【发布时间】:2020-01-22 13:03:46
【问题描述】:

在命名变量时应遵循哪些推荐的最佳做法?全局变量?

使用包含多个项目的解决方案时,请确保所有公共名称都指示相关上下文。不要在不同的项目中使用相同的名称。编译工作,但维护可能是一场噩梦。

【问题讨论】:

    标签: variables


    【解决方案1】:

    在很大程度上,您决定采用什么标准并不重要。最重要的因素是你坚持!一致性真的很重要,只要您管理好您的代码在未来将更容易阅读和维护。

    作为一个想法,您可以查看在 windows 下用于 Win32 和 C++ 编程的匈牙利符号。

    Notation Definition (PDF)

    【讨论】:

    • 是的,但没有经过验证的实践可以遵循吗?当我阅读 PDF 时,我注意到使用这种格式,你最终会得到很多神秘的代码,除非你真的喜欢将所有内容都注释掉。
    • 一旦你理解了匈牙利符号的神秘本质,就很容易理解变量的类型,而不必去寻找它的定义来提醒自己。这对于 C++ 尤其重要,因为打字错误很容易造成。这可能不是您选择的语言的问题。
    • 我想这是真的,我是根据经验说话的。
    【解决方案2】:

    保持你的名字有意义,代码应该自我记录,避免缩写名字的长度在大多数语言中通常不是问题。

    布尔变量应以is*has* 开头,尽量选择一个避免在测试中要求取反的名称,因为! 经常会被遗漏。

    使用公共前缀(即documentTitledocumentTypedocumentSize 等)对与项目关联的变量进行分组。

    除非涉及索引,否则避免使用数字来区分变量。

    忘记匈牙利符号。

    【讨论】:

    【解决方案3】:

    一些粗略的笔触:

    • 对循环变量使用ijk。这是很常见的做法,而且很容易理解。
    • 对于布尔 (true/false) 变量,请使用谓词名称,例如 isDirectorycanExecute
    • 您是camelCase 还是use_underscores 只是一个偏好问题。
    • 用描述变量含义的匈牙利符号来装饰变量可能是个好主意,例如iMax 可以是数组中最大元素的索引。用 语言级别的类型 信息装饰名称的用处不大。有关差异的非常有趣的解释,以及为什么一个是好的,另一个是坏的,请参阅Joel's essay

    【讨论】:

      【解决方案4】:

      在某些语言中,最好不要以数字或符号开头。此外,不要使用您正在使用的语言的保留功能。例如:在 C# 中,您不想将其命名为“if”、“else”、“void”、“try”等......

      【讨论】:

        【解决方案5】:

        我绝不是一个有经验的程序员,但我在大学和大学里已经对我有所了解,并且在这样的网站上看到过,当命名变量时,它们应该表示 一些东西。

        也许这是一个教育的东西,但它确实有意义 - 变量名称应该让您在代码中的任何地方都能轻松地看出该变量的用途。我认为归结为代码不需要大量 cmets 的事实——它应该自我解释。变量命名是其中的一部分。

        【讨论】:

        • 将 Blake 和 Phil 所说的添加到我的答案中,我认为您不会错得太离谱。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-04-16
        • 2019-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-09
        • 1970-01-01
        相关资源
        最近更新 更多