【问题标题】:Create vs. New - Powershell approved verbs创建与新建 - Powershell 批准的动词
【发布时间】:2014-12-16 14:01:50
【问题描述】:

我正在尝试尽可能严格地遵守 Microsoft 的 Powershell 开发指南和最佳实践,但我在导入自定义模块时收到警告:

WARNING: The names of some imported commands from the module 'F5Helper' include unapproved verbs that might make them less discoverable.
To find the commands with unapproved verbs, run the Import-Module command again with the Verbose parameter. For a list of approved verbs, type Get-Verb.

VERBOSE: The 'Create-iRule' command in the F5Helper' module was imported, but because its name does not include an approved verb, it might be difficult to find.
The suggested alternative verbs are "New".
VERBOSE: Importing function 'Create-iRule'.

我在其他任何地方都找不到信息,但也许这里有人可以告诉我为什么应该使用 New 一词而不是 Create 一词?

在我的例子中,“Create-iRule”函数就是这样做的,它创建了一个 iRule。

我知道有人一定会发布一个回答说:“但是你正在创建一个'New-iRule'所以它应该是函数的名称!” 对于这些人,我会提醒您,New 不是动词,而 Create 是

那么为什么 New 在已批准的动词列表中并且 Create 会输出警告?

Approved Verbs for Windows PowerShell Commands

【问题讨论】:

  • +1 指出“新”实际上不是动词!让我想起另一个行业的一句名言:'chicken' 不应该用作形容词。(如炸鸡排)。 :-)
  • 这就是为什么我总是不小心写了 Create-Item 然后不得不把它改成 New-Item。因为“新”不是动词。这让我很恼火。我们可以被称为书呆子,但脚本编写者必须要构建好的脚本。没有什么比电脑更迂腐的了。
  • 在英语中,任何名词都可以做动词。诚然,“现在”也不是名词。但也许任何词都可以动词化。
  • 'Verbed' 是我最喜欢的动词化名词。我喜欢动词名词。
  • 微软添加了关于使用 New 作为动词的评论(英文网站),并扩展了如何选择动词。我更新了 OP 问题中的链接以转到原始页面的更新位置。

标签: powershell


【解决方案1】:

根据微软:

PowerShell 使用术语动词来描述暗示动作的单词,即使该单词不是英语中的标准动词。例如,术语 New 是一个有效的 PowerShell 动词名称,因为它暗示了一个动作,即使它不是英语中的动词。

https://docs.microsoft.com/en-us/powershell/scripting/developer/cmdlet/approved-verbs-for-windows-powershell-commands?

【讨论】:

    【解决方案2】:

    我没有确切的来源,所以这是猜测,但NewAdd 是最先存在的有效动词,并且似乎(我认为)涵盖了您可能使用Create 的任何情况.

    我知道当他们添加新动词时,他们会尽量避免与现有动词重叠。

    来自Soliciting New Verbs 来自Windows PowerShell Blog 的帖子:

    为了提供一些背景信息,以下是我们在何时考虑的事情 决定是否添加新动词:

    • 与现有批准的动词很少或没有重叠
    • 广泛适用于多种技术 - 必须与领域无关
    • 在多个上下文中以相似的含义一致使用
    • 与相反的配对很好,但不是必需的

    【讨论】:

    • 我可以看到它们来自哪里,但在我的具体示例中,动词“添加”不适用。事实上,我在模块中确实有另一个名为“Add-iRule”的函数,它可以毫无问题地导入。我仍然想知道为什么“新”是一个公认的动词,你怎么能用“新”作为动词?当然,这只是学究式,如果没有真正的原因,我可以闭口不谈
    • 更多猜测......也许New只是CreateNew的缩写形式?
    • 我认为它更像是 C++、C# 和 Visual Basic 等语言中的 new 关键字。
    【解决方案3】:

    答案可能值得"Microspeak" article from Raymond Chen,但New-“动词”可能与短语“newing up a variable”直接相关......

    【讨论】:

    • 新建一个变量?听起来像是你当场编造的东西
    【解决方案4】:

    它只是让使用有限数量的动词更容易学习。我没有创建动词:

     Get-Command -verb create
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-06
      • 1970-01-01
      • 1970-01-01
      • 2010-09-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多