2012-03-30 5 views
17

Ich habe Probleme, den Punkt von clojures Noir-Bibliothek zu verstehen. Es scheint ein Framework zu sein, das auf eine Komponente geschrieben ist, die defroute in defpage umbenennt und es einen Tag nennt. Offensichtlich eine unfaire Vereinfachung, aber was genau bringt Noir an den Tisch? Warum sollte ich Noir anstelle von einfachem Compojure + Schluckauf verwenden?noir vs compojure?

EDIT/UPDATE: Noir ist veraltet, interessant schreiben Sie hier: http://blog.raynes.me/blog/2012/12/13/moving-away-from-noir/.

Antwort

14

Compojure ist ein kleiner Rahmen, der Ring Request/Response-Handler erzeugt, wo Handler Auserwählter auf Routen basieren Sie definieren.

Noir bietet Funktionen für Sitzungsverwaltung, Cookies, Vorlagen und Teiltage, eine einfachere Möglichkeit zum Generieren von Antworten, Formularüberprüfung, Routenfilter, verschlüsselte Passwörter, JSON (De-) Serialisierung und benutzerdefinierte Statusseiten. Mit anderen Worten, kombiniert Noir Compojure, Schluckauf, und ein paar anderen cleverer Sachen in einem Paket.

+0

ist all dieses "clever stuff" bereits über andere clojure Bibliotheken zur Verfügung? Zum Beispiel kann eine angemessene Menge von dem, was Sie beschreiben, kann mit compojure, Schluckauf, Sandbar, CLJ-json usw. Does Noir etwas Neues neben einer Fassade bietet über bestehende clojure Bibliotheken getan werden? – Kevin

+6

Noir nutzt vorhandene Bibliotheken und klebt sie auf nützliche Weise zusammen - das ist an und für sich "neu", und das bedeutet, dass der Aufwand zum Suchen, Testen und Kombinieren verschiedener Bibliotheken für Sie getan wurde. Außerdem bietet es einige zusätzliche Funktionen (wie Validierungen, benutzerdefinierte Status usw.). Die Quellen zeigen Ihnen genau, was zur Verfügung gestellt wird - es ist Funktionalität, die Sie wahrscheinlich sowieso aufbauen würden, wenn Sie eine Web-App mit Compojure, Hiccup, Sandbank, etc. https://github.com/ibdknox/noir entwickeln – Gert

17

Vom author of Noir himself:

Noir ist nicht wirklich ein Ersatz für [compojure und Schluckauf], eher eine Abstraktion über sie. Es wurde aus Sehen geboren, wie ein echter Web-App entwickelt, und was aus dem Ring/compojure/Schluckauf Stapel fehlte, als ich http://www.typewire.io gebaut. Auch, wie ich in einem der anderen Kommentaren erwähnt, Ich hoffe, dass es als einziges „Paket“ dienen wird mit Web-Entwicklung in Clojure zu beginnen, anstatt zu versuchen, und schustern es zusammen aus den Stücken, die es gibt jetzt . Indem ich alles kontrolliere, kann ich eine viel zusammenhängendere und klarere Geschichte erstellen, um Menschen beim Einstieg zu helfen. Ich kann auch erzählen, was ich über die Pflege von Websites in Clojure gelernt habe, und hoffentlich ermutige ich Muster, die einige der Gruben vermeiden, in die ich gefallen bin.

(Hervorhebung von mir)

0

Sie können jederzeit überprüfen Sie die API auf der webnoir.org Website. Neben defpage gibt es eine Menge zusätzliche Funktionalität.

17

Noir hat der Rahmen war deprecated von Noir maintener selbst.

Er schlägt vor, Compojure und lib-noir zu verwenden:

für neue Websites, bitte Compojure und lib-noir verwenden. Dies ist so ziemlich wie Batterien enthalten, wie Noir selbst war! Sie müssen nur lernen, wie Sie Routen mit Compojure schreiben. Es ist einfach und genauso prägnant wie in Noir. Sie müssen nicht den Ring-Jetty-Adapter und andere Sachen benutzen, sondern einfach das Lein-Ring-Plugin benutzen, um Ihren Server zu starten. Außerdem, wenn Sie Noir einschließlich Hiccup standardmäßig genutzt haben, müssen Sie jetzt eine explizite Abhängigkeit davon haben. Keine große Sache, oder? Recht!

Verwandte Themen