Magisches Validieren in Spring Boot

Spricht man mit manchen Kollegen über den Spring Boot Framework, dann erscheint ihnen vieles daran suspekt. Aus einigen wenigen Klassen werden durch ein Dutzend Annotationen an der richtigen Stelle vollwertige REST Schnittstellen.

Vermutlich erinnern die Annotationen an verfluchte Hexenzeichen, die dem markierten Objekt magische Eigenschaften verleihen. Annotationen sind aber nur Konfigurationshinweise für den Framework, damit der eigentliche Anwendungscode nicht zwischen den, ansonsten notwendigen Boilerplate Code, verloren geht.

Unit Test Contracts mit Default Methoden

Lange Zeit habe ich mir das JUnit 5 Feature Test Interfaces nicht angeschaut, vermutlich weil mir default Methoden in Interfaces noch immer ein wenig suspekt sind. Langsam freunde ich mir mit diesen eigenartigen Schimären an und freue mich, endlich ein schönes Beispiel für Test Interfaces gefunden zu haben.

Das Domain Probe Pattern

Kürzlich las ich bei Martin Fowler einen interessanten Artikel zu einem Design-Pattern von Pete Hodgson. Dazu schossen mir sogleich zwei Ideen durch den Kopf. Zuerst die Frage, warum erst jetzt diese Pattern formuliert wird und gleich darauf der Gedanke, eine meiner Klassen schleunigst umzuschreiben.

Einmal Logger und zurück

Kennen Sie die Türen auf der Herz aus Gold? Diese Dinger mit einem akustischen Hinweis auf ihr eigentlich lautloses Öffnen und Schließen, das nicht nur den Roboter Marvin störte.

Du sprechen ANSEL?

Es ist noch nicht so lange her, da lebte die Computer Industrie in einem Sprachwirrwar biblischen Ausmaßes. Als wäre der Turm zu Babel direkt über den Computerterminals zusammengebrochen, ersannen alle Organisationen und Hersteller ihre eigenen Zeichensatzkodierungen.

Morgan Le Fays Rückkehr

Die Verwendung von boolschen Ausdrücken ist ein Faktor, der die Lesbarkeit und das fehlerfreie Verständis eines Algorithmus maßgeblich beeinflusst. Schon im Beitrag Zauberei mit Wahrheiten wurden einige Probleme von komplizierter Logik angesprochen. Hier nun ein paar neue Beispiele für Code Smells, die sich um Wahrheitswerte ranken.

Einsammeln und portionieren mit Stream Collector

Die Aufgabenstellung klingt dieses mal trivial. Eine Methode wird benötigt, um ein großes Set in viele kleine zu zerlegen. Die Legacy Variante verwendet, eine Methode, die nur auf Listen arbeitet. Daher wird aus dem Set eine List, daraus eine List von List und daraus am Ende eine Collection von Set. Da das ursprüngliche Set, als Endprodukt eines Stream Ausdrucks das Licht der Welt erblickt, wäre eine dazu passende Lösung vorteilhaft.

API Dokumentation mit spring-boot-docs

Documentation is a love letter that you write to your future self. Damian Conway Es gibt die verschiedensten Arten die eigene Rest API zu dokumentieren, Tools wie Swagger können da helfen oder man schreibt selbst Markdown oder Asciidoc Dokumente. Wenn die Swagger Beschreibung nicht zur Generierung der API genutzt wird, dann kann man nie sicher … Weiterlesen

Ergonomie? Nein Danke!

Ergonomie ist der hässliche Fluch den gekränkte Softwareentwickler über die Benutzer aussprechen können. Ein missgelaunter Moment durch die schwarze Brühe am Automaten, von der Geschäftsführung liebevoll “preiswerter Kaffee als Incentive” genannt und eine weitere Arbeitserleichterung wird nie das Licht der Welt erblicken.

Wolkenkuckucksheim

Dieser Beitrag soll aber nicht von alten Griechen oder Komödien handeln, sondern von einer ganz besonderen Stadt in den Wolken, der Cloud. Anbieter wie Google, Amazon oder Microsoft stellen eine Vielzahl von Diensten bereit, von einfachen Speichern, Datenbanken, Rechnerinstanzen, bis hin zu KI Lösungen zum Machine Learning, Datenanalyse und Texterkennung.