Failsafe – Arbeiten mit unsteten Gesellen

Gerade beim Arbeiten mit entfernten Services ist es ein Ärgernis, wenn diese sich flatterhaft verhalten. Der Programmierer ist ein überschaubares, binäres Verhalten seiner verwendeten Helfer gewohnt, sie liefern das korrekte Ergebnis oder einen Fehler.

Eleganz

Für viele Entwickler und Manager ist das Thema Eleganz und Schönheit in der Software Entwicklung ein untergeordnetes Thema, falls sie sich überhaupt schon einmal Gedanken dazu gemacht haben. Häufig steht man diesen Begriffen mit einem gewissen Misstrauen gegenüber. Nicht umsonst gibt es den fatalen Aufruf “Schöner machen könnt Ihr später!”, dem in der Regel keinerlei Nacharbeiten folgen.

Optional Matchers for Hamcrest

Manchmal benötigt man ein kleines Feature, das so schnell aus den Fingern fließt, dass die Zeit nicht lohnt, nach existierenden Lösungen zu suchen. Wie enttäuscht war ich da, als ich beim Schreiben dieses Beitrags etwas ähnliches auf GitHub fand.

Poking Dead Bodies Anti-Pattern

Zur Entwicklung korrekter Unit Tests gibt es zwei ganz unterschiedliche Motivationen. Die ehrenhafte, der Entwickler möchte seinen Code absichern und die andere, der Programmierer wird zum Schreiben von Tests gezwungen. Im Beitrag Tolle Test habe ich einige Grundsätze für das Schreiben guter Unit Tests und die dabei üblichen Fehler skizziert. In diesem Beitrag möchte ich … Read more

Enums für die Ewigkeit

Ein schönes Feature der Persistenz unter Java ist das automatische Speichern von Enum-Werten. Wenn nicht weiter spezifiziert, wird der Ordinalwert der Enum Konstante in der Datenbank gespeichert. In unserem Beispiel gäbe es also den Wert 0 für GROUCHO und den Wert 3 für KARL in der Datenbank. Beim Rückmapping wird der Ordinalwert verwendet um wieder … Read more

Geschmeidige Suche mit Elasticsearch

Vergrößert sich der Datenbestand in der eigenen Anwendung merklich, dann wird es Zeit über eine geeignete Suchlösung nachzudenken. Es gibt eine Menge frei verfügbarer Suchmaschinen, die den Vergleich mit kommerziellen Produkten nicht scheuen müssen. Viele zeigen sich in ihrem Funktionsumfang sogar viel leistungsfähiger. Suchmaschinen liefern sehr schnell Ergebnisse, weil sie nur auf ihrem Index, einem aufbereiteten Extrakt der eigentlichen Daten arbeiten und nicht die gesamte Datenbasis durchsuchen müssen.

Ein alternativer Blick mit Jackson Views

Java Bibliotheken

Liest ein Entwickler seine Source ein zweites Mal, dann findet er mindestens drei Dinge die ihm nicht gefallen. Es gibt immer ein Design-Pattern, das hätte verwendet werden können, eine Bibliothek, die den Code kompakter gestaltet hätte oder ein Algorithmus, der alles vereinfachen würde. Die tatsächliche Implementierung eines Features ergibt sich aus Erfordernissen, Erfahrung und Eingebung des Moments. So kann es immer wieder passieren, dass dem Entwickler die ein oder andere gute Idee nicht in den Sinn kommt.

Catch 304 – Der faule Trick

Beim Experimentieren mit der Spring Boot Rest-Schnittstelle fiel mir wieder einmal auf, dass ich beruflich nur wenige Rest-Services kennengelernt habe, die den HTTP Status Code 304 verwenden. Bei den Projekten, an denen ich teilgenommen habe, gab es tatsächlich nur eine einzige Rest-Schnittstelle, die von diesem Feature gebraucht machte. Der HTTP Status Code 303 NOT Modified … Read more

Neues Material

Womit erstell ein Java Entwickler seine Webseiten? So traurig es im ersten Augenblick klingen mag, er verwendet Javascript. Denn egal welche Technologie verwendet werden soll, damit die Website dem Benutzer gefällt, wird der  Einsatz von Javascript benötigt. Warum also nicht gleich aus der Not eine Tugend machen und die Javascript Bibliothek React verwenden. Die Bibliothek  … Read more

REST in Peace

Im vorläufig letzten Beitrag zum Thema Stammbäume geht es diesmal um die Generierung der grafischen Stammbäume mit Hilfe der REST-Schnittstelle, ein paar kleinen Verbesserungen unserer Sourcen und den Einsatz von HATEOAS in unserer Beispielanwendung. Bevor wir uns dem Thema HATEOAS zuwenden und damit der verbesserten Verlinkung unserer Resourcen mit Spring Boot Mitteln, bereinigen wir erst … Read more