WJAX 2018 – Von Web APIs über Cloud Native bis hin zu Anregungen zur Produktivitätssteigerung

Regina Staller Datum: 27. November 2018
Autor: Regina Staller


Ich durfte dieses Jahr wieder die WJAX im Westin Grand in der Hauptstadt Bayerns besuchen. Neben reichlich Verpflegung gab es auch dieses Jahr wieder viele interessante Vorträge.

Ich habe die WJAX am Konferenztag besucht und konnte mir aus diversen Vorträgen viele Anregungen und Ideen mitnehmen. Die Sessions, welche ich gewählt habe, waren thematisch sehr unterschiedlich. Somit konnte ich mir Trends und innovative Konzepte aus unterschiedlichen Bereichen zeigen lassen und in diverse Themen tiefer eintauchen.

In der ersten Session konnte ich meinen Horizont als Java-Entwicklerin erweitern. Der Titel war sehr vielversprechend: „Web-APIs: Das ultimative Handbuch“. Ehrlich gesagt wusste ich zu Beginn nicht, dass es ausschließlich um Javascript APIs ging, aber ich bin froh in dem Vortrag geblieben zu sein, da mir einige interessante APIs vorgestellt wurden. Für reine Webentwickler sind die APIs wahrscheinlich bekannt, aber für mich waren auch Neuheiten dabei. Die APIs wurden anschaulich anhand diverser Code Beispiele erläutert und es wurden verschiedene Anwendungszwecke dargelegt.
Ich möchte hier nicht alle präsentierten APIs nennen, vielleicht erwähne ich nur kurz diejenigen, die mir am besten im Kopf erhalten geblieben sind. So wurde unter anderem die Web Speech API vorgestellt, welche Text-to-Speech sowie Speech Recognition Funktionalität mitbringt. Da Sprachsteuerung in der digitalen Welt immer bedeutender wird, lohnt es sich auf jeden Fall sich mit dieser API auseinanderzusetzen. Des Weiteren führte der Speaker einen Prototyp vor, welcher auf die Web Bluetooth API zurückgreift, um Rohdaten aus Bluetooth Geräten auszulesen. In dem Prototyp wurden dann aus einem Bluetooth fähigen Pulsgurt die Herzfrequenzdaten des Speakers ausgelesen, wobei die Herzfrequenz bei dieser Live-Vorführung fortlaufend stieg.
Des Weiteren ging man in diesem Vortrag auf das Zusammenspiel der Service Worker und Cache API ein. Mithilfe dieses Zusammenspiels kann man eine Online Anwendung auch offline fähig machen. Request und Response werden komplett im Cache gehalten und sobald eine Internetverbindung wiederaufgebaut werden kann, wird die Online Funktion ausgeführt.

Nach einem ausgiebigen Frühstück ging es dann weiter mit der zweiten Session. Oliver Gierke von Pivotal (aus Spring-Vorträgen bekannt) widmete sich dem Thema „REST – beyond the obvious“. Und wie der Name schon sagt, ging es hier nicht um die üblichen REST-Themen, der Vortragende stellte sich eher der theoretischen Betrachtung von Client-Server-Architekturen im Hinblick auf Kontext, Abstraktionslevel, Kopplung sowie Versionierung. Des Weiteren ließ er Ideen von Hypermedia (HATEOAS) zur Optimierung der Client-Entwicklung einfließen. Unterschiedliche Teams für Client-/Serverentwicklung führen, wie wir wissen, zu Herausforderungen. Divergierende Releasezyklen ist nur eine Herausforderung, die ich hier benennen möchte. Die Client-Entwicklung sollte zum einen möglichst flexibel gestaltet werden, zum anderen sollte der größte Teil der Logik in das Backend ausgelagert werden. Somit behandelte der Vortrag u.a. das Thema der Abbildung der Geschäftsprozesse in die Client-Server-Architektur. Der Speaker riss damit auch das Thema „Connascence“ an, das im Groben besagt, dass Elemente, welche nahe aneinander liegen, eine starke Kopplung bedingen, wohingegen bei Elementen, welche weit auseinander liegen, eine starke Kopplung unbedingt zu vermeiden ist. Mittels Hypermedia können dem Client des Weiteren Strukturinformationen mitgeliefert werden, auf Basis derer der Client die anzuzeigenden Elemente bzw. nächsten Schritte bestimmen kann. Der Workflow, welche aus der Backend-Logik entspringt, wird dem Client somit zugänglich gemacht. Dies ist weniger fehleranfällig, da keine Inhalte (zu dynamisch) explizit geprüft werden müssen.

In der Keynote „Was bedeutet Cloud Native für Java Entwickler?“ konnte man sich an einer Diskussionsrunde aus mehreren bekannten Speakern (darunter Eberhard Wolff und Uwe Friedrichsen) erfreuen. In dieser Diskussion wurde erörtert, welche Bedeutung Cloud Native für die Entwicklerwelt hat. Natürlich wurde hier das dynamische Umfeld und das in Bezug stehende Time-to-Market erwähnt. Cloudtechnologien schaffen die Möglichkeit effizient und relativ risikolos mit neuen Technologien und variierenden Umgebungen zu experimentieren. Prototypen können schnell bereitgestellt werden, durch Microservices und das damit einhergehende Continuous Delivery Konzept durch kleinere Deployment-Einheiten kann so der hochdynamische Markt bezwungen werden. Die Ops-affine Entwicklung zieht den klassischen Developer in die Verantwortung, die Konsequenzen seines Handelns für den laufenden Betrieb zu betrachten. Dies hat natürlich nicht nur Vorteile, Operations-Know How muss zunächst auch angeeignet werden und nur solide Kenntnisse können den erfolgreichen Einsatz von Cloudtechnologien ermöglichen. Zudem ging die Diskussion auch in Richtung Frontend: Wie schneide ich den Client passend zu den Backend-Microservices? Zuletzt wurde noch der richtige Umgang mit der Technologieexplosion diskutiert. Wie geht man als Entwickler mit dem rasanten Wachstum des Technologiestacks am besten um? Wie soll man sich im Technologie-Dschungel nachhaltig auskennen? Während ein tiefgründiges Wissen jeder neuen Technologie (fast) unmöglich ist, kann ein begrenztes Wissen die Zusammenarbeit im Team erheblich vereinfachen.

Die vorletzte Session griff das Thema „Microservices mit dem Kafka Ökosystem“ auf. Zunächst ging der Schweizer Guido Schmutz auf die Unterschiede zwischen SOA und Microservices ein. Neben Side Cars, Event-Driven Architekturen im Allgemeinen sowie Event-Brokern wurde Kafka als praktisches Beispiel vorgestellt. Ein sehr unterhaltsamer (Schwizerdütsch halt…) als auch interessanter Vortrag, jedoch kam das Kafka Ökosystem nach meinem Geschmack ein bisschen zu kurz.

Im letzten Vortrag handelte es sich um ein etwas sanfteres Thema, nämlich „The holy grail of programmer productivity“. Im Großen und Ganzen behandelte diese Session das Thema Produktivität am Arbeitsplatz. Wie kann man effizient und effektiv arbeiten? Wie verhalte ich mich im Team, um die Teamproduktivität zu maximieren? Wie gehe ich mit dem Meeting-Wahnsinn um? Störende Faktoren im Arbeitsumfeld und Lösungen hierfür wurden sehr praxisnah erläutert. Mitunter wurde das „Getting things done“ Prinzip erwähnt, eine Methode, um die eigene Produktivität zu verbessern. Auch auf agile Methoden (besonders Scrum) sowie auf das PRINCE2 Process Model wurde eingegangen. Besonders fasziniert und teilweise auch schockiert haben mich die Ratschläge im Umgang mit Meetings. Einfach ein Meeting zu verlassen, falls man nichts dazu beisteuern oder keine Erkenntnisse daraus gewinnen kann, ist leichter gesagt als getan. Jedoch war die Einhaltung der Meetingzeit ein wichtiger Punkt, den man im Arbeitsalltag immer beachten sollte, was sich sehr oft jedoch als ziemlich schwierig erweist. Bewährt hat sich auch die Festsetzung von Meetings auf den Nachmittag, da man vormittags die beste Leistung erbringen kann, um wichtige Tasks voranzubringen. Zuletzt sollten alle Vereinbarungen, welche man gemeinsam trifft, immer festgehalten werden, am besten auf eine Art und Weise, sodass jeder beteiligte Mitarbeiter fortwährend Zugriff darauf hat und die Vereinbarungen nicht im Alltagsgeschehen untergehen. Dazu muss man sich auf eine globale „Inbox“ einigen, in die alle Tasks einfließen können.

Insgesamt ein wirklich sehr interessanter und innovativer Konferenztag. Ich freue mich auf die nächste WJAX!

Kommentare

Selber kommentieren:






Weitere Beiträge zum Thema Technologie


HTML5 Polyfill

Autor: Sascha Nützel


Technologie


Nachdem das „required“- Attribut im Safari nicht funktioniert, bin ich auf die Suche nach einem Polyfill gegangen. Dabei bin ich auf folgende Bibliothek gestoßen: https://github.com/aFarkas/webshim Die Einbindung gestaltet sich recht simpel und wird hier https://github.com/aFarkas/webshim#installation-and-usage gut erklärt. Es besteht auch die Möglichkeit, nicht alle Module einzubinden sondern nur vereinzelt gebrauchte (z.B. ‚forms‘). Das Portalseitige Minify muss für …


Beitrag lesen
31.
August
2016

bLazy.js

Autor: Benjamin Hofmann


Technologie // User Experience & Design


Und schon wieder eine kleine Standalone-Vanilla-JS-Library, die ich am Wochenende entdeckt habe: bLazy.js (GitHub, Demo) In dem ca. 1,5 KB Skript befindet sich die komplette Logik, um Bilder erst dann zu laden wenn sie im Viewport angezeigt werden. Und nicht nur Bilder, sondern auch I-Frames und andere Embeds können dynamisch nachgeladen werden. Und es funktioniert …


Beitrag lesen
26.
Sep.
2016

Boah, Newsticker sind doch so…. 2016

Autor: Benedikt Keller


Technologie // User Experience & Design


Einige von uns haben sich ja schon die Augen gerieben: Der tot geglaubte Newsticker erhält bei vielen Kunden im Portal wieder Einzug. Leider kam es bei diversen Umsetzungen mit fertigen Tickern in letzter Zeit aber zu einigen Problemen. Problem 1: Responsivität Die Liste an fertigen Tickern im Netz ist lange und die Fähigkeiten der Ticker sind …


Beitrag lesen
29.
April
2016

ModPagespeed & Kommentare in CSS

Autor: Sascha Nützel


Technologie


Beim gestrigen Tirol Deployment kam es zu interessanten Fehlermeldungen beim CSS Minify über ModPagespeed (Failed to load resource: net::ERR_INCOMPLETE_CHUNKED_ENCODING im Chrome bzw. 404 in FF/IE). Grund war eine Kommentierung im CSS mittels „//“, bitte verwendet daher im CSS „/* mein lustiger Kommentar */“.  


Beitrag lesen
26.
August
2016