我已经看过很多关于在自己的PowerShell函数中使用哪些动词的讨论,但我还没有看到使用Receive vs Get的澄清。它们对我来说意味着大致相同的东西,但是接收应该专门用于涉及通信的情况(只需输入Get-Verb就可以看到这一点)。但是,Get是在Common组中,所以我真的不确定使用哪一个。
我有一个基本上包装RESTful API并从中获取数据的函数(我使用参数集来处理服务的不同方法)。现在该函数被称为Get-FooData。但是,我认为我应该将它重命名为Receive-FooData,因为它正在进行一些通信。
我认为我在这里太过于想要使用Receive。我个人的感觉是听起来更好,但我认为这只是因为我习惯使用它。你有什么想法?
答案 0 :(得分:6)
虽然我只对业余级别的PowerShell很熟练,但对我而言,“获取”意味着更强大和更负责的代码类型。这意味着我的代码将启动操作,而其他软件将谦虚地回应我的请求。 “接收”听起来更温顺,这意味着其他软件真正负责。所以我可能会使用Receive,如果其他软件是例如每分钟输出一次温度。我将接收数据,但即使我不在那里接收它,其他软件也在做它的事情。
“获取”更短,大部分时间我都觉得我的代码是负责人。和Get一起去。
答案 1 :(得分:4)
这是一个有趣的设计问题,我曾经多次考虑这个选择。根据这些指导原则:
Microsoft Command Line Standard
我的感觉,在我还设计了一对/卫星通信命令Receive-X
,Send-X
等时,我会使用Connect-X
名称。这种方法可以提高可发现性:如果我看到Receive-X
,那么即使没有阅读手册,我也希望存在其他命令。
在某种意义上,对于本机PowerShell命令Receive-Job
来说也是如此:我们不能只调用它(不像Get-Item
,Get-Process
等),我们必须启动一些数据之后可以收到,即首先我们称之为Start-Job
。但就个人而言,我会用不同的方式称呼它:Get-JobResult
或类似的东西;对我来说,这个名字不那么令人困惑:这是我们得到的工作结果,而不是工作实例,而且没有其他卫星命令,如Send-Job
。名称Receive-Job
仍可用于将来可能更充足的名称。
在大多数情况下,我会选择Get
。但是,如果你真的希望用户停下来想一想为什么X被称为Receive
而不是Get
,并且有理由那么Receive
可能是合适的。 / p>
总而言之,我从未真正在我的cmdlet / script / function名称中使用动词Receive
:总是不足以做出这个选择。
答案 2 :(得分:4)
使用名词来决定。如果你的名词是被检索的对象,那么使用“GET”。如果名词是你检索某些东西的机制,那么使用“RECEIVE”。
e.g。
GET-BOOK -via REST
RECEIVE-REST -object book