Это не вопрос программирования, а скорее вопрос проектирования.cmdlet design: параметр pass in: конвейер или встроенный параметр?
Предполагая, что данные хранятся в json.
Например, Get-Person "John" | Get-Employer
или Get-Employer -Person "John"
Оба способа выглядит вернуть работодатель Джона, бывший один использует трубопровод, а затем один использует встроенный параметр. Меня иногда путают: в чем преимущество и недостаток каждого? Когда вы, ребята, проектируете, каково ваше предпочтение использовать каждый из них?
Для меня единственная причина, по которой я пришел с использованием конвейера, заключается в том, что он сохраняет нас с использованием переменных, если значение параметра необходимо оценить.
У кого-нибудь есть мысли по этому вопросу?
Как сказано, хороший дизайн функции может обрабатывать обе, чтобы пользователь сам мог выбирать то, что ему нравится. Однако, как FYI, ваши примеры не равны. В первом вы передаете объект (я бы предположил, что это объект «человек» для человека «john»), а второй - только его имя. '' Джон "| Get-Employer' будет правильной альтернативой –
Я согласен с @Graimer. Как потребитель командлетов, я хочу это в обоих направлениях - позвольте мне передать единый/набор значений, когда это необходимо, или канал в коллекции (или единственном значении) из другого источника. Каждый метод будет полезен в различных ситуациях. – alroc