2013-02-22 3 views
1

이것은 프로그래밍 문제가 아니며 대신 설계 문제에 관한 것입니다.cmdlet 디자인 : 매개 변수 전달 : 파이프 라인 또는 인라인 매개 변수?

데이터가 json에 저장된다고 가정합니다.

예를 들어

, Get-Person "John" | Get-Employer 또는 Get-Employer -Person "John"

두 방법은 요한의 고용주를 돌아 본다, 전 하나는 파이프 라인을 사용하고 나중에 하나는 인라인 매개 변수를 사용합니다. 나는 때때로 혼란 스럽다 : 각각의 장점과 단점은 무엇인가? 너희들이 설계 할 때, 그것들 각각을 사용하기 위해 당신이 선호하는 것은 무엇인가?

내가 파이프 라인을 사용하는 유일한 이유는 매개 변수 값을 평가해야하는 경우 변수를 사용하여 저장한다는 것입니다.

누구나이 질문에 대한 의견이 있습니까?

+0

이와 같이 좋은 함수 설계로 둘 다 처리 할 수 ​​있으므로 사용자가 원하는 것을 선택할 수 있습니다. 그러나 FYI와 마찬가지로 귀하의 사례가 동일하지 않습니다. 처음에는 객체를 전달하고 (두 번째 객체는 "john"객체의 "person"객체입니다), 두 번째 객체는 그의 이름 만 사용합니다. ''존 '| Get-Employer'가 올바른 대안이 될 것입니다. –

+0

@Graimer에 동의합니다. cmdlets를 사용하는 소비자는 필자에게 두 가지 방법이 필요합니다. 필요할 때 하나의 값 모음이나 다른 원본의 컬렉션 (또는 단일 값)에 파이프를 전달하도록하겠습니다. 각 방법은 다양한 상황에서 유용 할 것입니다. – alroc

답변

2

둘 중 하나를 골라야 할 이유가 없습니다. 적절한 매개 변수 속성 및 함수 디자인 (begin/process/end 블록 사용)을 사용하면 두 옵션을 모두 허용 할 수 있습니다.

+0

당신은 바로 여기 있습니다 .. – jamesdeath123