0

为方法参数使用尽可能有意义和清晰的名称被认为是最佳实践:

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

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

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

为了清晰起见,是否值得为参数创建变量的开销?

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

3 回答 3

2

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

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

我经常使用这种技术来帮助提高可读性,因为从内容上看不同的参数代表什么并不明显。特别是有很多方法调用0, 1, true, false, null是很好的候选者,您需要在参数命名中更加明确以使代码可读。

在不能选择命名参数的语言中,当内容从上下文中不明显时,我肯定会分解变量以提高可读性。

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

于 2012-08-14T05:15:50.937 回答
1

以我的经验,我很确定显式方式更好(至少在大多数情况下)。第一种方式不会给您带来太多的性能提升;但是对于继续进行维护工作的人会很有帮助。

毕竟,预优化是万恶之源

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

于 2012-08-14T04:37:24.793 回答
0

如果您在定义函数时正确记录了函数,那么对参数的解释只是 ctrl + 单击,甚至鼠标悬停在 IDE 中。

作为开发人员,我更有可能对该函数对这些变量的作用和返回感兴趣,而不是它们在运行时的上下文(即使我确切地知道每个 var 是什么,我也不能在不查看实际内容的情况下依赖输出发生),所以我还是想看看它的代码。

于 2012-05-22T10:31:06.410 回答