为了清楚起见,在调用方法之前,值得创建变量参

时间:2012-05-22 10:22:38

标签: performance maintenance readability

最佳做法是为方法参数提供尽可能有意义且清晰的名称:

public myFunction(String meaningfulName1, String meaningfulName2, boolean meaningfulName3)

但是,在调用方法时,有时我们会发现这会降低可读性:

myFunction("", "foo", false);

为了清晰起见,为参数创建变量是否值得花费?

String meaningfulName1 = "";
String meaningfulName2 = "foo";
String meaningfulName3 = false;
myFunction(meaningfulName1,meaningfulName2,meaningfulName3)

3 个答案:

答案 0 :(得分:2)

根据您的命名约定,我假设您不使用c#,但在c#以及许多其他语言中,您可以在调用方法时使用命名参数。

myFunction(meaningfulName1: "", meaningfulName2: "foo", meaningfulName3: false)

我使用这种技术来帮助提高可读性,其中从内容中不清楚不同的参数代表什么。特别是具有大量0, 1, true, false, null的方法调用是很好的候选者,你需要在你的参数中更明确地命名以使代码可读。

在命名参数不是一个选项的语言中,当内容在上下文中不明显时,我肯定会打破变量以帮助提高可读性。

然而,在我编写的大多数代码中,我很少使用常量参数调用我的方法,大多数参数都在别处计算,并且已经包含在好的命名变量中。

答案 1 :(得分:1)

根据我的经验,我很确定明确的方式是更好的(至少大部分时间)。第一种方式不会带来很多性能提升;但对于那些继续维护工作的人来说会很有帮助。

毕竟,Pre-optimization is the root of evils

P / s:第二种方式对于具有LONG参数列表的方法也是非常必要的(除了“objectize”params方法)。但我希望你不必处理它。

答案 2 :(得分:0)

如果您在定义函数时正确记录了函数,那么参数说明只需按住Ctrl键单击即可,甚至鼠标也可以在IDE中停留。

作为开发人员,我更有可能对这些函数对这些变量做什么感兴趣并返回,而不是在运行时它们的上下文(甚至我确切地知道每个变量是什么我不能依赖关于输出而不看实际发生的事情),所以我还是想看看它的代码。