Während eines ihrer Kunden-Engagements haben unsere Kollegen Sergej Epp und Felix Hau ein „On-the-fly“-Projekt realisiert: Nämlich eine App, die die Stakeholder über geplante Absenzen der Teammitglieder informiert. Für das Projekt kamen das Web-Framework Groovy on Grails sowie die Graphdatenbank Neo4J zum Einsatz. In dieser dreiteiligen Blogserie beschreiben sie, welche Vorteile die beiden Technologien haben und wie sie sich im Praxis-Einsatz bewähren. Teil 3 stellt den Projektverlauf mit der App vor und zeigt, wie Grails und Neo4J sich dabei schlagen.
In einem unserer PENTASYS-Kundenprojekte waren Abwesenheiten verschiedener Teammitglieder im Projektverlauf vorgesehen. Damit die Stakeholder im Voraus Bescheid wissen, welches Teammitglied an welchen Tagen nicht verfügbar ist und wer es vertritt, war bereits ein einfaches Tool im Einsatz. Dieses hatten wir im Rahmen eines „FedEx-Days“ entwickelt – also einem Format, bei dem die Lösung für eine bestimmte Fragestellung innerhalb von 24 Stunden konzipiert und entwickelt wird.
Technologisch baute das erste Tool auf Java und Spring Boot auf. Fürs erste tat es seinen Dienst. Im Lauf des Kundenprojekts kamen jedoch neue Anforderungen auf. Denn zunächst gab es keine Login-Funktion. Neue Nutzer konnten sich nicht über die grafische Oberfläche registrieren, sondern mussten per Rest-Endpoint eingefügt werden. Außerdem entwickelte sich Slack zu einem der präferierten Kommunikationskanäle im Team, weshalb eine Ausweitung der Benachrichtigungen auf diesen Kanal wünschenswert war.
Insofern entschieden wir uns dafür, die App neu aufzusetzen und damit verbunden auch die Basis-Technologie zu wechseln. Dabei ging es zum einen um eine Übersetzung der alten App auf Grails in Verbindung mit Neo4J und zum anderen darum, die neuen Features mit einzubauen. Grails und Neo4J haben wir bereits in den ersten beiden Artikeln dieser Blogserie vorgestellt.
Die App sollte die folgenden Anforderungen berücksichtigen:
Die Stärken von Grails beziehungsweise Groovy haben sich besonders bei der Programmierung des Logins gezeigt. Dank der hauseigenen Dokumentation sowie zahlreicher Dokumente aus der Community ließ dieser sich mit den oben beschriebenen Anforderungen schnell umsetzen. Für die sicherheitsrelevante Verschlüsselung der Login-Daten ist das Grails Plugin jasypt-encryption gut geeignet. Ebenso nützlich war aus unserer Sicht das View-Layer, kombiniert mit dem Einsatz von Groovy Server Pages (GSPs). Damit ließ sich der GUI-Teil unseres Projekts einfach implementieren.
Insgesamt ist uns sowohl der Aufbau von Grails als auch die Programmierung in der dazugehörigen Programmiersprache Groovy positiv aufgefallen. Die syntaktischen Erweiterungen von Groovy gegenüber Java helfen bei einer besseren Leserlichkeit und Handhabbarkeit des Codes. Auch für Apps, die ein höheres beziehungsweise komplexeres Datenvolumen aufweisen, sind die beiden Technologien gut geeignet. Bei der Abwägung, ob Spring-Boot oder ein anderes Framework anstelle von Grails gewählt werden soll, ist insbesondere der Gesichtspunkt der Performance zu beachten.
In punkto Datenbank wäre Neo4J als Graphdatenbank zwar keine obligatorische Wahl gewesen, da die Datenrelationen in dieser App nicht allzu komplex sind. Es hätte also auch eine relationale Datenbank zum Einsatz kommen können. Aber auch wenn keine zwingenden fachlichen Gründe für eine Graphdatenbank vorliegen, ist Neo4J stets einen Blick wert. Die Vorteile sind die reibungslose Integration sowie die komfortable Bedienung.
Teil 1 und Teil 2 dieser Artikelserie finden Sie in unserer Rubrik Einblicke.