si tuviera una propiedad booleana, ¿ shouldAutoLogin
es mejor nombrar al captador getShouldAutoLogin
o simplemente shouldAutoLogin
para que se lea más como inglés?
ex:
if(shouldAutoLogin){
...
}
o
if(getShouldAutoLogin){
...
}
readability
clean-code
Mike Bryant
fuente
fuente
${foo.something}
se traduzcafoo.getSomething()
entre bastidores.isFoo()
lugar degetFoo()
. En su ejemplo, eso seríaisAutoLogin()
if()
él, es poco probable que sea Java.Respuestas:
La convención de nomenclatura para getters es normalmente,
getAutoLogin()
si obtiene alguna cadena u objeto.isAutoLogin()
para booleano.fuente
Tradicionalmente, los captadores tienen el prefijo
get
ois
para el valor. Esto a menudo se menciona en las guías de estilo java. Por ejemplo, Java Programming Style Guide (este es solo un ejemplo).La convención para tales nombres de métodos se aplica ocasionalmente en herramientas que usan reflexión o esperan ciertos estilos de código. Por ejemplo, nuevamente en Java (aunque el lenguaje de expresión de JSP),
${foo.bar}
se traducirá a la llamadafoo.getBar()
cuando se compile el jsp. ElgetValue()
se aplica de esta manera para que se convierta en algo más que una simple convención.Como se mencionó, los ejemplos anteriores son de Java. Esta es una convención para Java . Otros idiomas tienen otras convenciones que deberían ser consideradas y probablemente seguidas también. Algunos idiomas usan propiedades (y pueden hacer otras cosas interesantes con ellos, como copiar a pedido o solo lectura).
Consulte las guías de estilo para su idioma particular. Probablemente sea una buena idea seguirlos cuando sea posible para que otros codificadores, cuando lean su código, puedan acceder al código más rápidamente sin tratar de descubrir su estilo personal.
fuente
Nombrar un método de una manera hábilmente legible tiene ventajas. Nombrar métodos para que su intención y naturaleza sean fáciles de derivar del nombre ("los captadores tienen prefijo
get
, predicados booleanosis
") también tiene ventajas.Depende de usted lograr un equilibrio, pero en un gran proyecto los beneficios de la consistencia generalmente superan a los de la inteligencia accidental.
Renombrar un método para hacer que el nombre sea legible y conforme a la convención es un buen ejercicio diario. En su caso particular, consideraría algo como
isAutoLoginEnabled
ogetAutoLoginFlag
.OTOH, usted tiene un montón de métodos conceptualmente similares que todos pueden seguir el patrón
shouldDoSomething
, su nombre original también puede estar bien.fuente
Siempre encuentro que el código debe ser tan legible como sea posible. Ayuda a definir claramente las intenciones del código. En su caso, piense cuáles son los usos positivos y negativos de su valor booleano y cómo afectaría la legibilidad y las intenciones de su lógica.
versus
¿Qué da un significado más claro a la intención de lo que el código está tratando de hacer?
Como otros han sugerido, incluso cambiaría el nombre de la variable a
o similar
fuente
Tiendo a escribir
getAutoLogin
cuando quiero el método parareturn
un tipo de datos, como anint
o aString
. Sin embargo, si quiero verificar si estrue
ofalse
(boolean
), simplemente cambio elget
a unis
siguiente:getAutoLogin
>isAutoLogin
. Creo que hay una convención de nombres para cada idioma.fuente