Phil Karlton, un programmatore della Microsoft, una volta affermò che una delle due cose più difficili per un programmatore è dare dei nomi agli oggetti, e non aveva tutti i torti. Quando si crea un programma che verrà utilizzato esclusivamente dal programmatore che l’ha generato, il problema quasi non sussiste. Quando invece si parla di programmi che possono essere utilizzati da più persone, oppure programmi a cui lavorano più programmatori, ingeneri, matematici, fisici statistici ecc, è importante creare delle linee guida per la scelta dei nomi degli oggetti creati. Esistono per tanto alcune tipologie di denominazione comuni per molti linguaggi:
- Camel Case: il nome deriva dai “salti” all’interno di una parola, che fanno venire in mente le gobbe di un cammello. I nomi che appartengono a questa tipologia hanno la prima lettera maiuscola e non presentano spazi o simboli tra le parole. In questo insieme perciò rientrano nomi come WordPress, UserAccount. Una variazione comune è iniziare con una minuscola: iPad, wordPress, userAccount. Microsoft usa il termine “Camel Case” per riferirsi rigorosamente a questa variazione. Questa notazione è usata dai linguaggi Pascal, Modula, Java e .NET.
- Pascal Case: in questo caso il nome deriva dal linguaggio di programmazione Pascal molto utilizzato tra gli anni ’70 e ’80. Questa notazione può essere considerata un sottoinsieme della Camel case in quanto i nomi appartenenti a questa categoria iniziano rigorosamente con la lettera maiuscola. Pertanto, UserAccount è in Pascal Case ma non userAccount. I linguaggi che utilizzano questa notazione sono gli stessi che utilizzano la notazione a cammello.
- Snake Case: i nomi appartenenti a questa categoria sono formati da parole separate tra loro da trattini bassi. Ad esempio user_account, error_message. Il nome proviene dal fatto che utilizzando il trattino basso, i nomi degli oggetti somigliano a dei serpentelli. Questa notazione è comune nelle librerie standard Python, Ruby, C / C ++ e WordPress.
- Kebab Case: come lo shake case, ma si utilizzano i classici trattini al posto dell’underscore. Ad esempio abbiamo user-account, error-message. I principali linguaggi che utilizzano questa notazione sono COBOL, Lisp, Perl 6 e CSS. Poiché il trattino in molte lingue viene utilizzato per la sottrazione, il Kebab Case è meno comune dello Snake Case.
- Screaming Case: in questo insieme troviamo tutti i nomi scritti a lettere maiuscole, come ad esempio TAXRATE oppure TAX-RATE.
- Hungarian Notation: i nomi iniziano con un prefisso minuscolo per indicare l’intenzione. Il resto del nome è in Pascal Case. È disponibile in due varianti: (a) sistemi ungheresi, dove il prefisso indica il tipo di dati; (b) App ungherese, dove il prefisso indica uno scopo logico.
In generale, per convenzione, viene utilizzata la notazione Pascal per i nomi di classi, come anche per i nomi di metodi. Per le variabili e i parametri dei metodi invece è buona norma utilizzare la notazione a cammello. Inoltre il Pascal Case è consigliato per tutti i membri pubblici, i tipi e i namespace.
Per concludere lasciamo alcuni link a siti che descrivono le principali convenzioni per i linguaggi principali
- Python: https://medium.com/@dasagrivamanu/python-naming-conventions-the-10-points-you-should-know-149a9aa9f8c7
- Rust: https://doc.rust-lang.org/1.0.0/style/style/naming/README.htmlhttps://doc.rust-lang.org/1.0.0/style/style/naming/README.html
- Java: https://google.github.io/styleguide/javaguide.html
- R: https://google.github.io/styleguide/Rguide.html
- .NET: https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/general-naming-conventions
