Stammbäume ins Netz mit GINA

Die Stammbäume entstanden auf meinem Notebook bislang recht primitiv als Produkt eines JUnit Test. Es wäre aber doch viel schöner, wenn es eine Service geben würde, der über eine REST Schnittstelle, Ahnendaten und Stammbaumgrafiken liefern könnte. Solch einen Service kann man schnell und einfach mit Spring Boot 2 erstellen. Es funktioniert sogar so einfach, dass ich die Beispielapplikation in einem Bruchteil der Zeit zum Laufen gebracht habe, die ich zum Schreiben dieses Beitrages benötigte.

Wir malen einen Stammbaum

“I’ve been looking so long at these pictures of you That I almost believe that they’re real” — The Cure Nachdem wir in den ersten beiden Beiträgen Stammbäume für Entwickler und GEDCOM im Detail etwas über die Datenquellen erfahren haben, wenden wir uns nun dem eigentlichen Wunsch der beiden agilen Kunden zu. Meine Töchter Alicia und Fiona … Read more

GEDCOM im Detail

Im vorherigen Beitrag Stammbäume für Entwickler wurde grob skizziert, wie GEDCOM Dateien mit einem einfachen Java Programm eingelesen werden können. Hier werden wir einige Details der Spezifikation genauer betrachten und zeigen, wie sie in Java leicht umgesetzt werden können.

Programmieren auf Französisch – Tourette

“Die Behandlung dieser einzigartigen Störung oder mehr oder weniger ihre vollständige Behandlung bleibt noch zu entwickeln.” — Georges Gilles de la Tourette Kennen Sie diese Entschuldigungen? “Wir hatten wenig Zeit“, “Für Reviews stand kein Kollege zur Vergütung“, “Da reglementiert uns keine Checkstyle Regel“, “Was Sonarqube nicht bemerkt, hat ausreichende Qualität“? Und natürlich die die Mutter … Read more

Stammbäume für Entwickler

Stammbäume sind für viele Menschen ein spannendes Steckenpferd, egal ob Fachmann oder Laie, ob Historiker oder Nostalgiker, ob Jung oder Alt, jeder freut sich über den Anblick der eigenen Ahnenreihe. Bei dem einen reicht sie weit in die Vergangenheit, bei dem anderen finden sich bloß Eltern und Großeltern.

Und noch ein Fluent Builder

Nachdem wir schon zwei Ansätze für einen Fluent Builder angeschaut haben, wollen wir uns diesmal den Einsatz einer Chain in einem Builder anschauen.

Häufig möchte man einen Builder wiederverwenden, statt ihn jedes Mal für eine Instanz neu zu erzeugen, zu konfigurieren und dann wegzuwerfen.

Read more

Dependency Injection mit ParameterResolver in JUnit 5

JUnit 5 bieten eine ganze Reihe neuer Möglichkeiten um Unit Tests kompakt und strukturiert zu schreiben. Unter anderen gibt es nun die Möglichkeiten die Test Methoden mit Parametern zu versehen. Genauer gesagt können Konstruktoren und alle Methoden, die mit @Test, @RepeatedTest, @ParameterizedTest, @TestFactory, @BeforeEach, @AfterEach, @BeforeAll oder @AfterAll annotiert sind, um Parameter ergänzt werden. Die Parameter werden je nach Typ beim Aufruf der … Read more

Mehr zum Fluent Builder

Kaum erscheint der Beitrag  Fluent Builder statt komplexe Konstruktoren, da regt sich auch schon der Unmut bei den Lesern.
Denn der Verwechslungsgefahr bei den verschiedenen Parametern, kann auch durch eigene Typen für Vorname, Nachname und Anrede vorgebeugt werden.

Fluent Builder statt komplexe Konstruktoren

Immer wieder trifft man auf Klassen die diverse Parametern für ihre Konstruktoren gebrauchen. Abgesehen davon, dass zu viele Parameter ein Code Smell sind, kann es je nach Typ der Parameter auch schon einmal zu einer Verwechslung kommen.

Guard Decorator

Das Decorator Pattern bietet die Möglichkeit einem Objekt dynamisch zusätzliches Verhalten hinzuzufügen. Dazu werden Klassen die einen gemeinsamen Basistyp haben, ineinander geschachtelt.  Ein sehr bekanntes Beispiel für das Decorator Pattern ist in den Java IO Klassen zu finden. Zum Lesen aus einem Stream, wird die Klasse InputStream, bzw. eine ihrer vielen Subklassen verwendet. In diesem … Read more