Estoy seguro de que muchos de nosotros hemos visto nombres de métodos como este en un momento u otro:
UploadTheFileToTheServerPlease
CreateATemporaryFile
WriteTheRecordToTheDatabase
ResetTheSystemClock
Es decir, nombres de métodos que también son oraciones gramaticalmente correctas en inglés e incluyen palabras adicionales únicamente para que se lean como prosa. Personalmente, no soy un gran admirador de tales nombres de métodos "literales", y prefiero ser breve, sin dejar de ser lo más claro posible. Para mí, las palabras como "a", "an" y "the" simplemente se ven incómodas en los nombres de los métodos, y hace que los nombres de los métodos sean innecesariamente largos sin agregar realmente nada útil. Preferiría los siguientes nombres de métodos para los ejemplos anteriores:
UploadFileToServer
CreateTemporaryFile
WriteOutRecord
ResetSystemClock
En mi experiencia, esto es mucho más común que el otro enfoque de escribir los nombres más largos, pero he visto ambos estilos y tenía curiosidad por ver qué pensaban los demás sobre estos dos enfoques.
Entonces, ¿estás en el campo de "nombres de métodos que se leen como prosa" o en los "nombres de métodos que dicen lo que quiero decir pero leen en voz alta como un campo de mala traducción del idioma extranjero al inglés"?
fuente
WriteTheRecordToTheDatabase
. Si alguien lo registrara, tendrían una conversación seria.Please
"? WowRespuestas:
Estoy de acuerdo en que los métodos en prosa apestan con una excepción:
Casos de prueba unitaria
Generalmente, estos nunca se invocan en su código y se muestran en los informes de prueba. Como tal, es útil tener lecturas con un poco más de prosa:
Incluso esto debe hacerse con moderación, pero puedo verlo como al menos un caso en el que las adiciones gramaticales pueden hacer que sea un poco más fácil expresar lo que pasó y lo que falló. Esto es, por supuesto, a menos que su lenguaje / marco proporcione un buen mecanismo para las descripciones de prueba en la lectura de la prueba que no sean los nombres de los métodos, en cuyo caso ignore este también.
fuente
MethodUnderTest_Condition_ExpectedBehaviour
convención de nomenclatura de prueba unitaria sugerida de Roy Osherove . por ejemploAddOrder_WithInvalidCustomerId_Fails
,CreateItem_WithOutOfBoundsPrice_ReturnsError
yDeleteEvent_EventExistsInSeason_Succeeds
.._AdditionFails
y.._DeletionSucceeds
debería ser mejor Puse el resultado del método, pero como usted señala, podrían confundirse con la prueba de la terminología de aprobación / falla.Parafraseando a Lawrence desde Office Space ...
fuente
Tales nombres "largos" no suenan a prosa . Cuando están solos, tal vez, pero acompañados con el resto del código, simplemente hacen más desastre. Echale un vistazo:
Yuuuuk! ..
Este no es un texto válido en inglés, y en ningún lenguaje de programación se verá como uno. Entonces no tiene sentido gastar bytes en artículos.
fuente
bool ResultOfTheGentlyUploadOfTheFileToTheServer
Desde la perspectiva de los programadores, "UploadFileToServer" tiene más sentido y es más fácil de leer y comprender que "UploadTheFileToTheServerPlease".
¡Más que la gramática inglesa, la legibilidad y la comprensión son más importantes en la programación!
fuente
UploadTheFileAndProcessItAndEmailTheOrdersToTheCustomers
, aunque espero que nada sea tan malo en la vida real.Dado cuántos errores tipográficos presenta mi vida, terminaría con
En serio, incluso miraría cuál era el nombre de mi clase también. Si mi clase se llamara "Archivo", probablemente solo iría con
Entonces sería
Solo un ejemplo trivial, pero espero que sea lo suficientemente ilustrativo.
fuente
File.UploadFileToServer
... ugh).Personalmente no me importa. Los he visto y no me molestan. Ni siquiera pensé en ellos hasta que otro programador habló sobre ellos. Me pareció sorprendente que alguien se preocupara tanto por algo que importa tan poco. Quiero decir que en realidad estaba enojado por eso. Pero eso fue al principio de mi carrera, hace unos 11 años, y desde entonces he descubierto que los desarrolladores enojados por cosas menores es bastante común. Es por eso que a los gerentes de desarrolladores se les paga tan bien. Tienen que tratar con los desarrolladores a diario.
Y prefiero ver eso que "UL_FlToSrv".
fuente