2010-11-29 12 views
5

He visto bastantes discusiones sobre qué verbos utilizar en sus propias funciones de PowerShell, pero no he visto una aclaración sobre el uso de Recibir vs Recibir. Significan más o menos lo mismo para mí, pero se supone que Receive se usa específicamente en situaciones que involucran comunicaciones (simplemente escriba Get-Verb para ver esto). Sin embargo, obtenga el grupo Común, así que no estoy seguro de cuál usar.Powershell Recibir vs Obtener verbos

Tengo una función que básicamente envuelve una API RESTful y obtiene datos de ella (utilizo conjuntos de parámetros para los diferentes métodos del servicio). En este momento, la función se llama Get-FooData. Sin embargo, estoy pensando que posiblemente debería cambiarle el nombre a Receive-FooData ya que está haciendo algo de comunicación.

Creo que estoy siendo demasiado literal para querer usar Recibir. Mi sensación personal es que Get suena mejor, pero creo que es solo porque estoy acostumbrado a usarlo. ¿Cuáles son tus pensamientos?

Respuesta

6

Aunque soy competente en powershell solo a nivel amateur, para mí, "obtener" implica un tipo de código mucho más enérgico y responsable. Lo que significa que mi código va a iniciar la acción, y el otro software responderá humildemente a mi solicitud. "Recibir" suena más dócil, lo que significa que el otro software está realmente a cargo. Así que podría usar Recibir si el otro software fuera, por ejemplo, apagar las temperaturas una vez por minuto. Voy a recibir los datos, pero el otro software está haciendo lo mismo, incluso si yo no estaba allí para recibirlo.

"Obtener" es más corto y la mayoría de las veces me gusta sentir que mi código está a cargo. Ve con Get.

+0

este es un buen punto y me ayuda a hacer frente con el nombre 'Recibir-job' mejor. –

+1

Gracias por su respuesta. En base a todos los comentarios, he llegado a la conclusión de que usar Get para este caso en particular tiene más sentido que usar Receive. Si no fuera por el hecho de que técnicamente estoy haciendo un envío (una solicitud http) y un recibo (obteniendo la respuesta http), el total de todas estas operaciones es Obtener. Gracias a todos por sus respuestas. –

4

Esta es una pregunta de diseño interesante y solía pensar en esta elección algunas veces. De acuerdo con estas directrices:

Microsoft Command Line Standard

y mi sentimiento, también, me gustaría utilizar Receive-X nombre en los casos en que también diseñamos uno de los pares/satélite comandos de comunicación Send-X, Connect-X, etc. Este enfoque mejora la visibilidad: si veo el Receive-X, incluso sin leer los manuales, también espero que existan comandos adicionales.

En cierto sentido esto es cierto para el sistema de PowerShell nativa Receive-Job: no podemos llamarlo (a diferencia de Get-Item, Get-Process, etc.), tenemos que iniciar algo que los datos pueden ser recibidos después, es decir, en un primer momento que llamamos el Start-Job. Pero personalmente, lo llamaría diferente: Get-JobResult o algo así; para mí este nombre sería menos confuso: son los resultados del trabajo los que obtenemos, no las instancias de trabajo, y no hay otros comandos de satélite como Send-Job. El nombre Receive-Job seguiría estando disponible para algo quizás más adecuado en el futuro.

Me gustaría ir con Get en la mayoría de los casos. Pero si realmente quiere que un usuario se detenga y piense por un momento en por qué X se llama Receive, no Get, y hay razones para eso, entonces Receive podría ser adecuado.

En general, nunca he usado realmente el verbo Receive en los nombres de mi cmdlet/script/función: algo siempre no fue suficiente para hacer esta elección.

4

Usa el sustantivo para decidir. Si su nombre es el objeto que se está recuperando, utilice "OBTENER". Si el sustantivo es el mecanismo por el cual recuperas algo, entonces usa "RECEIVE".

p. Ej.

GET-BOOK -Via DESCANSO

RECIBIR-RESTO -objeto libro

Cuestiones relacionadas