【问题标题】:Should a method parameter name specify its unit in its name?方法参数名称是否应在其名称中指定其单位?
【发布时间】:2010-01-16 07:48:02
【问题描述】:

在以下两个方法参数名称选项中,有一个单位和一个值,你更喜欢哪一个,为什么? (我使用过 Java 语法,但我的问题适用于大多数语言。)

public void move(int length)

public void move(int lengthInMetres)

选项 (1) 似乎就足够了,但我发现当我编码/打字时,我的 IDE 可以向我指示我需要一个长度值,但我通常必须打破步伐并查找方法的文档确定单位,以便我传入正确的值(例如,不是公里而不是米)。这可能是一个令人讨厌的思维过程中断。选项 (2) 缓解了这个问题,但可能很冗长,特别是如果您的单位是 metresPerSecondSquared 或类似的单位。你觉得哪个最好?

【问题讨论】:

    标签: coding-style parameters naming-conventions


    【解决方案1】:

    我建议让参数(和方法)名称尽可能清晰,即使它们变得冗长。当您在 6 个月后查看或使用代码时,或者当其他人必须查看您的代码时,您会很高兴。
    如果您认为名称变得太长,请考虑重新措辞。在您的示例中,您可以使用可能足够清楚的参数名称int Metres。考虑更改方法名称,例如public void moveMetres(int length)

    在 Visual Studio 中,当您在其他位置使用该方法时,在方法定义上方输入 3 个注释符号时生成的 XML cmets 将出现在 Intellisense 提示中。其他 IDE 可能具有类似的功能。

    应谨慎使用缩写。如果绝对必要,仅使用众所周知的和/或相关的行业标准缩写并保持一致,即在任何地方使用相同的缩写。

    退后一步。编写代码,然后继续做其他事情。第二天再来看看名字是否还清晰。

    同行评审也有帮助。如果您的命名方案足够清晰或有助于集思广益,请询问了解编程语言(或只是逻辑思考)但不了解特定功能的人。他们可能是将来必须维护您的代码的可怜的 sap!

    【讨论】:

      【解决方案2】:

      我更喜欢第二种方法(即 lengthInMeters),因为它准确地描述了该方法所需的输入。当您在编写代码时发现计算单位会令人困惑,这一事实意味着当您(或某人)稍后查看同一段代码时会更加困惑。关于变量名称较长的问题,您可以找到缩写它的方法(例如“mtrsPerSecondSquared”)。

      同样在防御第二种方法中,Code Complete 一书提到一项研究表明,当变量的名称平均为 10 到 16 个字符时,调试程序所需的工作量最小化。

      【讨论】:

        猜你喜欢
        • 2019-05-30
        • 1970-01-01
        • 1970-01-01
        • 2018-11-21
        • 2020-10-07
        • 1970-01-01
        • 1970-01-01
        • 2016-10-19
        • 2012-03-15
        相关资源
        最近更新 更多