Posts

Es werden Posts vom 2022 angezeigt.

Java 17: Sprach-Freatures der neuen Langzeit-Support-Version

Bild
Welche Java Features helfen uns künftig besseren Code zu schreiben? In den Java Versionen 12 bis 17 gibt es spannende, neue Features - ich zeige euch diese hier: Text Blöcke Erweiterungen bei instanceof Neuerungen bei switch Records Versiegelte Klassen RandomGenerator 🎓 Auf Udemy findet ihr meinen kostenloses Online-Kurs zu diesem Blog-Artikel:  Java 17 @ Udemy Neue Java Versionen Seit Java 9 gibt es halbjährlich ein neues Release. Java 11 ist aufgrund des verlängerten Supports bis September 2026 ein wichtiges Release. Daher wird Java 11 aktuell häufig im Berufsumfeld eingesetzt. Seit September 2021 gibt es mit Java 17 ein neues Release mit verlängertem Support (LTS). Dieses wird Java 11 im Berufsumfeld mit der Zeit ablösen. Hier zeige ich Features der Java Versionen 12-17, welche direkten Einfluss auf die Code-Qualität haben und somit zum Thema Clean Code passen. Einen guten Überblick über Java Versionen, Erscheinungsdaten und Feature-Listen findet ihr bei Wikipedia:  https:...

Spring 6: ProblemDetail die Standardisierung von Fehlern in REST APIs

Der RFC 7807 standardisiert das Format von Fehlern in HTTP Responses. Spring 6 liefert die Umsetzung mit der Klasse ProblemDetail ! In der täglichen Arbeit nutzen wir viele Services über ihre REST APIs. Ein klassisches Problem ist, dass verschiedene APIs die gleichen Datenmodelle auf unterschiedliche Weise modellieren. Dann sind wir als Nutzer dieser APIs genötigt Mapper zwischen den API-Modellen zu schreiben. Dieses Problem gibt es auch bei Fehlern, welche beim Nutzen einer API auftreten können. Viele APIs verwenden hier unterschiedliche Formate. Der RFC 7807 standardisiert das Fehler-Format, siehe: https://www.rfc-editor.org/rfc/rfc7807.html   Ein sinnvolles Feature von Spring 6 ist die Umsetzung des RFC 7807 durch die Klasse ProblemDetail . Im Folgenden zeige ich euch wie einfach ihr das in eurer API nutzen könnt. Dann bekommt ihr standardisierte Fehlerbeschreibungen wie diese: {      "type" :  "about:blank" ,      "title" :  "It...

Spring Native Microservices mit GraalVM - Blitzstart in der Cloud

Bild
Der perfekte Microservice skaliert in der Cloud optimal, so dass sprunghaft steigende Last fehlerfrei verarbeitet wird. Mit Spring Native und der GraalVM können wir Cloud native Images bauen. Container von nativen Images starten trotz geringerem Ressourcenverbrauch blitzschnell. Dazu zeige ich euch hier eine Demo. AOT Kompilierung mit GraalVM GraalVM ist eine Java VM (Virtuelle Maschine) und ein JDK (Java Development Kit) in den Java LTS Versionen 11 oder 17. Oracle entwickelt GraalVM und bietet es als freie Community Edition oder lizenzpflichtige Enterprise Edition an. Seit Version 19 im Mai 2019 gilt GraalVM als produktionsreif. Die große Besonderheit von GraalVM ist die ahead-of-time (AOT) Kompilierung des Sourcecodes. Damit bauen wir in der Build-Phase (z.B. mit Maven) ein natives Image. Native Images enthalten alle benötigten Applikations Klassen, Dependencies, 3rd Party Bibliotheken und JDK Klassen. Das native Image ist eine alleinstehende, ausführbare Binärdatei, deren Vorte...

Selenium: Testautomatisierung-Tool oder Bot zur Whisky-Datenanalyse

Bild
Selenium ist ein bekanntes Framework zum automatisierten Testen von Web-Anwendungen durch den Browser. Selenium automatisiert aber auch gut Prozesse, die mit dem Browser bedient werden. In diesem Artikel stelle ich Selenium anhand eines Browser Klick-Bots vor, der die Begehrtheit von Whiskies berechnet. 🥃 English presentation of this article Selenium und Whisky Beruflich habe ich Selenium, wie die meisten, schon zur Automatisierung von Tests benutzt. Selenium ist ein Tool zur Browser-Steuerung. Deshalb wird es meistens für Ende zu Ende Tests eingesetzt, welche die Web-Anwendung vom Browser ausgehend testen.  Beruflich automatisierte ich mit Selenium auch schon Prozesse, welche durch den Browser bedient werden. Als ich bei meinem Hobby "Zahlen, Daten, Fakten zu Single Malt Whiskies" (nur Trinken kann ja jeder 😉) auf die Idee kam die Whiskybase auszuwerten, fiel mir direkt Selenium als geeignetes Werkzeug ein. Die Whiskybase ist eine von Whisky-Fans getriebene Webseite bzw. O...

Testautomatisierung von REST-APIs und Microservices

Bild
Services oder Microservices mit REST-API können mit wenigen und einfachen Tools entwicklungsbegleitend getestet werden. Mit dem Spring Boot Standard Technologie-Stack bestehend aus JUnit, Mockito und Maven können EntwicklerInnen direkt loslegen und automatisierte Unit- und Integrationstests schreiben. In diesem Artikel werde ich dies demonstrieren und Tipps zur Integration in eine CICD Pipeline geben. Die Testpyramide bzw. Testarten Wenn ihr nach der Testpyramide sucht, findet ihr relativ viele verschiedene Varianten. Das Prinzip ist aber immer ähnlich: die meisten Tests werden auf der untersten Ebene benötigt, wo die kleinsten Einheiten möglichst umfangreich getestet werden. Das ist typischer Weise die Testart Unit Tests zum Testen von einzelnen Klassen. Je höher man in den Ebenen der Testpyramide aufsteigt, desto weniger Tests werden benötigt, da diese Tests einen deutlich größeren Bereich des Systems durchlaufen. Für Services oder Microservices mit einer REST-API könnte die Test...