¿Debo usar siempre "es" como prefijo para las variables booleanas? [cerrado]

50

¿Debo usar siempre iscomo prefijo para las variables booleanas? ¿Qué pasa con los booleanos que indican algo en el pasado? ¿Debo escribir isInitializedo wasInitialized? ¿Debo escribir para propiedades IsManyMemberso HasManyMembers?

¿Hay alguna mejor práctica? ¿O simplemente debería escribir de acuerdo con las reglas inglesas?

Mark Twain
fuente

Respuestas:

54

En realidad no, ya que los booleanos no siempre se usan para indicar que un objeto "es" algo.

"has" es un prefijo igualmente válido "was", "can" también son válidos en circunstancias particulares, además, he visto el sufijo "Able" usado.

So Object herring:-
 isFish = true
 isCat = false
 hasScales = true
 hasFur = false
 canSwim = true
 wasEgg = true
 eatAble = true

Object moggy:-
 isFish = false
 isCat = true
 hasScales = false
 hasFur = true
 canSwim = false
 wasEgg = false
 eatAble = false

Todo depende de lo que haga que el programa sea legible.

James Anderson
fuente
37
Creo que elegiría canBeEaten o isEdible en lugar de eatAble.
kzh
3
@kzh - ¡isEdible es bueno! No estoy tan seguro acerca de canBeEaten, ya que es algo que le sucede al objeto en lugar de algo que el objeto puede hacer. Picky Picky lo sé :-).
James Anderson el
1
¿Qué pasa con una bandera para indicar si algo está permitido o no? ¿Está claro "AllowsExtensions"? ¿O sería "DoesAllowExtensions" más claro, aunque sea más largo?
Ingeniero invertido
1
si utiliza -able como sufijo, no lo pondré en mayúscula ya que no es una palabra. p.ej. ponible en lugar de usar Capaz
jk.
2
@kzh: Inicialmente leí eatAblecomo "es capaz de comer" en lugar de "se puede comer". Con todo, es ambiguo y de hecho sería mejor evitarlo.
Flater
8

Yo iría con las reglas inglesas. Tiendo a pensar en el próximo codificador que considerará tu trabajo como un maníaco con hacha que vendrá después de mí si el código es difícil de entender. Cuando tengo esto en cuenta, la mejor opción para mi salud es mantener el código limpio y fácil de leer, lo que significa el mejor inglés y el mejor dominio posible.

Klee
fuente
3
"si el bacalao es demasiado difícil de entender" siguiendo el tema del pez / gato de la otra respuesta que veo
scottyseus