【问题标题】:cmdlet design: parameter pass in: pipeline or inline parameter?cmdlet 设计:参数传入:管道还是内联参数?
【发布时间】:2013-02-22 15:03:33
【问题描述】:

这不是编程问题,而是更多设计问题。

假设数据存储在 json 中。

例如,Get-Person "John" | Get-EmployerGet-Employer -Person "John"

两种方式都返回约翰的雇主,前一种使用管道,后一种使用内联参数。我有时会感到困惑:每个人的优点和缺点是什么?你们在设计的时候,你喜欢使用它们中的每一个吗?

对我来说,我想出使用管道的唯一原因是,如果需要评估参数的值,它可以节省我们使用变量的时间。

有人对这个问题也有任何想法吗?

【问题讨论】:

  • 如前所述,好的功能设计可以兼顾两者,让用户自己选择自己喜欢的。仅供参考,您的示例并不相同。在第一个中,您传递一个对象(我想象的是“john”这个人的“person”对象),而第二个只取他的名字。 "John" | Get-Employer 将是正确的选择
  • 我同意@Graimer。作为 cmdlet 的使用者,我想要两种方式 - 让我在需要时传入一个值/集合,或者从另一个来源传入一个集合(或单个值)。每种方法都会在各种情况下派上用场。

标签: powershell powershell-cmdlet


【解决方案1】:

您没有理由选择其中一个。通过适当的参数属性和功能设计(使用开始/处理/结束块),您可以同时允许这两种选择。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-07
    • 2011-11-29
    • 2015-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多