camelCase vs snake_case: guida alle convenzioni di denominazione nel codice
Pubblicato il 20/06/2025 · 3 min di lettura · Strumenti per sviluppatori
Daniel Okonkwo — Sviluppatore front-end e redattore Tech presso Allin
Performance web · Formati di file
Verificato su 2 fonti
camelCase unisce le parole senza spazi e mette in maiuscola ogni parola tranne la prima, come firstName. snake_case usa parole minuscole unite da trattini bassi, come first_name. PascalCase mette in maiuscola ogni parola, come FirstName, e kebab-case unisce parole minuscole con trattini, come first-name. La scelta giusta è dettata dal tuo linguaggio e dalla sua guida di stile: camelCase per le variabili JavaScript, snake_case per Python, PascalCase per i nomi di classe, kebab-case per URL e CSS.
camelCase, snake_case, PascalCase e kebab-case spiegati: come appare ciascuno, dove è la convenzione e come sceglierne uno con coerenza.
Le quattro convenzioni in breve
Tutte e quattro risolvono lo stesso problema: gli identificatori non possono contenere spazi, quindi i nomi di più parole hanno bisogno di una regola di unione. camelCase scrive myUserName, con la maiuscola a ogni parola tranne la prima. PascalCase, detto anche UpperCamelCase, mette in maiuscola anche la prima parola, dando MyUserName. snake_case mette tutto in minuscolo e unisce con trattini bassi, my_user_name. kebab-case fa lo stesso con i trattini, my-user-name.
Le differenze sono puramente stilistiche per un umano, ma non per un computer: myUserName e my_user_name sono identificatori diversi. Ecco perché convertire tra convenzioni deve essere deliberato, e perché una discrepanza tra il nome di una colonna di database e ciò che il tuo codice si aspetta è una classica fonte di bug.
Dove ogni convenzione è la norma
Le convenzioni sono stabilite dalle comunità dei linguaggi. JavaScript e Java usano camelCase per variabili e funzioni e PascalCase per classi e tipi. Python e Ruby preferiscono snake_case per variabili e funzioni, riservando PascalCase alle classi. C# usa PascalCase per metodi e proprietà. kebab-case è raro nel codice perché i trattini si leggono come segni meno, ma domina in URL, nomi di classe CSS e attributi HTML.
Un caso speciale è la costante. Molti linguaggi scrivono le costanti di compilazione in SCREAMING_SNAKE_CASE, uno snake_case tutto in maiuscolo come MAX_RETRIES. Questo segnala a colpo d'occhio che il valore non deve mai cambiare, ed è uno dei pochi posti in cui lo snake_case maiuscolo è idiomatico.
Scegliere e convertire con coerenza
La regola più importante è la coerenza all'interno di una base di codice. Non mescolare firstName e first_name per lo stesso concetto. Quando attraversi un confine, come leggere colonne snake_case da un database in un'applicazione in camelCase, converti al margine, in un punto chiaramente nominato, invece di disseminare conversioni ovunque.
La conversione è meccanica: dividi il nome in parole e riuniscile con la regola di destinazione. L'unica parte delicata è la divisione, perché camelCase non ha separatore. Un convertitore rileva i confini di parola a ogni maiuscola, mentre snake_case e kebab-case si dividono sul loro delimitatore, permettendoti di spostare un nome tra due stili in modo affidabile.
Domande frequenti
- Qual è la differenza tra camelCase e PascalCase?
- Solo la prima lettera. camelCase inizia in minuscolo (userName); PascalCase mette in maiuscolo anche la prima parola (UserName). PascalCase è detto anche UpperCamelCase.
- Perché il kebab-case non si usa per i nomi di variabile?
- Perché la maggior parte dei linguaggi legge il trattino come operatore di sottrazione, quindi first-name verrebbe interpretato come first meno name. È sicuro in URL, CSS e HTML, dove il trattino è solo un carattere.
- Quale convenzione usare per i campi JSON di un'API REST?
- Non c'è una regola unica, ma camelCase e snake_case sono entrambi comuni. Scegline uno, documentalo e mantieni coerenti tutti i campi dell'API così i client possono farci affidamento.
- C'è un nome per il MAIUSCOLO con trattini bassi?
- Sì, si chiama SCREAMING_SNAKE_CASE, o snake case maiuscolo. È la convenzione comune per le costanti, come MAX_SIZE o API_KEY.
Articoli che potrebbero interessarti
Tutte le guide →Strumenti correlati
Fonti
Hai notato un errore in questo articolo?