Tengo un problema para entender cómo aplicar la sintaxis de camelCase a algunos de mis nombres de variables.
Por ejemplo, ¿cómo debo escribir correctamente una palabra como "número de teléfono" en caso de camello? Es phoneNumber
o phonenumber
? De manera similar con "nombre de usuario", ¿es username
o userName
?
Creo que no se ve bien con el caso de camellos como motorCycle
, passWord
, sunDay
, setUp
o waveLength
, ya que estos son sólo una palabra cada uno. Creo que podría ser por eso que se llama, hashMap
pero también hashtable
en el caso de camello sin la capital en el último caso porque la tabla hash es una palabra, mientras que el mapa hash es dos palabras.
Pero si la motocicleta tiene un color, ¿sería motorcycleColor
porque una palabra está concatenada? ¿Es correcto o debe ser phoneNUmber
, waveLength
, sunBlock
e incluso sunDay
para el domingo de la semana?
Por qué, por ejemplo, se llama al método getISOCountries
mientras dice, HttpHeaders
por ejemplo, no está claro qué se convierte en minúsculas si tenemos un método como String camelCaseString = dog.toCamelCase()
o interface CamelCase
.
username
es lo que es, es un distintivo de llamada, no el "nombre de usuario", por lo que se parece más a la motocicleta que al nombre o apellido (que debe estar en camello)street
debería ser una clase yname
uno de sus atributos / miembros de datos.Respuestas:
Debe poner en mayúscula la letra después de donde "normalmente" habría un espacio (cuando escribiría una letra en lugar del código fuente). Su primera suposición es correcta:
motorcycle
, nomotorCycle
.hashMap
, nohashmap
.sunday
, nosunDay
.dayOfWeek
, nodayofweek
.fuente
hashmap
como una sola palabra, aunque irónicamente no lo hacemostree map
. encogiéndose de hombroshoneyBee
(y nohoneybee
, de hecho, no "abeja" sino "abeja"), ybutterfly
.setUp
embargo, el caso no direccionado es un caso límite, es una sola palabra, peroJUnit
históricamente tiene su nombre de inicialización de dispositivosetUp
.JUnit
tiene razón, el resto de nosotros somos el caso límite. :)tearDown
: DParte 1
Creo que lo que te hace tropezar es que algunos de tus ejemplos son palabras compuestas , mientras que otros no.
Las palabras compuestas no siguen la notación de caso de camello para la segunda palabra en la palabra compuesta.
Entonces es
motorcycle
y nomotorCycle
.Sin embargo, "el número de teléfono" no es una palabra compuesta y podría seguir la notación caso de camellos. es decir
phoneNumber
.Y que conduce a:
motorcycleColor
.Si no puedo recordar si una palabra es realmente una palabra compuesta o no, la busco en el diccionario para estar segura.
Parte 2
Dos de tus ejemplos son un poco más complicados.
Son difíciles porque algunos los deletrearán como "hashmap" y "hashtable". Según el diccionario que acabo de revisar, son palabras separadas y no una palabra compuesta. Entonces, el caso de camello correcto sería
hashMap
yhashTable
. No todos los equipos siguen esa convención, por lo que debe preguntar a sus compañeros qué prefieren y luego seguir con eso. La consistencia es más importante en este caso que lo que un diccionario puede decir es correcto.* Algunos discutirán acerca de que el domingo es una palabra compuesta, ya que otros días de la semana no lo son, pero a los efectos de esta pregunta, evitaré ese problema. Es más fácil tratarlo como una palabra compuesta y, por lo tanto, no es un caso de camello.
fuente
if (currentDay == thorsDay) {...
Hmm ... lástima que las bibliotecas de fechas no tengan eso como una opción de formato cuando desee obtener el nombre completo del día de la semana.HashMap hashMap = new HashMap();
Como otros han señalado, el caso de camello se usa al unir palabras. No use camel case dentro de una sola palabra en inglés. El problema viene al determinar qué compuestos son palabras simples. Dejados en paz, los programadores tomarán diferentes decisiones dependiendo de su conocimiento del inglés. Esto lleva a inconsistencias en la capitalización, que son casi tan molestas como las faltas de ortografía.
Para evitar esto, los programadores deben usar una referencia estándar (por ejemplo, dictionary.com ) cuando no estén seguros acerca de la ortografía o las mayúsculas. Aun así, si la coherencia en los nombres es importante para su proyecto, no hay sustituto para la revisión del código.
Elegir una referencia única para su proyecto resolverá la mayoría de los argumentos sobre mayúsculas y ortografía. Hay algunos compuestos como Hashtable que no están en los diccionarios, pero se escriben en mayúsculas como palabras simples en las API de Java y C #. Deberá tomar una decisión de todo el proyecto sobre ellos. En Java, es "HashMap" pero "Hashtable". OMI "Hashtable" es claramente incorrecto; nunca aparece como una sola palabra, excepto como un nombre en una API.
fuente
La forma más sencilla de hacer un caso de camello es la delineación de palabras.
Ejemplos de su pregunta:
Si no lo dividirías en dos palabras, tampoco deberías usar camello. De lo contrario, lo está usando en sílabas y qué tonto se ve esto
fuente
setup
, mientras que si tuviera una función para configurar algo, se llamaríasetUp
.wavelength
owaveLength
dependiendo de si el valor en cuestión se relaciona con la velocidad de propagación dividida por la frecuencia, o si se relaciona con la "longitud" (no necesariamente la distancia) de algún tipo de onda . Por ejemplo, una variable de la biblioteca de síntesis de audio para el número de muestras asociadas con una onda no seríawavelength
sinowaveLength
.WaveLength
en sí mismo sería un poco vago en cualquiera de los escenarios más simplistas [se refiere al tamaño del búfer o la longitud de la sección de bucle], pero las palabras podrían aparecer perfectamente en un nombre más largo.Aquí es donde una complicación con el inglés simple se interpone en la forma en que luego se abusa del inglés para ajustarse a las reglas de tokens de espacios en blanco en contextos de programación.
De las palabras de ejemplo que da, casi todas son compuestas. El domingo no lo es, ya que si bien se originó como un complejo, lo hizo hace tanto tiempo que apenas se puede considerar uno ahora, especialmente porque estar dedicado al sol es más una curiosidad histórica que una parte fuerte de lo religioso y cultural. perspectiva de las personas de habla inglesa.
Y en inglés, las tres formas principales de escribir un compuesto son abierta (con un espacio entre las dos palabras), con guión y cerrada (sin espacio ni guión entre las dos). Y aunque hay algunas reglas sobre la separación de compuestos abiertos en ciertas situaciones, no hay muchas reglas firmes para saber qué forma se usa para un compuesto dado más allá de ver lo que hacen otras personas, y todavía hay momentos en que encontrará dos o incluso las tres formas ( batidor de huevos , eggbeater y batidor de huevos , por ejemplo).
Aquí, el número de teléfono casi siempre se escribe abierto, por lo que debe tratarse como dos palabras.
Y cuando se intercalan para formar un token, se elimina el espacio o guión y se escribe la segunda y posterior palabra en el título del caso, por lo tanto
phoneNumber
oPhoneNumber
según corresponda para su convención.Lo que hace que
phoneNumber
parezca extraño es probablemente que se da más comúnmente comophone
en la mayoría de los contextos, o comonumber
cuando el contexto se trata de una conexión telefónica.fuente
Asegure la consistencia dentro del archivo de código.
Promueva la consistencia dentro del proyecto de código.
Prefiere la coherencia dentro de la biblioteca de códigos.
La combinación de palabras para representar conceptos cambia a medida que nos familiarizamos con una aglutinación dada .
Por ejemplo...
Tenga en cuenta que el corrector ortográfico StackExchange no puede decidirse. 'Phonenumber' al final de la oración anterior estaba bien, pero marca el que está al comienzo de la oración (en mayúscula o no).
Por mucho que la mayoría de las personas desee que haya "una forma correcta" de hacer las cosas, en lo que respecta al lenguaje, eso nunca puede ser. Para cuando termine su proyecto, el uso probablemente habrá cambiado. Ciertamente, su comprensión habrá cambiado y la funcionalidad del método / et.al. probablemente también haya cambiado. (En cuyo caso, probablemente debería cambiar el nombre de manera apropiada).
fuente
Desde una perspectiva estrictamente técnica (EE. UU.), Donde xxx-aaa-zzzz es lo que normalmente se consideraría como un "número de teléfono", la parte xxx se conoce correctamente como el código de área, la parte aaa se conoce como el intercambio, y el zzzz se conoce adecuadamente como el número.
Como no solo "phonenumber" no es una palabra compuesta (todavía), sino que si se convierte en una, hará referencia incorrecta a algo fuera de la intención de su creador, diría que la sintaxis de camelCase requeriría phoneNumber para cualquier variable que lo haga referencia, pero si vas a hacer cualquier cosa con el sistema telefónico real, yo usaría phoneExchangeNumber para los números de siete dígitos y phoneACExchangeNumber para las versiones de diez dígitos.
fuente