De acuerdo, esta es una de esas pequeñas cosas que siempre me molestaron. Por lo general, no abrevo los identificadores, y la única vez que uso un identificador corto (por ejemplo, i
) es para un bucle cerrado. Por lo tanto, me irrita cuando estoy trabajando en C ++ y tengo una variable que necesita ser nombrada operator
o class
y tengo que evitarla o usar una abreviatura, porque termina sobresaliendo. Advertencia: esto puede sucederme de manera desproporcionada a menudo porque trabajo mucho en el diseño de lenguaje de programación, donde los objetos de dominio pueden reflejar conceptos en el lenguaje anfitrión y causar inadvertidamente enfrentamientos.
¿Cómo lidiarías con esto? ¿Abreviar? ( op
) ¿Error ortográfico? ( klass
) ¿Algo más? ( operator_
)
$var
sintaxis de PHP , esta es.Respuestas:
Acepte que es posible que deba realizar cambios menores en su convención de nomenclatura, como agregar mayúsculas. Es mejor aceptar esto lo antes posible para que todo el código posterior sea coherente.
Considera ser más específico. Las palabras clave tienden a ser bastante amplias, por lo que limitarse
class
ademonstrationClass
no solo solucionar los problemas, sino que también aumenta la legibilidad.fuente
No es algo que haya encontrado, pero si me encuentro en tal situación, trataría de resolverlo con las siguientes opciones, en orden.
fuente
const Foo&
no tiene ningún nombre completo razonable que no seafoo
. De acuerdo, podría ser mejor darleFoo
un nombre más descriptivo quefoo
si vive en un cuerpo funcional y tiene un propósito menos especializado.El idioma gana; no puede ser más astuto que el compilador (ignorando las abominaciones como el PL / 1
IF IF = THEN THEN THEN = ELSE ELSE ELSE = IF END
, pero luego PL / 1 no le haría hacer la pregunta en primer lugar). Básicamente, debe seguir las reglas del idioma, y debe encontrar una alternativa a las palabras clave del idioma para su propio uso, o encontrar un idioma alternativo.Entonces, excepto en circunstancias muy inusuales, te adaptas al idioma, no al revés.
fuente
En lugar de abreviar, ¿qué tal el alargamiento? Si está implementando una construcción de clase en un lenguaje Foo, ¿qué tal si usa FooClass y foo_class? (Módulo cualesquiera que sean sus preferencias de carcasa).
fuente
Algunas de las abreviaturas que he usado
class
, en orden de frecuencia:cls
clss
clazz
theClass
aClass
Si sé qué clase
Class
representa la instancia, podría incluirla en el nombre de la variable:stringClass = Class.forName("java.lang.String");
fuente
En C y C ++, las palabras clave son todas minúsculas y el lenguaje distingue entre mayúsculas y minúsculas, así que presione la tecla Mayús de vez en cuando y desaparecerán muchos problemas.
En el Módulo 2, las palabras clave son todas mayúsculas, pero siempre que sus identificadores tengan algunas letras minúsculas, la diferencia es obvia y los enfrentamientos imposibles.
Además, las convenciones de nomenclatura absoluta en cierta medida deben reflejar las convenciones normales del lenguaje que está utilizando, por lo que ciertamente escribiría "myClass" en Java, donde es más probable que escriba "My_Class" en C ++.
Básicamente, no solo estás escribiendo para el compilador, sino que lo que la gente encuentra legible depende en cierta medida del contexto y las expectativas relacionadas.
fuente
class
yClass
dañaría la legibilidad del código.A menudo no me encuentro con esto, pero cuando lo hago, tiende a no ser un problema porque uso Delphi y te permite solucionar este problema anteponiendo un & al identificador. Entonces "clase" no es un identificador válido, pero "& class" sí lo es.
fuente
Agregaría algún tipo de espacio de nombres al nombre de la variable. Por ejemplo, suponga que tiene un módulo llamado usuario y luego modificaría el operador de nombre de variable para que sea algo así como user_operator o userOperator.
fuente
a
,an
ythe
los estudiantes principiantes de CS lo usan con frecuencia inquietante.aPerson
.a
aparte de las variables de ciclo cerrado: /cambiar o ajustar mi convención de nomenclatura
fuente