哪个更好“目的地,来源”或“来源,目的地”?

时间:2011-08-13 21:52:00

标签: api copy

我的问题是语言超越,我经常发现“复制”函数的原型按顺序定义参数:argument1:“destination”then argument2:“source”。 这是例如在C中的memcpy的情况。但它不是bash上的文件复制的情况!你说,例如:“$ cp file file2”,其中file2是新文件。 这对我来说更有意义,我们总是说“请在这里复制文本”,而不是“复制这里的文字”,这是Yoda-esque。

所以真正的问题是:一个好的API应该使用什么形式(顺序)?也许是另一个附属问题:如果有的话,每个人都期待什么形式?

2 个答案:

答案 0 :(得分:5)

我希望源首先出现,然后是目的地。

如果你能用语言消除歧义,那就更好了。例如,用OO语言:

source.copyTo(destination);

在具有命名参数的语言中:

copy(source: s, destination: d);

重要的是让清除人们阅读代码所发生的事情。代码比阅读代码更经常阅读。

答案 1 :(得分:1)

我总是首选源 - 目的地(我从这里推到这里),但它可能还取决于呼叫。如果它只是你所指的“复制”,我认为这是有效的。我确信还有其他 pull 定向调用,dest-source会更好地适用于。