Java-basierte UI-Frameworks

Ich habe kürzlich mit einem Freund über die UI-Entwicklung gesprochen. Er war auch Programmierer, seit das Programmieren als arkane Kunst galt (als diejenigen von uns, die es taten, als Gandalf der Graue mit Blick auf den Balrog galten). Oder vielleicht haben wir uns einfach so gesehen. Unabhängig davon sind wir beide seit langem Java-Programmierer.

Wir beklagten beide die Tatsache, dass es ein Kontextwechsel war, um die meisten unserer Projekte in Java zu codieren und dann für das Frontend zu JavaScript zu wechseln.

Basierend auf Gesprächen, die ich online gesehen habe, wärmen mehrere Leser ihre Tastaturen auf, um mich dafür zu tadeln, dass ich mich darüber beschwert habe, in JavaScript codieren zu müssen. Halten Sie Ihre Schlüssel kühl, sowohl wir als auch unsere Mitarbeiter sind erfahren in JavaScript und seinen Frameworks für unsere Kunden. Die Verwendung von JavaScript ist jedoch nicht immer der beste Ansatz.

In diesem Beitrag stellen wir zwei Frameworks vor, mit denen Sie Ihre Benutzeroberfläche in Java codieren können: GWT und Vaadin.

Wann sollten Sie Java für Ihre Benutzeroberfläche verwenden?

Das Gespräch kam zu mir zurück, als ich mit einem Kunden sprach — einem kleinen Laden mit nur ein paar Programmierern und einem Softwarearchitekten, der auch programmierte. Sie hatten beschlossen, dass sie ihre Projekte nicht in zwei verschiedenen Sprachen pflegen wollten. Ihr Unternehmen hatte Java standardisiert, und sie wollten die gleichen Tools und Denkweisen verwenden, um leistungsstarke und moderne Benutzeroberflächen für ihre Webanwendungen zu erstellen.

Ich habe bei größeren Teams festgestellt, dass sich das Team zu trennen scheint, einige bevorzugen es, sich auf das Front-End zu konzentrieren, und andere arbeiten hauptsächlich am Back-End- oder serverseitigen Code. Wenn die Arbeit für die Entwicklung genehmigt wird, sehe ich oft, dass dieselben Programmierer den Großteil der JavaScript-Front-End-Arbeit übernehmen oder erhalten und andere das Back-End übernehmen.

Ich sage nicht, dass dies eine schlechte Sache ist; tatsächlich scheint es genau das Gegenteil zu sein. Jeder scheint in seiner Komfortzone produktiver zu sein, aber jeder ist sich auch bewusst, was alle anderen tun, und kann bei Bedarf in diese Zone eintreten. Für kleinere Geschäfte ist dies keine Option. Oft wird der gleiche Programmierer den Code ein ganzes Projekt von der Benutzeroberfläche bis zum Modell schreiben.

Glücklicherweise gibt es Optionen, wenn Sie Ihre Benutzeroberfläche in derselben Sprache wie Ihr Backend halten möchten, wenn diese Sprache Java ist. Lassen Sie uns jetzt über einige von ihnen sprechen.

GWT

Google Web Toolkit oder GWT ist eine hervorragende Option.

Ich hatte viel Erfolg mit GWT in einem Projekt, das ich vor ungefähr 8 Jahren begonnen habe und das ich immer noch pflege. Mit GWT konnte ich die Ansichtslogik für eine einseitige Anwendung vollständig in Standard-Java-Code erstellen. Es kommt mit einem Eclipse-Plugin. Ich habe es nicht verwendet, weil ich Netbeans für meine Entwicklungsumgebung verwendet habe, aber da Eclipse der Standard für die meisten Teams ist, könnte dies sehr praktisch sein.

Ich konnte die Logik für Widgets (z. B. ein benutzerdefiniertes Textfeld) in Klassen oder Hilfsmethoden aufteilen, genau wie ich die Geschäftslogik in einem serverseitigen Projekt aufteilen würde. Durch Vererbung konnte ich problemlos mehrere Widgets erstellen, die ähnliche Anforderungen hatten. Das einzige wirkliche Konzept der Veränderung, mit dem ich mich befassen musste, war, dass die Benutzeroberfläche viel ereignisgesteuerter ist als die meisten Webdienste oder anderer serverseitiger Code.

Es gibt zwei Hauptnachteile, die ich GWT sehe. Eine davon ist die Kompilierzeit. GWT fügt dem Prozess einen Kompilierungsschritt hinzu, der einige Zeit in Anspruch nimmt. Die in Java erstellten GWT-Klassen müssen in JavaScript-Bibliotheken kompiliert werden. Ich habe mehrere Beschwerden über die Zeit gesehen, die dies in Anspruch nimmt.

Das zweite ist, dass es schon eine ganze Weile her ist, seit GWT ein bedeutendes Update gesehen hat. Zum Zeitpunkt des Schreibens wurde 2.8.2 vor über einem Jahr im Oktober 2017 veröffentlicht. Drei Jahre zuvor wurde 2.7.0 veröffentlicht, also vier Jahre nach dem Zeitpunkt dieses Schreibens. Ich sehe Beiträge und Kommentare zu 3.0, darunter einige von vor zwei Jahren, in denen gefragt wird, ob das Poster auf die Veröffentlichung von 3.0 warten soll, bevor eine große Änderung implementiert wird (ich hoffe, das Poster wartet nicht immer noch), aber ich kann keine Zeitpläne finden, wann diese Veröffentlichung erscheinen könnte.

Obwohl ich ein großer Fan des Frameworks bin und es für ausgereift genug halte, weiß ich, dass diese Unbestimmtheit in Bezug auf die Möglichkeit zukünftiger Versionen einige Projektmanager ziemlich nervös macht. Niemand möchte an einen Rahmen gebunden sein, der in einer Sackgasse endet.

GWT ist eine Bibliothek, die ich weiterhin verwenden und anderen Teams vorschlagen werde, sie zu verwenden, wenn sie ihren Anforderungen entspricht.

Vaadin

Vaadin ist eine weitere großartige Option.

Ich dachte ursprünglich, das GWT sei meine einzige Wahl, um Benutzeroberflächen in Standard-Java-Code zu schreiben. Aber als ich mit dem kleinen Laden sprach, den ich oben erwähnt habe, sagten sie mir, sie hätten beschlossen, Vaadin für ihre Projekte zu verwenden. Also musste ich natürlich einen Blick darauf werfen. Und ich bin beeindruckt.

Ich bin ehrlich, zum Zeitpunkt des Schreibens habe ich Vaadin noch nicht zum Erstellen eines Projekts verwendet. Aber ich starte ein paar persönliche Projekte, für die ich Frontends benötige, und beabsichtige, dies zu verwenden. Wenn Vaadin hält, was es verspricht, wird es ein perfekter Rahmen für diese Projekte sein.

Vaadin verspricht, Sprachen zu unterstützen, die in der JVM laufen, wie Kotlin und Scala. Ich hoffe, das schließt Groovy ein. Wenn Sie viele meiner vorherigen Beiträge lesen, werden Sie wissen, dass ich ein Fan dieser Sprache bin, da Sie schnell Code erstellen können, der einfach zu warten ist. Dies sind für mich wichtige Anforderungen, insbesondere die Wartbarkeit. Nichts zerstört ein Projekt später mehr, als den bereits geschriebenen Code nicht einfach pflegen zu können.

Abschließende Gedanken

Bei der Architektur Ihrer Webanwendung haben Sie viele Möglichkeiten, wenn es um die Technologie der Benutzeroberfläche geht. Egal, ob Sie ein Projekt oder eine Produktionsumgebung entwerfen, Sie müssen so viele Anforderungen berücksichtigen.

Zwei Anforderungen, die Sie beachten müssen, sind einfache Entwicklung und Wartbarkeit.

  • Eine Entwicklungsumgebung, in der schwer zu arbeiten ist, führt zu vielen Kostenüberschreitungen und macht es sehr schwierig, neue Programmierer zu gewinnen.
  • Ein Projekt, das schwer zu pflegen ist, wird Frustrationen verursachen und in Zukunft mehr Geld verschwenden.

Basierend auf den Bedürfnissen und Anforderungen Ihres Teams ist eine vollständige Java-Lösung von der Benutzeroberfläche bis zum Modell nicht nur möglich, sondern auch eine gute Wahl für schnelle Entwicklung und einfache Wartung.

Glaube an guten Code.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Previous post Unnötige Zahnbehandlung
Next post Abschreibung von Immobilien