2016-04-08 19 views
2

Ich sah die diese Frage und ihre Antworten, aber sie verpassen leicht den Punkt, wie man am besten core.clj Autor eine Bibliothek leicht zu teilen und zu verstehen.Wie am besten einzurichten core.clj

What is the purpose of core.clj file?

Eine Antwort gesagt, dass wir alles tun, könnten wir wollen, aber wahrscheinlich nicht sollte. :) Ich suche den Weg des geringsten Widerstands, also core.clj ist es.

Aber eine andere Antwort sagte Benutzer würden diesen Pfad verwenden, um Zugriff auf meine Bibliothek zu erhalten. Das lässt mich denken, dass ich es rückwärts habe, mit Kern einige Grundlagen. Stattdessen klingt es wie core.clj (sein Namensraum) sollte in meinen anderen Pfaden ziehen und effektiv als seine API dienen.

+0

Es spielt keine große Rolle. Hier ist ein Beispiel für eine Bibliothek, die keinen Kern verwendet (https://github.com/mishadoff/numberto/tree/master/src/numberto) und hier ist eine, die tut (https://github.com/davidsantiago/clojure -csv/Baum/Master/src/clojure_csv). Alles hängt davon ab, wie Sie sich entscheiden, Ihre Bibliothek zu strukturieren. – endbegin

Antwort

0

Wie die accepted answer zu Ihrer verknüpften Frage sagt, der core Namespace enthält in der Regel die Einsprungstelle (n) zu einer Anwendung oder zu Ihrer Bibliothek. Abgesehen davon ist dies nur eine Konvention, keine Notwendigkeit, Sie benötigen technisch gesehen kein core Modul.

Wenn Ihr core Module hält nur ein paar Grundlagen, die von anderen Codefragmente verwendet werden, und Sie erwarten, dass Benutzer Ihrer Bibliothek Funktionen aufrufen foo und bar aus dem Namensraum yourlib.foobar als Einstiegspunkte, würden Sie wahrscheinlich besser Ihrer umbenennen core Modul zu etwas anderem, um zu vermeiden, dass Leute den Code Ihrer Bibliothek auschecken. Ein bemerkenswertes Muster, das ich gesehen habe, ist jedoch, dass einige Leute die Einstiegspunkte/Funktionen in ein yourlib.clj Modul (yourlib Namensraum, nicht yourlib.yourlib) setzen, die als dünne Fassade für Aufrufe von Funktionen in yourlib.core dienen. In gewisser Weise ist also wirklich der "Kern" Ihrer Bibliothek, stellt aber nicht die Einstiegspunkte selbst zur Verfügung.

Verwandte Themen