Получение Powershell против получения глаголов - PullRequest
5 голосов
/ 30 ноября 2010

Я видел довольно много дискуссий о том, какие глаголы использовать в ваших собственных функциях PowerShell, но я не видел разъяснений по использованию Receive против Get. Они означают примерно то же самое для меня, но предполагается, что Receive будет использоваться специально в ситуациях, связанных с коммуникациями (просто наберите Get-Verb, чтобы увидеть это). Однако Get входит в группу Common, поэтому я не совсем уверен, какой из них использовать.

У меня есть функция, которая в основном оборачивает RESTful API и получает от него данные (я использую наборы параметров для различных методов службы). Прямо сейчас функция называется Get-FooData. Тем не менее, я думаю, что, возможно, мне следует переименовать его в Receive-FooData, поскольку он выполняет какую-то связь.

Я думаю, что я слишком буквален, чтобы использовать функцию Receive. Мое личное ощущение, что Get лучше звучит, но я думаю, что это только потому, что я привык его использовать. Что ты думаешь?

Ответы [ 3 ]

6 голосов
/ 30 ноября 2010

Хотя я опытен в powershell только на любительском уровне, для меня «get» подразумевает гораздо более мощный и ответственный тип кода. Это означает, что мой код будет инициировать действие, а другое программное обеспечение смиренно ответит на мой запрос. «Получить» звучит более послушно, а это означает, что другое программное обеспечение действительно отвечает. Поэтому я мог бы использовать функцию «Получить», если другое программное обеспечение, например, выдает температуру один раз в минуту. Я собираюсь получить данные, но другое программное обеспечение делает свое дело, даже если я не был там, чтобы получить их.

«Получить» короче, и большую часть времени мне нравится чувствовать, что мой код отвечает. Перейти с Get.

4 голосов
/ 30 ноября 2010

Используйте существительное, чтобы решить. Если ваше существительное является объектом, который извлекается, используйте «GET». Если существительное - это механизм, с помощью которого вы что-то извлекаете, используйте «RECEIVE».

, например

GET-BOOK -Via REST

ПРИЕМ-ОТДЫХ -объект книга

4 голосов
/ 30 ноября 2010

Это интересный вопрос дизайна, и я несколько раз думал об этом выборе. Согласно этим рекомендациям:

Стандарт командной строки Microsoft

и мое чувство, я бы также использовал имя Receive-X в тех случаях, когда я также проектирую одну из команд парной / спутниковой связи Send-X, Connect-X и т. Д. Такой подход улучшает обнаруживаемость: если я вижу Receive-X тогда даже без чтения руководств я ожидаю, что будут существовать дополнительные команды.

В некотором смысле это верно для собственной команды PowerShell Receive-Job: мы не можем просто вызвать ее (в отличие от Get-Item, Get-Process и т. Д.), Мы должны инициировать что-то, какие данные впоследствии могут быть получены, а именно сначала мы называем Start-Job. Но лично я бы назвал это по-другому: Get-JobResult или что-то в этом роде; для меня это имя было бы менее запутанным: это результаты работы, которые мы получаем, а не экземпляры работы, и нет никаких других спутниковых команд, таких как Send-Job. Имя Receive-Job все еще будет доступно для чего-то, возможно, более адекватного в будущем.

Я бы пошел с Get в большинстве случаев. Но если вы действительно хотите, чтобы пользователь на мгновение остановился и подумал, почему X называется Receive, а не Get, и для этого есть причины, тогда Receive может подойти.

В общем, я никогда не использовал глагол Receive в именах командлетов / сценариев / функций: чего-то всегда было недостаточно для этого выбора.

...