Bei den Reaktionen auf unseren Blog-Artikel "Flexible, mobile und zukunftssichere Web-Oberflächen für Domino-Anwendungen" tauchte die Frage nach dem Nutzen immer wieder auf. Warum also favorisieren wir bei der Web-Entwicklung eine strikte Trennung zwischen der Entwicklung des Frontends und des Backends?
Die Antwort werden Sie wahrscheinlich aus Ihrem beruflichen Umfeld auch kennen: knappe Ressourcen.
Es fängt bei der Suche nach geeigneten Software-Entwicklern und -Entwicklerinnen an. Dadurch, dass wir für das Frontend auf Open-Source-Frameworks wie Angular bzw. für das Backend auf Java-Standards wie die Java API for RESTful Web Services (JAX RS) setzen, erhöhen wir die Chancen, dass aktuelle Hochschulabsolventen bereits Erfahrungen in dem Bereich gesammelt haben. Sollte ein potenzieller Kandidat in einem der Bereich Defizite haben, lassen sich diese durch Trainings, Bücher, Internetseiten etc. leichter aufholen.
Im Backend-Bereich kann das notwendige Domino-spezifische Wissen einfacher vermittelt werden, weil nicht alle Aspekte der Notes-Anwendungsentwicklung abgedeckt werden müssen. Für den Anfang sind die Bereiche Datenspeicherung, Suche und Sicherheitskonzepte ausreichend. Dass das Speichern von Daten in Notes Dokumenten quasi eine NoSQL-Datenbank darstellt, erhöht die Attraktivität aus Sicht der Absolventen. Ein schöner Nebeneffekt ist, dass mit diesen Anfängen sukzessive auch Erfahrungen in der Anwendungsentwicklung für den Notes-Client gesammelt werden können.
Für das eigentliche Projektgeschäft hat die Trennung von Frontend- und Backend-Entwicklung auch massive Vorteile. Innerhalb des Projektteams kann parallel an den Frontend- und Backend-Komponenten gearbeitet werden. Dazu werden zunächst die fachspezifischen REST-APIs definiert. Damit steht fest, wie das Frontend mit dem Backend interagieren kann. Bis die zugehörigen Backend-Komponenten fertig sind, kann im Frontend mit sogenannten Mockup-Daten gearbeitet werden. Dabei kann das Backend bereits vom Frontend aus angesprochen werden, nur dass die zugehörigen Daten zunächst nur statische Testdaten sind.
Das Frontend kann gegen diese Testdaten entwickelt werden. Mit den ersten Versionen des Frontends kann der Kunde frühzeitig das Look & Feel der Anwendung testen. Sollte doch einmal die Vorstellungen des Kunden nicht mit dem Verständnis auf Entwicklerseite übereinstimmen, fällt die Diskrepanz wesentlich früher auf. Es wird nicht unnötig Zeit und Budget verschwendet.
Ein weiterer Grund, warum der Kunde schon frühzeitig die Web-Oberfläche testen kann, besteht in der Verwendung von Open-Source-Komponenten. Diese Komponenten haben den Vorteil, dass sie bereits fertig entwickelt und ausgiebig getestet worden sind. Durch die weite Verbreitung von diesen Komponenten ergibt sich auf Anwenderseite ein Wiedererkennungseffekt. Erfahrungen bei der Benutzung von anderen Web-Anwendungen helfen somit bei der intuitiven Benutzung.
Sollte sich bei der Entwicklung doch überraschender Weise mal eine "Herausforderung" (aka Problem) ergeben, helfen offene Standards und Open-Source auch hierbei. Je beliebter das Open-Source-JavaScript-Framework ist, desto höher ist die Anzahl der Ressourcen, die dazu im Internet zu finden sind. Die Wahrscheinlichkeit, dass das gleiche Problem bereits gelöst und die Lösung in einem Forumsbeitrag oder Blog-Artikel dokumentiert wurde, ist entsprechend hoch.
Zusammenfassend ist zu sagen, dass wir mit diesem Ansatz unsere Web-Entwicklungsprojekte in kürzerer Zeit und mit geringerem Budget umsetzen können.