Cómo escribir un caso de camello para palabras como "número de teléfono", "motocicleta", "longitud de onda", etc.

72

Tengo problemas para entender cómo aplicar 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 el caso del camello? ¿Es phoneNumber o phonenumber ? De forma similar con "nombre de usuario", ¿es username o userName ?

Creo que no se ve bien con el caso de camello como motorCycle , passWord , sunDay , setUp o waveLength ya que son solo una palabra cada uno. Creo que esa podría ser la razón por la que se llama hashMap pero también hashtable en el caso de los camellos sin el 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 ya que una palabra está concatenada? ¿Es correcto o debería ser phoneNUmber , waveLength , sunBlock e incluso sunDay para el domingo de la semana?

Por ejemplo, el método llamado getISOCountries mientras dice HttpHeaders e.g. no está claro qué se convierte en minúsculas si tenemos un método como String camelCaseString = dog.toCamelCase() o interface CamelCase .

Relacionado: enlace

    
pregunta Niklas Rosencrantz 24.02.2014 - 18:10

7 respuestas

168

Debes usar mayúsculas en la letra después de que "normalmente" haya un espacio (cuando escribirías una letra en lugar de un código fuente). Su primera suposición es correcta:

  • Es una "motocicleta", no un "ciclo del motor", por lo que su variable debe llamarse motorcycle , no motorCycle .
  • Es un "mapa hash", por lo que utilizas hashMap , no hashmap .
  • "Domingo" es una palabra - > sunday , no sunDay .
  • Si bien "día de la semana" sería dayOfWeek , no dayofweek .
respondido por el oezi 24.02.2014 - 18:17
44

Parte 1
Creo que lo que te hace tropezar es que algunos de tus ejemplos son palabras compuestas , mientras que otros no.

  • número de teléfono // no es una palabra compuesta
  • motocicleta // palabra compuesta
  • longitud de onda // palabra compuesta
  • bloqueador solar // palabra compuesta
  • domingo // palabra compuesta *
  • color de la motocicleta // palabra compuesta utilizada con una palabra no compuesta.

Las palabras compuestas no siguen la notación de caso de camello para la segunda palabra en la palabra compuesta.

Entonces, es motorcycle y no motorCycle .

Pero "número de teléfono" no es una palabra compuesta y seguiría a la notación de caso de camello. es decir, phoneNumber .

Y eso lleva 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.

  • mapa hash
  • tabla hash

Son complicados porque algunos los deletrearán como "hashmap" y "hashtable". Según el diccionario que acabo de marcar, son palabras separadas y no una palabra compuesta. Entonces, el caso correcto de camello sería hashMap y hashTable . No todos los equipos siguen esa convención, por lo que debe preguntarles a sus compañeros qué prefieren y seguir con eso. La consistencia es más importante en este caso que lo que un diccionario puede decir que es correcto.

* Algunos argumentarán 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 eludiré este tema. Es más fácil de tratar como una palabra compuesta y, por lo tanto, no tiene funda de camello.

    
respondido por el GlenH7 24.02.2014 - 18:30
8

Como han señalado otros, el caso de camello se usa cuando se unen palabras. No utilice la caja del camello dentro de una sola palabra inglesa. El problema viene al determinar qué compuestos son palabras simples. Dejados a sí mismos, los programadores tomarán diferentes decisiones dependiendo de su conocimiento del inglés. Esto lleva a inconsistencias en el uso de mayúsculas, que son casi tan molestas como faltas de ortografía.

Para evitar esto, los programadores deben usar una referencia estándar (por ejemplo, dictionary.com ) cuando no estén seguros de la ortografía o las mayúsculas. Aun así, si la coherencia en la asignación de nombres es importante para su proyecto, no hay sustituto para la revisión del código.

Elegir una sola referencia para su proyecto resolverá la mayoría de los argumentos sobre el uso de mayúsculas y ortografía. Hay algunos compuestos como Hashtable que no están en los diccionarios, pero están en mayúsculas como palabras simples en las API de Java y C #. Usted querrá tomar una decisión de todo el proyecto sobre ellos. En Java, es "HashMap" pero "Hashtable". IMO "Hashtable" es claramente incorrecto; nunca aparece como una sola palabra, excepto como un nombre en una API.

    
respondido por el kevin cline 24.02.2014 - 19:18
4

La forma más sencilla de hacer un caso de camello es en la delimitación de palabras.

Ejemplos de su pregunta:

  • número de teléfono: número de teléfono
  • motocicleta: motocicleta
  • domingo: domingo
  • longitud de onda: longitud de onda

Si no lo dividirías en dos palabras, tampoco deberías usar funda de camello. De lo contrario, lo estás utilizando en sílabas y qué tonta se ve este aspecto

  • auxIlIArY (esta es una palabra de 5 sílabas; por no mencionar que el aspecto de I es una mierda en las fuentes no monoespaciadas / sans-serif).
respondido por el Jeff Langemeier 24.02.2014 - 18:19
4

Aquí es donde una complicación con el inglés simple se interpone en el modo en que uno más tarde abusa del inglés para ajustarlo a las reglas de espacios en blanco de los tokens en contextos de programación.

De las palabras de ejemplo que das, casi todas son compuestos. El domingo no lo es, ya que aunque se originó como un compuesto, lo hizo hace tanto tiempo que apenas puede considerarse uno ahora, especialmente porque su dedicación al sol es más una curiosidad histórica que una Gran parte de la perspectiva religiosa y cultural de las personas de habla inglesa.

Y en inglés, las tres formas principales de escribir un compuesto son abiertas (con un espacio entre las dos palabras), con guión y cerradas (sin espacio o guión entre las dos). Y si bien hay algunas reglas sobre el guión de compuestos abiertos en ciertas situaciones, realmente 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 aún hay momentos en que Encontraré dos o incluso las tres formas ( eggbeater , egg-beater y egg beater por ejemplo).

Aquí, número de teléfono casi siempre se escribe abierto, por lo que debe tratarse como dos palabras.

Y al intercaquetear para formar un token, el espacio o el guión se eliminan y la segunda palabra y las subsiguientes se escriben en el título del caso, por lo tanto, phoneNumber o PhoneNumber según corresponda para su convención.

Lo que hace que phoneNumber parezca extraño es que probablemente se da más comúnmente como phone en la mayoría de los contextos, o como number cuando el contexto es sobre una conexión telefónica.

    
respondido por el Jon Hanna 25.02.2014 - 12:20
2

Asegure la coherencia dentro del archivo de código.

Promover la coherencia dentro del proyecto de código.

Prefiere 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 .

Por ejemplo ...

  • "teléfono" se acortó a solo "teléfono"
  • "teléfono" se acortó a solo "teléfono"
  • el 'número de teléfono' a veces se contrató en 'número de teléfono'
  • 'número de teléfono' pronto se convirtió en 'número de teléfono'
  • el "número de teléfono" a menudo se reduce aún más a solo "teléfono"
  • 'celular' o simplemente 'celular' se usan comúnmente hoy
  • 'homephone', y 'workphone' pronto pueden volverse comunes también

Tenga en cuenta que el corrector ortográfico StackExchange no puede tomar su decisión. 'Phonenumber' al final de la oración anterior estaba bien, pero marca la que está al principio de la oración (en mayúscula o no).

Por mucho que todos deseen que haya "una forma correcta" de hacer las cosas, cuando se trata de lenguaje, eso nunca puede ser. Cuando termine su proyecto, el uso probablemente habrá cambiado. Ciertamente, su comprensión habrá cambiado y la funcionalidad del método / et.al. Probablemente habrá cambiado también. (En cuyo caso, probablemente deberías cambiar el nombre adecuadamente).

    
respondido por el DocSalvager 28.02.2014 - 10:21
-1

Desde una perspectiva estrictamente técnica (EE. UU.), donde xxx-yyy-zzzz es lo que normalmente se considera un "número de teléfono", la parte xxx se denomina correctamente código de área, la parte yyy se denomina correctamente como el intercambio, y el zzzz se conoce correctamente como el número.

Dado que no solo "phonenumber" no es una palabra compuesta (todavía), sino que si se convierte en una, hará referencia a algo fuera de la intención de su creador, yo diría que la sintaxis de camelCase requeriría phoneNumber para cualquier variable que lo haga referencia , pero si va a hacer algo con el sistema telefónico real, usaría phoneExchangeNumber para los siete dígitos y phoneACExchangeNumber para las versiones de diez dígitos.

    
respondido por el MLT 26.05.2017 - 18:26

Lea otras preguntas en las etiquetas