underscore style snake programming practices pascalcase hungarian coding camel best and coding-style naming-conventions

coding-style - programming - python snake case naming style



Convenciones de nombres: ¿qué nombre ponerle a una variable booleana? (11)

Dos cuestiones para pensar

  1. ¿Cuál es el alcance de la variable (en otras palabras, ¿estás hablando de una variable local o un campo?)? Una variable local tiene un alcance más estrecho en comparación con un campo. En particular, si la variable se usa dentro de un método relativamente corto, no me importaría demasiado su nombre. Cuando el alcance es grande, nombrar es más importante.

  2. Creo que hay un conflicto inherente en la forma en que tratas esta variable. Por un lado, dices "falso cuando un objeto es el último de una lista", donde, por otro lado, también quieres llamarlo "en el frente". Un objeto que es (no) el último en la lista no me parece (no) inFront. Esto iría con lo último.

Necesito un buen nombre de variable para un valor booleano que devuelve falso cuando un objeto es el último en una lista.

El único nombre decente que se me ocurre es ''inFront'', pero no creo que sea lo suficientemente descriptivo.

Otra opción sería ''isNotLast''. Sin embargo, esto no es una buena práctica (Código Completo, página 269, Usar nombres de variables booleanas positivas).

Soy consciente de que podría cambiar la definición de la variable. Tan verdadero se devuelve cuando un objeto es el último y llama a la variable ''isLast'', sin embargo, haría esta tarea más fácil si tuviera la primera explicación.


Haskell usa init para referirse a todos menos al último elemento de una lista (el inverso de la tail , básicamente); would isInInit funciona, o es demasiado opaco?


Mi voto sería llamarlo IsLast y cambiar la funcionalidad. Si eso no es realmente una opción, dejaría el nombre como IsNotLast.

Estoy de acuerdo con Code Complete (Usar nombres de variables booleanos positivos), también creo que las reglas están hechas para romperse. La clave es romperlos solo cuando tienes que hacerlo. En este caso, ninguno de los nombres alternativos es tan claro como el nombre que "rompe" la regla. Entonces este es uno de esos momentos en los que romper la regla puede estar bien.


Personalmente, más que cualquier cosa, cambiaría la lógica, o miraría las reglas de negocios para ver si dictan cualquier posible denominación.

Desde entonces, la condición real que alterna el booleano es en realidad el acto de ser "último". Yo diría que cambiar la lógica y nombrarla como "IsLastItem" o similar sería un método más preferido.


Qué tal si:

hasSiblings or isFollowedBySiblings (or isFolloedByItems, or isFollowedByOtherItems etc.) or moreItems

Aunque creo que a pesar de que no debes acostumbrarte a frenar ''las reglas'' a veces la mejor manera de lograr algo es hacer una excepción a la regla (pautas de Code Complete), y en tu caso, nombrar la variable isNotLast


Un nombre semántico simple sería el last . Esto permitiría código código siempre positivo como:

if (item.last) ... do { ... } until (item.last);


Yo iría con isUnlast.

Es breve, concisa, ¡y describe la situación perfectamente!


hasFollowingItems? o tieneSiguiendoXXXXs donde XXXX es lo que sea que el elemento en su lista es?


isPenultimateOrPrior

isBeforeEnd


beforeLast la variable antes del beforeLast .


isBeforeTheLastItem isInFrontOfTheLastItem isTowardsTheFrontOfTheList

Tal vez demasiado prolijo, pero pueden ayudar a darle ideas.