Entwicklungsmodell für Clojurescript / Clojure-Anwendungen

8

Hinweis: Ich bin ein Backend (Java) Entwickler von Beruf und arbeite in Clojure in meiner Freizeit, also vergib mir meine Unwissenheit.

Ich versuche, Clojurescript zu verstehen und zu sehen, wie es sich möglicherweise in Projekte einfügt, an denen ich arbeite oder an denen ich in Zukunft arbeiten möchte. Da ich mit der "klassischen" Web-Entwicklungs-Mentalität aufgewachsen bin (zB Clojure läuft im Backend, verteilt Daten über JSON an das Frontend, um in JS verarbeitet zu werden oder gibt eine HTML-Seite für den Browser zurück), habe ich Probleme versuchen zu verstehen, wie Clojurescript die Dinge besser machen könnte als dieses Modell.

Könnte jemand mir erklären, was der allgemeine Ansatz für die Clojurescript / Clojure-Entwicklung wäre, da der "Clojurescript One" -Projektmoniker bedeutet, dass die Anwendungsentwicklung unter einer Sprache (als solcher) vereinheitlicht wird.

  • Welche Aufgaben werden normalerweise im Clojurescript-Teil der Anwendung ausgeführt?
  • Welche Aufgaben werden normalerweise im Clojure-Bereich (z. B. Backend) der Anwendung ausgeführt?

Jede Hilfe wäre willkommen, oder wenn jemand mich auf Diagramme oder Erklärungen oder irgendetwas hinweisen könnte - das wäre auch toll!

    
djhworld 09.02.2012, 21:55
quelle

4 Antworten

7

Ich denke, Clojure / ClojureScript-Anwendungen werden sehr ähnlich strukturiert sein wie die X-Backend-Technologie + JavaScript.

Ein großer Vorteil bei der Architektur von Anwendungen mit Clojure und ClojureScript - einem umfangreicheren Datenformat als JSON (Sie können Hash-Maps und Mengen mit beliebigen Schlüsseln darstellen), ohne die Kompaktheit zu verlieren.

JavaScript ist eine feine, gute Sprache, aber ClojureScript bietet einige Vorteile. Es ist semantisch einfacher (funktional), wird mit einer umfangreichen Standardbibliothek, einer robusten kampfgeprüften Anwendungsbibliothek (Google Closure) und allen Vorteilen geliefert, die Sie durch die geschmackvolle Anwendung der syntaktischen Abstraktion über Makros erhalten.

Das heißt, es ist immer noch sehr viel Alpha-Software und die Werkzeuge brauchen noch viel Arbeit.

    
dnolen 10.02.2012, 15:55
quelle
2

Ein bisschen Hintergrund über mich, ich habe mit Clojurescript, JQuery, Vaadin, Servlets, JSP und vielen anderen Webtechnologien entwickelt.

1) Clojurescript ist viel schwieriger zu erlernen als jede andere Web-Technologie, die ich je benutzt habe, Java, Clojure, Closure (mit einem s;), Closure Lib und Closurescript-spezifisches Wissen.

2) Clojurescript ist für eine kleine App nicht sinnvoll. Es macht nur Sinn, wenn Sie viel von clientseitige Verarbeitung haben

3) Clojurescript ist nur so weit ich sehe als ein besseres Javascript (weshalb es besser für größere Apps geeignet ist) da der Minifier Teil von Clojurescript auch für Javascript verfügbar ist

4) Nur das Client-Ende wäre in Javascript geschrieben, der Server wäre in Clojure / Java-Servlets

    
Zubair 10.02.2012 06:11
quelle
1

Vielleicht wird Ganelon micro-framework (dem ich übrigens selbst Autor bin) Ihren Bedürfnissen entsprechen - das Ausführungsmodell ist ähnlich wie Vaadins: serverseitiger Clojure-Code schiebt UI-Updates über AJAX / JavaScript auf den Browser, aber wir tun es nicht Speichern Sie den Anwendungsstatus standardmäßig in der Sitzung.

Die Demo und die Dokumentation sind unter Ссылка

verfügbar     
Tomek Lipski 04.04.2013 17:17
quelle
1

Für mich bietet Clojure und Clojurescript saubereren Code als Mixed Stack. Es gibt nur eine Sprache, an die man denken kann, und Code ist ziemlich einfach zu lesen.

Im Backend-clojure werden Dinge erledigt, die java normalerweise tun würde. Eingabevalidierung, Speichern in Datenbank und vor allem Implementierung von Geschäftslogik. Unser Backend validiert auch eingehende / ausgehende Daten nach Typen mit prismatischen Schemas.

Kurz gesagt Frontend: Mit ClojureScript erhalten wir einen schönen Code und es ist schnell zu schreiben. Wir benutzen die ClojureScript-Version von material-ui beim Schreiben von UI-Komponenten. Wir müssen im Vergleich zu JavaScript weniger Code schreiben, und ich finde unseren UI-Komponentencode einfacher zu lesen als das JavaScript-Gegenstück. Einer der Hauptgründe sind kürzere schließende Tags und weniger Rauschen durch die Programmiersprache. Die Entwicklung mit ClojureScript ist ziemlich schnell.

Natürlich wird ClojureScript für einfache Imput-Validierung wie RegExp für Telefonnummern usw. verwendet.

Einer der Nachteile von clojure, die Sie wahrscheinlich bemerkt haben, sind lange Zeilen, nachdem Sie den Funktionen die richtigen Namen gegeben haben. Ich habe keine Silberkugel gefunden, wie ich damit umgehen kann.

Wie dnolen sagte: ClojureScript entwickelt sich immer noch. Es ist jetzt viel besser als vor 6 Monaten, also musst du ab und zu seine Reife überprüfen.

    
KettuJKL 24.12.2016 22:36
quelle

Tags und Links