Interview mit Kai Tödter

„Für mich ist der Browser die neue Rich Client Platform“

Melanie Feldmann

Kai Tödter

Mit AngularJS, Typescript und Spring Boot lassen sich schicke Web-Applikationen bauen. Das „Wie“ erklärt Kai Tödter (Siemens) auf der JAX in seinem Workshop. Dabei wirft er auch einen Blick auf den ewigen Streit JavaScript vs. TypeScript und erklärt wie REST und HATEOAS funktionieren. Uns gab er im Interview einen kleinen Vorgeschmack.

JAXenter: Warum nutzen Sie die Kombination aus AngularJS, TypeScript und Spring für Web-Applikationen? Was ist das Besondere daran?

Kai Tödter: Spring, insbesondere die Kombination von Spring Boot mit Spring Data Rest und Spring HATEOAS ist sehr gut geeignet, um mit sehr wenig Boilerplate-Code RESTful Web Services zu entwickeln. Als Entwickler kann ich mich hier sehr gut auf die Fachlichkeit konzentrieren, der Spring Stack liefert schon einen sehr großen Teil der Infrastruktur. Ich persönlich bin ein Fan von Web-Technologien für „Rich Clients“, die im Browser laufen. Für mich ist der Browser die neue „Rich Client Platform“. Zumal es damit sehr einfach ist, verschiedene Formfaktoren und Geräte zu unterstützen. AngularJS ist eines der vielen JavaScript-Application-Frameworks, die man dafür einsetzten kann. Das Besondere ist die große Community und dass AngularJS inzwischen Einzug in den eher konservativen Enterprise-Bereich gefunden hat. Heute kann man AngularJS 1 schon sehr gut produktiv einsetzten, und Angular2 steht ja auch schon vor der Tür. Ich erkläre im Workshop auch schon die neuen Konzepte von Angular.

JAXenter: Warum TypeScript und kein JavaScript?

Kai Tödter: JavaScript ist meiner Meinung nach nicht besonders gut für große strukturierte Anwendungen geeignet. Und die heutigen modernen Web-UIs mit ihrer komplexen Präsentations-Logik werden immer umfangreicher. TypeScript hilft hier sehr, da es zum einen die aus dem OO-Bereich bekannten Paradigmen wie Klassen, Interfaces, Generics, Enums und Annotationen (diese heißen in TypeScript Decorators) bietet, zum anderen das optionale statische Typ-System. Damit ist es auch endlich möglich, wirklich gute Toolunterstützung durch IDEs zu ermöglichen. Ich selbst bin ein absoluter TypeScript-Fan.

JAXenter: Was ist immer noch/immer wieder ein Knackpunkt beim Einsatz von REST und RESTful Web Services?

Kai Tödter: Während sich die meisten der REST-Architektur-Constraints durchgesetzt haben, ist HATEOAS (Hypertext as the engine of application state) in vielen existierenden APIs gar nicht oder nicht gut umgesetzt. Durch den Einsatz vom Hypermedia und Link-Relationen auf der Server-Seite kann man REST-Clients bauen, die weniger anfällig z. B. gegen Änderungen in der URL-Struktur der Serverseite sind. Es gibt keine offiziellen Standards aber einige Spezifikationen, wie HAL (Hyertext Application Language) oder Siren, für die es schon recht gute Unterstützung für verschiedene Sprachen und Plattformen gibt. Spring Data Rest unterstützt HAL out oft he Box, auch einer der Gründe für mich, den Spring Stack einzusetzen.

JAXenter: Wann braucht eine Web-Applikation mit REST auch HATEOAS?

Kai Tödter: Um es mal ganz plakativ auszudrücken: Für mit sind RESTfull Services mit HATEOAS vergleichbar mit meinen Lieblings-Webseiten, die News aggregieren. Ich gehe immer auf die gleichen Einstiegs-URLs (Bookmark) und finde hinter jeder Neuigkeit einen Link, der mich zu interessanten Infos weiterführt. Dabei interessiert es mich überhaupt nicht, ob ein Link heute auf einen Server in den USA und morgen auf einen Server in Deutschland verweist. HATEOAS braucht man, wenn man den Client genau das auch für Applikationen bieten will. Die einzige URL, die ein Client benötigt, ist die ROOT-URL des APIs. Alles Weitere ergibt sich aus den Links. Der einzige Kontrakt ist hier der Name der Link-Relation, dieser sollte möglichst fix bleiben, während sich die dahinter liegenden URL gerne ändern dürfen.

JAXenter: Was könnte das Entwickeln von Web-Applikation noch einfacher und besser machen? Was fehlt?

Kai Tödter: Die IDE-Unterstützung für Full-Stack-Entwickler ist heute schon sehr gut, könnte aber noch besser werden. Ich möchte als Entwickler z. B. Breakpoints im Client-TypeScript und im Server-Java setzen können, um wirklich End-to-End debuggen zu können. Dies ist inzwischen mit einigen IDEs recht gut möglich, aber nur mit wenigen. Heutzutage beschäftigen sich viel Software-Entwickler mit DevOps, sind also auch an Installation, Deployment, Continuous Delivery und Operation interessiert. Daher wünsche ich mir auch eine bessere IDE-Unterstützung für Docker und Cloud-Deployment. Manche IDEs sind hier wirklich innovativ und bringen wöchentlich signifikante Updates auf diesem Gebiet, andere IDEs hinken hier ziemlich hinterher.

Kai TödterKai Tödter ist Senior System Software Architect bei Siemens Building Technologies. Er hat knapp zwanzig Jahre Java-Erfahrung und vertrat Siemens im Java Community Process (JCP) und in der Eclipse Foundation. Kai ist Committer bei einigen Open-Source-Projekten, seine aktuellen Themenschwerpunkte sind Technologien im Webumfeld, Microservices und Hypermedia-APIs.
International JavaScript Conference
Hans-Christian Otto

Testing React Applications

by Hans-Christian Otto (Suora GmbH)

Sebastian Witalec

Building a Robo-Army with Angular

by Sebastian Witalec (Progress)

API Summit 2018
Christian Schwendtner

GraphQL – A query language for your API

mit Christian Schwendtner (PROGRAMMIERFABRIK)

Geschrieben von
Melanie Feldmann
Melanie Feldmann
Melanie Feldmann ist seit 2015 Redakteurin beim Java Magazin und JAXenter. Sie hat Technikjournalismus an der Hochschule Bonn-Rhein-Sieg studiert. Ihre Themenschwerpunkte sind IoT und Industrie 4.0.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: