2009-09-03 14 views
31

Tengo una interfaz en C# que ayuda a recuperar datos de un archivo personalizado en el servidor. La interfaz se parece a esto:Convenciones de nomenclatura: ¿Qué nombre un método que devuelve un booleano?

public interface IRetrieveData 
{ 
    bool OkToRetrieve(SomeData data); // Method in question... 
    bool RetrieveToLocal(SomeData data); 
} 

Esta interfaz se implementa por los clientes que recuperan los datos a la base de datos local. Hay diferentes sabores de clientes que tienen acceso a los datos de los demás. Entonces, cuando el componente de procesamiento llama a IRetrieveData.OkToRetrieve justo antes de la recuperación real, la llamada va al código del cliente donde se toma la decisión de si los datos se deben recuperar o no. En este punto, el cliente puede devolver el mensaje falso y ese dato se omite o se devuelve verdadero y el componente de procesamiento llama a RetrieveToLocal y envía los datos al cliente que luego los procesa.

Donde me confundo es si renombrar el método "OkToRetrieve" para simplemente "Recuperar" o "CanRetrieve" o dejarlo como OkToRetrieve.

¿Alguien tiene alguna sugerencia?

Respuesta

52
IsRetrievable() 

Creo que un método que devuelve un valor booleano debe nombrarse como una pregunta sí-no.

+8

me gusta la 'parte is', pero sólo porque es recuperable no quiere decir que está bien para recuperarlo. Yo lo llamaría 'isOKToRetrieve' –

+1

Absolutamente. El prefijo "Es" es un estándar de codificación en nuestro equipo. – Rap

+1

Todo lo que añadiría a la respuesta de Ariz, (Y esto es un nitnoi) es hacer una distinción tan exactamente como la función está comprobando ... ¿Es si los datos son recuperables, o si el código actual PUEDE recuperarlos? o si DEBERÍA recuperarlo, etc. etc. por ejemplo, si la función está examinando la validez de los datos y "autorizando la recuperación cuando los datos pasan un conjunto de condiciones, entonces IsComplete() o IsValid, o IsTransactionallyConsistent, o algo que describe la naturaleza del cheque que se está haciendo para 'pasar' podría ser algo más informativo. –

15

nombre Allways métodos booleanos con nombres similares a las preguntas que se pueden contestar Sí o No.

En su caso, CanRetrieve sería un buen nombre (sólo para usar su propia sugerencia).

+0

'can'! =' Should'. el código del cliente no impide que lo recuperes, solo lo recomiendo, por lo tanto, creo que 'ShouldRetrieve' es un nombre mejor, como @ dannie.f propuso. – problemofficer

1

CanRetrieve suena bien para mí. He visto la raíz Can usada en las API de Microsoft. La única otra opción real IMO es IsRetrievable (de Aziz) que de alguna manera parece demasiado lingüísticamente retorcida.

1

si se está haciendo más controles y isRetrievable() no es apropiado que podría utilizar:

IsValid() 
1

yo preferiría isOKToRetrieve o isRetrieveOK más variantes sin "es" bajo la convención de que las funciones y los métodos deben ser verbos

3

Métodos significan acción. Por lo tanto, prefiero que los nombres de los métodos comiencen con un verbo. ¿Qué tal si?

CheckIsRetrievable(SomeData data) 
+12

"Is" es un verbo ... –

+4

Depende de cuál sea el significado de la palabra "es". –

+1

@MarcelLamothe "Is" no implica una acción como "verificar" o "recoger" sino un estado. – KnorxThieus

5

En este caso específico, probablemente me nombro:

public bool IsReady (SomeData) 

porque demuestra más claramente lo que ocurrirá una vez que esto vuelve true.

8

¿Qué le parece usar el prefijo 'debería'?

ShouldRetrieve(SomeData data); 
+0

Esta es la mejor respuesta, porque el nombre describe exactamente qué información devuelve el método. Es una recomendación y no una habilidad. – problemofficer

3

Depende de su caso de uso. Me gusta usar el prefijo con palabras tales como 'es', 'hace' o 'Can': IsSomePropertySoAndSo, DoesNounSupportFeature y como su ejemplo CanVerb

0

MayRetrieve() podría ser un nombre mejor si el resultado es determinado por el permiso del usuario/acceso.

IsRetrievable() es más ambiguo, lo que puede ser más apropiado si hay otras consideraciones además de, o distintas de, el permiso.

0

En las convenciones de nomenclatura, está escrito que el nombre del método debe ser verbo

Cuestiones relacionadas