Come scrivere case cammello per parole come "phonenumber", "moto", "lunghezza d'onda", ecc.

72

Sto riscontrando un problema nel comprendere come applicare la sintassi di camelCase ad alcuni dei miei nomi di variabili.

Ad esempio, come dovrei scrivere correttamente una parola come "phonenumber" nel caso dei cammelli? È phoneNumber o phonenumber ? Analogamente a "username", è username o userName ?

Penso che non sia corretto con il caso cammello come motorCycle , passWord , sunDay , setUp o waveLength poiché questi sono solo una parola ciascuno. Penso che potrebbe essere il motivo per cui si chiama hashMap ma anche hashtable in cammello senza la maiuscola nell'ultimo caso perché hashtable è una parola mentre hash map è di due parole.

Ma se la moto ha un colore, allora sarebbe motorcycleColor dal momento che una parola è concatenata? È corretto o dovrebbe essere phoneNUmber , waveLength , sunBlock e anche sunDay per la domenica della settimana?

Perché ad esempio è il metodo chiamato getISOCountries mentre dice HttpHeaders e.g. non è chiaro cosa diventa in minuscolo se abbiamo un metodo come String camelCaseString = dog.toCamelCase() o interface CamelCase .

Correlati: link

    
posta Niklas Rosencrantz 24.02.2014 - 18:10
fonte

7 risposte

168

Devi scrivere in maiuscolo la lettera dopo il punto in cui "normalmente" dovrebbe essere uno spazio (quando scriverai una lettera invece del codice sorgente). La tua prima ipotesi è corretta:

  • È una "motocicletta", non un "motociclo", quindi la tua variabile dovrebbe essere denominata motorcycle , non motorCycle .
  • È una "mappa hash", quindi vai con hashMap , non hashmap .
  • "Domenica" è una parola - > sunday , non sunDay .
  • Mentre "giorno della settimana" sarebbe dayOfWeek , non dayofweek .
risposta data 24.02.2014 - 18:17
fonte
44

Parte 1
Penso che ciò che ti sta facendo inciampare è che alcuni dei tuoi esempi sono parole composte , mentre altri non lo sono.

  • numero di telefono // non una parola composta
  • moto // parola composta
  • lunghezza d'onda // parola composta
  • sunblock // parola composta
  • domenica // parola composta *
  • parola composta da moto color // usata con una parola non composta.

Le parole composte non seguono la notazione del caso cammello per la seconda parola nella parola composta.

Quindi è motorcycle e non motorCycle .

Ma il "numero di telefono" non è una parola composta e vorrebbe seguire la notazione del caso dei cammelli. vale a dire phoneNumber .

E questo porta a: motorcycleColor .

Se non riesco a ricordare se una parola è veramente una parola composta o no, la cerco nel dizionario per accertarmi.

Parte 2
Due dei tuoi esempi sono un po 'più complicati.

  • mappa hash
  • tabella hash

Sono difficili perché alcuni li scriveranno come "hashmap" e "hashtable". Secondo il dizionario che ho appena controllato, sono parole separate e non una parola composta. Quindi il caso cammello corretto sarebbe hashMap e hashTable . Non tutte le squadre seguono questa convenzione, quindi è necessario chiedere ai compagni di squadra ciò che preferiscono e quindi attenersi a questo. In questo caso, la coerenza è più importante di ciò che un dizionario può dire è corretto.

* Alcuni discuteranno che domenica è una parola composta da quando gli altri giorni della settimana non lo sono, ma per gli scopi di questa domanda elimerò il problema. È più facile da trattare come una parola composta e quindi nessun caso di cammello.

    
risposta data 24.02.2014 - 18:30
fonte
8

Come altri hanno sottolineato, il caso cammello viene usato quando si uniscono le parole. Non usare la custodia del cammello con una sola parola inglese. Il problema viene nel determinare quali composti sono singole parole. Lasciati a se stessi, i programmatori prenderanno decisioni diverse a seconda della loro conoscenza dell'inglese. Ciò porta a incongruenze nella capitalizzazione, che sono quasi fastidiose come gli errori di ortografia.

Per evitare ciò, i programmatori dovrebbero utilizzare un riferimento standard (ad esempio dictionary.com ) quando non sono sicuri di ortografia o di lettere maiuscole. Anche così, se la coerenza nella denominazione è importante per il tuo progetto, non c'è alcun sostituto per la revisione del codice.

Scegliere un singolo riferimento per il tuo progetto risolverà la maggior parte degli argomenti su lettere maiuscole e ortografiche. Ci sono alcuni composti come Hashtable che non sono nei dizionari, ma sono in maiuscolo come singole parole nelle API Java e C #. Dovrai prendere una decisione a livello di progetto su questi. In Java, è "HashMap" ma "Hashtable". IMO "Hashtable" è chiaramente errato; non appare mai come una singola parola tranne che come nome in un'API.

    
risposta data 24.02.2014 - 19:18
fonte
4

Il modo più semplice per fare il caso cammello è sulla delineazione delle parole.

Esempi dalla tua domanda:

  • numero di telefono: numero di telefono
  • moto: moto
  • domenica: domenica
  • lunghezza d'onda: lunghezza d'onda

Se non lo divideresti in due parole, non dovresti usare anche il caso cammello. Altrimenti lo stai usando su sillabe e quanto è sciocco questo aspetto

  • auxIlIArY (Questa è una parola di 5 sillabe, per non parlare del fatto che l'io assomiglia a schifo di caratteri non-monospaced / sans-serif).
risposta data 24.02.2014 - 18:19
fonte
4

Qui è dove una complicazione con un inglese semplice ostacola il modo in cui un abuso in seguito inglese si adatta alle regole dello spazio bianco dei token nei contesti di programmazione.

Delle parole di esempio che dai, quasi tutte sono composti. Sunday non è, come se fosse nato come un composto, lo ha fatto così tanto tempo fa che a malapena si può considerarlo ora, soprattutto perché il suo essere dedicato al sole è più una curiosità storica che una parte strong della prospettiva religiosa e culturale delle persone di lingua inglese.

E in inglese, i tre modi principali per scrivere un composto sono aperti (con uno spazio tra le due parole), sillabati e chiusi (senza spazio o trattino tra i due). E mentre ci sono alcune regole sulla sillabazione di composti aperti in certe situazioni, non c'è davvero molto in termini di regole solide per sapere quale forma viene usata per un determinato composto oltre a vedere ciò che fanno gli altri, e ci sono ancora momenti in cui tu troveremo due o anche tutte e tre le forme ( frullino per le uova , frullino per le uova e frullino per le uova per esempio).

Qui, il numero di telefono è quasi sempre scritto aperto, quindi dovrebbe essere trattato come due parole.

E quando inter-capping per formare un token, lo spazio o il trattino viene rimosso e la seconda e successiva parola scritta nel titolo-case, quindi phoneNumber o PhoneNumber come appropriato per la tua convenzione.

La cosa che rende phoneNumber strana è probabilmente che è più comunemente data come phone nella maggior parte dei contesti, o come number quando il contesto riguarda una connessione telefonica.

    
risposta data 25.02.2014 - 12:20
fonte
2

Assicura la coerenza all'interno del file di codice.

Promuovi la coerenza all'interno del progetto di codice.

Preferisci la coerenza all'interno della libreria di codici.

La composizione delle parole per rappresentare i concetti cambia man mano che acquisiamo familiarità con una determinata agglutinazione .

Ad esempio ...

  • "set telefonico" è stato abbreviato in "telefono"
  • "telefono" è stato abbreviato in "telefono"
  • "numero di telefono" a volte è stato contratto in "numero di telefono"
  • 'numero di telefono' è diventato presto 'phonenumber'
  • 'phonenumber' viene spesso ulteriormente ridotto al solo 'telefono'
  • 'cellulare', o solo 'cella' sono in uso comune oggi
  • 'homephone' e 'workphone' potrebbero presto diventare comuni anche

Si noti che il controllo ortografico di StackExchange non è in grado di prendere una decisione. 'Phonenumber' alla fine della frase precedente andava bene ma contrassegna quello all'inizio della frase (maiuscola o meno).

Tanto più che tutti desiderano che ci sia "un modo giusto" per fare le cose, quando si parla di linguaggio, non può mai esserlo. Quando finisci il tuo progetto, probabilmente l'utilizzo sarà cambiato. Certamente la tua comprensione sarà cambiata e la funzionalità del metodo / et.al. probabilmente sarà cambiato anche (In tal caso, dovresti probabilmente cambiare il nome in modo appropriato.)

    
risposta data 28.02.2014 - 10:21
fonte
-1

Da una prospettiva strettamente tecnica (USA), dove xxx-yyy-zzzz è ciò che normalmente si pensa come "numero di telefono", la parte xxx è correttamente indicata come il prefisso, la parte yyy è correttamente riferita a come lo scambio, e il zzzz è correttamente indicato come il numero.

Poiché non solo "phonenumber" non è una parola composta (ancora), ma se diventa uno, farà erroneamente riferimento a qualcosa al di fuori dell'intento del suo creatore, direi che la sintassi di camelCase richiederebbe phoneNumber per qualsiasi variabile che la referenzi , ma se hai intenzione di fare qualcosa con l'attuale sistema telefonico, utilizzerei phoneExchangeNumber per le sette cifre e phoneACExchangeNumber per le versioni a dieci cifre.

    
risposta data 26.05.2017 - 18:26
fonte

Leggi altre domande sui tag