Lo snake case,[1] o snake_case, è la pratica di scrivere gli identificatori separando le parole che li compongono tramite trattino basso (o underscore: _), solitamente con le prime lettere delle singole parole in minuscolo, e la prima lettera dell'intero identificatore minuscola o maiuscola (es. "foo_bar" e "Hello_world"). È ampiamente usato nella programmazione per gli identificatori di variabili, funzioni o nomi di file. Almeno uno studio scientifico sostiene che lo snake case sia oggettivamente più leggibile del camel case, con tempi di reazione minori.[2]

Codice di una funzione in un modulo del kernel Linux, che fa uso della notazione snake case

Storia modifica

L'uso del trattino basso come separatore di parola risale agli anni 1960. Era spesso associato al C, per il quale venne usato nel testo di riferimento The C Programming Language (1978), in contrasto con la notazione Pascal case. Tuttavia, la convenzione rimase per lungo tempo senza un nome specifico, ad esempio il manuale di stile di Python si riferisce ad essa come "lower_case_with_underscores".[3] Il termine "snake case" è stato introdotto dalla comunità Ruby, e il primo uso noto del termine risale ad un post usenet di Gavin Kistner nel 2004.[4]

Linguaggi che usano snake case per convenzione modifica

Note modifica

  1. ^ a b Tony Hillerson e Daniel Wanja, Flex on Rails, Pearson Education, 2008, ISBN 978-0-321-61815-3.
  2. ^ An Eye Tracking Study on camelCase and under_score Identifier Styles, su ieeexplore.ieee.org.
  3. ^ a b Guido van Rossum, Barry Warsaw, Nick Coghlan, PEP 0008 -- Style Guide for Python Code, su python.org, 5 luglio 2001.
  4. ^ Gavin Kistner, Appropriate use of camelCase, su comp.lang.ruby, 23 febbraio 2004. URL consultato il 13 agosto 2015.
    «"BTW...what *do* you call that naming style? snake_case? That's what I'll call it until someone corrects me."»
  5. ^ Xen wiki, su wiki.xenproject.org. URL consultato il 15 marzo 2017.
  6. ^ Library Design Guidelines, su isocpp.org. URL consultato il 13 agosto 2015.
  7. ^ Boost Library Requirements and Guidelines, su boost.org. URL consultato il 13 agosto 2015.
  8. ^ Programming Rules, su erlang.se. URL consultato l'11 agosto 2017 (archiviato dall'url originale il 4 settembre 2010).
  9. ^ Damian Conway, Perl Best Practices, O'Reilly Media Inc., 2005, p. 44, ISBN 0-596-00173-8.
  10. ^ Ruby Naming Conventions, su github.com.[collegamento interrotto]
  11. ^ Rust Naming Conventions, su aturon.github.io. URL consultato il 4 maggio 2019 (archiviato dall'url originale il 7 giugno 2017).
  12. ^ Elixir Style Guide, su github.com.
  13. ^ Eiffel Class and Feature Names, su eiffel.org.

Voci correlate modifica

  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica