【问题标题】:Powershell Cmdlet naming best practicesPowershell Cmdlet 命名最佳实践
【发布时间】:2020-02-13 10:58:18
【问题描述】:

我有一个部署过程,其中包括在将某些文件传递给客户端之前对其进行混淆处理,为此,它调用了当前名为 Get-ObfuscateScripts 的自定义 C# Cmdlet。

我的问题是这种自定义 Commandlets 的最佳命名实践是什么,我认为在这种情况下理想的名称是 Obfuscate-Scripts,但这给了我警告信息:

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

我真的不明白这条消息的重点,如果我将它重命名为 Invoke-ObfuscateScripts 之类的东西,智能感知会在 Powershell ISE 或类似的东西上更好地工作吗?还是只是说我应该期望熟练的 Powershell 用户总是通过首先探索批准的动词来探索 API?

【问题讨论】:

  • 一件事是,如果您使用了不在批准列表中的动词,则在导入包含该命令的模块时会收到警告。所以这对你的代码的用户来说可能很烦人。但是你可以使用几乎任何你想要的东西。

标签: powershell


【解决方案1】:

从技术上讲,PowerShell 并不关心您如何称呼您的函数/cmdlet,但遵循推荐的命名标准是一种很好的做法,这样用户就可以更轻松地从名称中了解您的 cmdlet 的作用。例如,最佳做法是使用“get”而不是“query”、“lookup”、“read”等。

名称应采用“动词-名词”格式,仅使用此处列出的动词:

Approved Verbs

在您的情况下,“保护”/“取消保护”似乎是最佳选择。

名词部分的规定方式不同,但应该是单数。这就是为什么,例如,我们有Get-Process 而不是Get-Processes 等。在您的情况下,它可能只是“脚本”。

因此,您的 cmdlet 的一种可能性是 Protect-Script

【讨论】:

    猜你喜欢
    • 2010-10-01
    • 2011-08-09
    • 2015-05-28
    • 2022-11-10
    • 2010-10-09
    • 2011-11-05
    • 2018-11-19
    • 2014-06-14
    • 2011-01-07
    相关资源
    最近更新 更多