Así que actualmente estaba en el medio de la codificación, desafortunadamente para mí, estaba en "The Zone" y luego pensé, ¿son demasiado largos mis nombres de método / variables?
POP fuera de la zona voy!
Entonces vine a preguntar, ¿son demasiado largos mis nombres de método / variable? ¡Sé el juez! ¡La bonificación apunta a cualquiera que pueda descubrir lo que estoy escribiendo, aunque estoy seguro de que un gurú lo resolverá rápidamente!
De todos modos, aquí están algunos de mis métodos y nombres de variables.
Métodos: searchBlockedListForBlockedSquares (), isCurrentSquareNextToAtLeastOneBlockedSquare (), searchBlockedListForBlockedSquares ()
Variables: isNextToBlockedSquares;
Supongo que solo había una variable que parecía demasiado larga.
Respuestas:
Tus nombres me parecen bien en términos de longitud. Sin embargo, la forma en que se nombran sugiere que tal vez algunas clases nuevas estén en orden.
Por ejemplo, en lugar de
searchBlockedListForBlockedSquares()
usted podría tenerblockedList.getBlockedSquares()
. Del mismo modo, seisCurrentSquareNextToAtLeastOneBlockedSquare()
conviertecurrentSquare.isAdjacentToABlockedSquare()
.fuente
Creo en los nombres de variables descriptivas, incluso si eso significa nombres de variables largos. Y con intellisense cada vez más popular, no creo que afecte mucho en términos de productividad.
Odio las abreviaturas porque son casi imposibles de usar constantemente. Además, pueden ser ambiguos y hacen que las cosas sean más difíciles de leer. Incluso cuando son parte de un estándar, no me gustan. Además, cuando se trata de eso, no eliminan tantas letras a menos que abrevie mucho. Y abreviar mucho mata la legibilidad.
Sin embargo, el mayor problema que introducen los nombres largos es la longitud de las líneas de código. Llamar a una función con un nombre largo y pasarle dos o tres nombres largos de variables puede hacer una larga línea de código. Debido a eso, trato de mantener mis nombres lo más cortos posible, aunque de nuevo, prefiero tener nombres descriptivos, incluso si esto significa ajustar líneas o desplazarse.
Sin embargo, al ver sus nombres de ejemplo, el hecho de que todo termine con BlockedSquares me hace pensar que parte del nombre podría ser redundante. De hecho, también podría significar que estos elementos se pueden encapsular en su propia clase, probablemente llamada BlockedSquares. Ese cambio que hace que los nombres sean un poco más cortos.
fuente
Un nombre de variable tiene la longitud incorrecta cuando no describe claramente su propósito. Eso se aplica a ser demasiado corto o demasiado largo.
Los nombres de variables breves y concisos pueden ser ambiguos o, peor aún, no tener relación con lo que es la variable. En los días de BASIC interpretado, el intérprete nos limitaba a dos nombres de personajes. Fue muy difícil encontrar nombres significativos en un programa grande. Los nombres de variables de una sola letra a menudo se usan para bucles for y contadores, pero creo que deberían evitarse de lo contrario.
for (i = 0; i < 10; i++) {...}
utilizai
y eso es bastante común.j
es un nombre de variable secundaria.Los nombres de variables largos son demasiado largos cuando se quedan sin aliento o llenos de palabras vacías, lo que los hace más largos de lo necesario. Si tengo un montón de variables con nombres similares, intentaré eliminar las partes comunes que son prescindibles y mantener las partes de identificación únicas de los nombres.
Hubiera llamado "
isCurrentSquareNextToAtLeastOneBlockedSquare
" acurrentSquareNextToBlockedSquare?
, si lo estuviera haciendo en Ruby.fuente