En el código se necesitan nombres en todas partes. Como programadores, tenemos que nombrar clases, variables, funciones, parámetros, espacios de nombres, etc., etc. A continuación hay 20 consejos que te ayudarán a mejorar tu capacidad de nombrar.

1. Usa nombres que expresen la intención
Los nombres deben decirnos qué hacen, por qué existen y cómo funcionan. Elegir nombres que expresen la intención nos ayudará a entender mejor el código.
int d; // elapsed time in days int elapsedTimeInDays; int daysSinceCreation; int daysSinceModification; int fileAgeInDays;
En el fragmento anterior, solo podemos saber a qué se refiere la variable d a partir de los comentarios. Por lo tanto, quien lea el código tendrá que buscar sus instancias para obtener pistas y saber su significado. Así que, si nombramos bien esta variable, quien lea el código podrá saber su significado al instante.
2. No temas dedicar tiempo a elegir nombres
Deberías probar varios nombres diferentes hasta que sean suficientes para describir su significado, y no tengas miedo de dedicarles tiempo. Quienes lean tu código en el futuro (incluido tú mismo) se beneficiarán de ello. Además, un nombre descriptivo incluso puede ayudarte a aclarar el diseño del módulo en tu mente. Un buen nombre realmente requiere tiempo, pero a la larga, los beneficios superan los costos.
3. Refactoriza los nombres
Si más adelante, durante el desarrollo, se te ocurre un nombre mejor, no dudes en cambiarlo de inmediato. Los IDE actuales hacen que refactorizar nombres sea extremadamente fácil.
4. Evita palabras que distraigan en los nombres
Por ejemploManager、Processor、Data、Infoy sinónimos de "no sé cómo se llama" son palabras que distraen. Si necesitas usar estas palabras que distraen, entonces tu nombre probablemente sea demasiado redundante.
5. Ten cuidado con las clases/funciones difíciles de nombrar
Una clase o función difícil de nombrar es probablemente un "code smell" (mal olor en el código). Esto indica:
- El código hace demasiado.
- El código no hace lo suficiente.
- No comprendes el problema lo suficientemente a fondo; necesitas obtener más información primero.
6. Nombres de clases
Las clases deben tener un nombre de sustantivo o frase sustantiva, comoCustomer、WikiPage、AccountyAddressParser. Las clases padre de herencia deberían tener un nombre corto e impactante. Los nombres de las subclases deberían ser más largos, describiendo mediante adjetivos en qué se diferencian de su clase padre, comoSavingsAccountderivada de Account.
7. Nombres de variables
Los nombres de variables también deben ser sustantivos. En su mayoría derivan de la clase a la que apuntan. Las variables booleanas deben escribirse en forma de predicado, comoisEmptyyisTerminated, para que sean fáciles de entender en una sentencia if.
8. Nombres de métodos
Los nombres de métodos deben ser un verbo o frase verbal, comopostPayment()、deletePage()ysave(). Los accesores y mutadores deben tener los prefijos get y set respectivamente. Los métodos que devuelven valores booleanos deben tener el prefijo 'is', como isPostable(), para que sean fáciles de entender en una sentencia if.
9. Tamaño del ámbito y longitud del nombre de la variable
La longitud del nombre de una variable debe coincidir con el tamaño de su ámbito. Si el ámbito de la variable es corto, entonces la longitud del nombre también debería ser corta. Por el contrario, el nombre de la variable debería ser más largo y descriptivo.
10. Tamaño del ámbito y longitud de nombres de métodos/clases
Para métodos y clases, la longitud del nombre debería ser inversamente proporcional a su ámbito. Para métodos públicos, los nombres más cortos son mejores, porque se invocan muchas veces. Los métodos privados solo se invocan dentro de la clase, y los nombres más largos pueden servir como documentación. La excepción a esta regla son los nombres de las clases derivadas. Cuanto más derivada sea la clase, más adjetivos se añaden antes de la clase base, y más largo será el nombre.
11. Un concepto, una palabra
Elige una palabra para un concepto abstracto y no la cambies. Por ejemplo, como métodos equivalentes en diferentes clases,get()、fetch()yretrieve()puede resultar confuso. Mantener un vocabulario consistente es una herramienta importante para que los programadores manejen el código.
12. No uses la misma palabra para dos conceptos diferentes
Si sigues el punto 11 (el principio de un concepto, una palabra), podrás evitar muchas clases con nombres de métodos idénticos. No hay problema siempre que las listas de parámetros y los valores de retorno de los distintos métodos sean semánticamente equivalentes. El problema surge solo cuando usas la misma palabra para dos conceptos diferentes.
Por ejemplo, podemos usar en varias clasesadd()el método, que crea un nuevo valor añadiendo o concatenando dos valores existentes. Si más tarde necesitamos introducir un método add en una clase para añadir un parámetro a una colección, esto causará problemas debido a la diferencia semántica. Sería mejor llamar a este nuevo método insert().
13. Usa nombres del dominio de la solución
El código que escribimos puede ser leído por otros programadores en el futuro, por lo que usar algunos términos técnicos paranombrar el códigotraerá grandes beneficios. Por ejemplo, usar apropiadamente nombres de algoritmos, patrones de diseño y términos matemáticos; estas formas de nombrar probablemente harán que otros programadores entiendan el programa más fácilmente y que este les resuene.
14. Usa nombres del dominio del problema
Si realmente no encuentras un término técnico fácil de entender para nombrar, también puedes buscar nombres de código adecuados en el dominio del problema. Cuando los programadores que lean tu código en el futuro no estén seguros del significado, esto les proporcionará pistas sobre el problema.
15. Añade contexto significativo
La mayoría de los nombres no tienen significado por sí mismos y necesitan un contexto (clase/función/espacio de nombres) para que quien lea el código entienda a qué se refieren. En algunos casos, puede ser necesario añadir un prefijo al nombre para complementar el contexto. Por ejemplo, supongamos que tenemos algunas variables que representan una dirección:firstName、lastName、street、houseNumber、city、stateyzip. Si solo miramos la variable state, es difícil deducir a qué se refiere. Una buena solución es encapsular estas variables en una clase Address.
16. No añadas contexto sin motivo
Mientras el significado sea claro, los nombres más cortos suelen ser mejores que los largos, así que no añadas contexto innecesariamente. Los nombres no deben llevar prefijos con información superflua que se pueda deducir de la clase/paquete/espacio de nombres.
17. Evita la codificación
Dado el poder de los IDE actuales, ya no necesitamos codificar información de tipo y ámbito en los nombres de variables y clases. Esto incluye no añadir "I" a las interfaces, porque los usuarios del código no necesitan saber que sus clases implementan una interfaz. Así que, si insistes en usar codificación, es mejor codificar la implementación en lugar de la interfaz.
18. Evita información errónea
No des información errónea, porque eso engañará a quienes lean el código. Si nombras una variable que en realidad es un array como accountList, será fácil llegar a una conclusión equivocada.
19. Usa nombres que se puedan pronunciar
La programación es una actividad social; usar nombres que no se puedan pronunciar solo dificulta nuestra discusión.
20. Usa nombres fáciles de buscar
Usar nombres cortos y genéricos dificulta la búsqueda de cosas en la base de código. Esto afecta nuestra manipulación del código y la refactorización.
Por último, si tienes opiniones diferentes, no dudes en compartirlas.
Fuente: http://www.codeceo.com/article/20-naming-tips-programmer-know.html