2009-10-07 18 views
5

¿Cómo llamas a tus funciones cuando los nombres que contienen un genitivo sajón como "Verificar prioridad de la tarea" y "Cambiar la prioridad del argumento" o "Aumentar la demora de la acción"?Saxon Genitive en convenciones de nomenclatura?

¿Deja caer el apóstrofo? verifyTasksPriority(), changeArgumentsPriority(), increaseActionsDelay()

¿Deja caer el apóstrofo y la "s"? verifyTaskPriority(), changeArgumentPriority(), increaseActionDelay()

¿Se sustituye el genitivo sajón por "de"? verifyPriorityOfTask(), changePriorityOfArgument(), increaseDelayOfAction()?

No me gusta la primera opción porque parece que la función funciona en varias cosas en lugar de una sola cosa. No me gusta la segunda opción porque no suena natural. No me gusta la tercera opción porque la palabra, de, en un nombre de función simplemente no suena bien.

¿Qué opción usas?

+0

Entonces, es la opción 2. Gracias a todos! –

Respuesta

9

Utilizo el segundo. Suena bien para mi. Piense en "Prioridad de tarea" como una palabra compuesta como "aspiradora".

+2

Esta es exactamente mi opinión también. Los sustantivos compuestos son generalmente la manera más sucinta de nombrar funciones. – Noldorin

2

Encuentro que los números dos y tres me parecen bien y son descriptivos. Yo uso la segunda opción. La primera opción podría ser confusa, ya que parece indicar que opera en una colección en lugar de un solo elemento (tareas en lugar de tareas, por ejemplo).

No estaba, sin embargo, consciente de que estaba haciendo la programación genitiva sajona; Lo agregaré a mi currículum de inmediato.

1

No recuerdo haber sentido nunca la necesidad de utilizar alguno de ellos a mano.

Escribo el código OO, principalmente en los lenguajes de OO, entonces para verificar la prioridad de una tarea usted tendría task.verifyPriority(), aunque generalmente solo tiene task.verify() como el método público.

La verificación de la prioridad puede implicar otra lógica: supongamos que la prioridad solo puede ser 7 si el propietario de la tarea es Bob. Establecer el propietario de una de las tareas prioritarias de Bob 7 en Anna lo haría inconsistente, pero ¿tendría que llamar al verifyOwner() cuando cambie el propietario así como al verifyPriority() para cuando cambie la prioridad, incluso si tuvieran la misma lógica?

Descubrí que hacer que las API sean menos específicas para los detalles de la implementación conduce a un código más maleable.

En los idiomas que no son OO, por lo general uso <library>_<Noun>_<Verb> para tman_task_verify (task_t* self) para verificar que el objeto de la tarea en la biblioteca del administrador de tareas se compruebe.

+0

+1 para señalar object.method como patrón de OO común. – codingoutloud

Cuestiones relacionadas