我的问题是语言超越,我经常发现“复制”函数的原型按顺序定义参数:argument1:“destination”then argument2:“source”。 这是例如在C中的memcpy的情况。但它不是bash上的文件复制的情况!你说,例如:“$ cp file file2”,其中file2是新文件。 这对我来说更有意义,我们总是说“请在这里复制文本”,而不是“复制这里的文字”,这是Yoda-esque。
所以真正的问题是:一个好的API应该使用什么形式(顺序)?也许是另一个附属问题:如果有的话,每个人都期待什么形式?
答案 0 :(得分:5)
我希望源首先出现,然后是目的地。
如果你能用语言消除歧义,那就更好了。例如,用OO语言:
source.copyTo(destination);
在具有命名参数的语言中:
copy(source: s, destination: d);
重要的是让清除人们阅读代码所发生的事情。代码比阅读代码更经常阅读。
答案 1 :(得分:1)
我总是首选源 - 目的地(我从这里推到这里),但它可能还取决于呼叫。如果它只是你所指的“复制”,我认为这是有效的。我确信还有其他 pull 定向调用,dest-source会更好地适用于。