it-swarm.com.de

Was sind die Namenskonventionen von Clojure?

Kann mir jemand erklären oder zeigen, wo ich die Namenskonventionen von clojure finde für:

  1. Dateinamen
  2. Funktionen (Soweit ich weiß, sind Funktionsnamen einfach durch Bindestriche getrennte Werte)
  3. Variablen
51
tmore

Vielleicht möchten Sie sich die Codierungsstandards für die Clojure-Bibliothek im Entwickler-Wiki anschauen - dies ist wahrscheinlich die umfassendste Liste, die ich je gesehen habe.

Zu Ihren spezifischen Punkten:

  1. Dateinamen sind Kleinbuchstaben und werden in einer Verzeichnisstruktur gespeichert, die dem Namensraum entspricht, und enden mit .clj, z. "mein/special/namespace.clj
  2. Funktionen sind durch Bindestriche getrennte Kleinbuchstaben, die idealerweise deskriptiv ausgewählt werden, damit Ihr Code klar und selbstdokumentierend ist. Scheuen Sie sich nicht, gute Funktionsnamen in verschiedenen Namespaces erneut zu verwenden (dafür sind Namespaces gedacht!).
  3. Variablen (von denen ich annehme, dass Sie Parameter, Let-Bound-Variablen usw. meinen), sind normalerweise auch durch Bindestriche getrennte Kleinbuchstaben. Da es sich bei Code-Daten handelt, halte ich es für angemessen, dass Funktionen und Daten die gleiche Namenskonvention haben :-)
47
mikera

Vielleicht möchten Sie einen Blick auf diesen nicht offiziellen Stilführer werfen.

9
omiel

Es gibt einige interessante Richtlinien zur Namensgebung, die von Stuart Sierra geschrieben wurden , die Folgendes vorschlagen:

  • reine Funktionen sollten Nomen sein, die den Rückgabewert beschreiben (age statt calculate-age)
  • nebeneffektfunktionen sollten Verben sein, die die Aktion beschreiben (create- zum Erstellen und get- zum Abrufen). Die bang swap!-Änderungen werden in veränderliche Referenzen geändert.
  • verben, die auch Substantive sein können, sollten als Verbsätze unterschieden werden (send-message statt message)
  • nötige sollten den Ausgabetyp ohne Pfeilpräfix benennen (connection statt ->connection), es sei denn, der Eingabetyp muss explizit sein (input-type->output-type)
  • namespace-Aliase können Wiederholungen (products/price anstelle von products/product-price) einsparen und lokale Kollisionen in Let-Bindungen verhindern
  • funktionen, die Funktionen zurückgeben, sollten das Suffix -fn haben
8
RobinGower

Auch wenn Sie nicht explizit danach gefragt haben, werde ich erklären, was ich bei Protokollbenennungskonventionen gesehen habe.

Normalerweise beginnt der Name mit einem "I" in Großbuchstaben, und der Rest ist Kamelfall, wobei der erste Buchstabe jedes Wortes groß geschrieben wird und der Rest Kleinbuchstaben ist. Zum Beispiel möchte ich ein Protokoll für Raketenschiffe definieren, ich würde den Namen IRocketShip verwenden

Ich habe auch 'A' anstelle von 'I' gesehen, wahrscheinlich um das Wort 'abstrakt' darzustellen.

0
bmillare

In einem Kommentar von Taoensso in seiner Encore-Bibliothek ist eine Reihe interessanter Namenskonventionen dokumentiert.

Er schlägt Namen mit ! für Nebenwirkungen vor, ? für Booleans, $ für teure Operationen, _ als ableitbar, * für Makros. plus ein paar andere Combos.

0
Micah Elliott