Ab die Post (Teil 2)

Im vorherigen Beitrag zu JavaMail API wurde die Bibliothek GreenMail vorgestellt. Mit dieser Bibliothek ist es möglich, verschiedene E-Mail Server zu simulieren. Da keine überzeugende JUnit 5 Unterstützung existiert, lag die Idee nahe, eine eigene JUnit Extension zu schreiben. Während der Implementierung zeigten sich erste Ideen als unnütz, das Verständnis der GreenMail API verbesserte sich und die eigene Art zu Testen wirkte sich natürlich auf die Gestaltung der Erweiterung aus.

Ab die Post

Der JavaMail Framework ist ein sehr altes Schlachtross aus den Reihen der Java Standard APIs. Trotz des hohen Alters von über 20 Jahren kann man ohne große Umstände Emails damit versenden und empfangen.

Entwickler Dokumentation ohne Textverarbeitung

Leider hält sich in vielen Bereichen immer noch hartnäckig das Gerücht, das für eine ordentliche Dokumentation eine Textverarbeitung notwendig ist.
Üblicher und übler Vertreter dieser Gattung ist Microsoft Word. Die Nachteile durch dieses Programm für Software Entwickler sind nahezu endlos. Programmfehler, komplizierte Bedienung, Ablenkung von Inhalt durch WYSIWYG, Inkompatibilitäten zu anderen Programmen oder eigenen älteren Versionen, automatisierte Dokumentationstools unterstützen das Format nicht.

Trivial Pursuit – API MarkDown

Die Dokumentation einer REST API sieht immer sehr schick aus. Ob es sich um eine interaktive Swagger Seite handelt oder um eine statische Darstellung eines anderen Tools, alle Endpoints, Parameter und Datentypen sind akkurat aufgelistet.

Das Visitor Pattern mit Default Methoden

Bei jedem Beitrag zum Visitor Pattern habe ich die Vermutung, es wird wohl der letzte zum Thema sein. Aber nur knapp drei Monate nach “Kalenderspielereien mit Java – iCalendar” folgt schon ein neuer Beitrag zu diesem Design-Pattern.

Blättern mit Spring HATEOAS

In den Beiträgen REST in Peace und REST heißt HATEOAS wurde schon auf die Möglichkeiten des HATEOAS Patterns hingewiesen. Die Verlinkung von Resourcen nutzen um innerhalb der Client Anwendung das notwendige Wissen um die Server API zu reduzieren, entkoppelt Systeme und vereinfacht die Entwicklung und Wartung. Auch in diesem Beitrag wird es um die Implementierung … Read more

Fun with Refactoring

Leider verhält es sich mit TODOs wie mit den Flaggen an Nord- und Südpol. Sie überdauern die Jahre und sehen hin und wieder enttäuschte Gesichter von Abenteurern, die zu spät gekommen sind.

Aufzählungen und andere String-Konkatenationen

Immer wieder müssen Strings in Java Applikationen zusammengefügt werden. Lange vorbei sind dabei die Zeiten, in denen der Entwickler selber die String Instanzen und einen Separator in einen StringBuilder stecken musste. Mittlerweile kann der Entwickler bei der Verwendung von Streams auf die Collectors.joining Methoden oder in anderen Fällen, auf den dahinter verborgenen StringJoiner, zurückgreifen.

Hin und Her mit Enums

Immer wieder kommt es vor, dass bei der Integration verschiedener Systeme von einer Enum Darstellung in eine andere konvertiert werden muss. Wer dem Fluch ausgesetzt ist, automatisch generierten Source-Code verwenden zu müssen, kennt dieses Ärgernis zur Genüge. Der Dummheit der Source-Code Generatoren gedankt, muss der Entwickler mit einer Vielzahl strukturell ähnlicher Klassen jonglieren.

Agile Anti-Pattern – Lunar Lie

Anti-Pattern sind die schwarzen Schafe unter den Pattern. Sie zeigen eine schlechte Lösung für ein bekanntes Problem. Damit helfen sie aber auf zweierlei Weise, sie warnen vor falschen Entscheidungen und sie helfen bei der Analyse, wenn irgendwas nicht richtig läuft.