对于具有单位和值的方法参数名称,以下两个选项中,您更喜欢哪个?为什么? (我使用过Java语法,但我的问题适用于大多数语言。)
public void move(int length)
或
public void move(int lengthInMetres)
选项(1)似乎已足够,但我发现当我编码/打字时,我的IDE可以向我指示我需要一个长度值,但我通常必须打破步伐并查找方法的doco确定单位,以便传递正确的值(而不是公里而不是米)。这可能是对思维过程的恼人中断。选项(2)缓解了这个问题,但可能很冗长,特别是如果你的单位是metresPerSecondSquared或其他一些。你觉得哪个最好?
答案 0 :(得分:0)
我建议尽可能清楚地使您的参数(和方法)名称清晰,即使它们变得冗长。当您在6个月内查看或使用代码,或者其他人必须查看您的代码时,您会很高兴。
如果您认为名称变得太长,请考虑重新编写它们。在您的示例中,您可以使用可能足够清晰的参数名称int Metres
。请考虑更改方法名称,例如public void moveMetres(int length)
。
在Visual Studio中,当您在其他位置使用该方法时,在方法定义上方输入3个注释符号时生成的XML注释将显示在Intellisense提示中。其他IDE可能具有类似的功能。
应谨慎使用缩写。如果绝对必要,只使用通常已知和/或相关的行业标准缩写并保持一致,即在任何地方使用相同的缩写 。
退后一步。编写代码然后转到其他东西。第二天回来,查看名字是否仍然清晰。
同行评审也可以提供帮助。询问知道编程语言的人(或者只是逻辑思考),但不是具体的功能,如果你的命名方案足够清楚,或者帮助集思广益。他们可能是将来维护你的代码的可怜的傻瓜!
答案 1 :(得分:0)
我更喜欢第二种方法(即lengthInMeters),因为它准确地描述了该方法所需的输入。当你刚刚编写代码时,你发现在弄清楚单位时会让你感到困惑的事实意味着当你(或某个人)稍后查看相同的代码时会更加困惑。关于变量名称的问题越长,你可以找到缩写它的方法(比如说“mtrsPerSecondSquared”)。
同样在辩护第二种方法中,书Code Complete提到了一项研究表明,当变量的名称平均为10到16个字符时,调试程序所需的工作量被最小化。