Wie funktioniert eigentlich diese API?

Hallo Spaß-Coder. Das agile Manifesto[1]  besagt unter anderem „Funktionierende Software mehr als umfassende Dokumentation„. Damit ist jedoch nicht gemeint, dass ein Softwareprojekt keine Dokumentation enthalten sollte. Wer hat selbst schon einmal versucht eine API zu verwenden und sich dann mühsam durch Versuch und Irrtum sehr zäh dem gewünschten Ergebnis genähert? Oder eine fünf Jahre alte […]

So leicht wie eine Fliege

Hallo Spaß-Coder. Weiter geht es mit unserer Reihe über Entwurfsmuster, heute mit einem weiteren Muster aus der Kategorie der Strukturmuster. Wir schauen uns in diesem Artikel den Fliegengewicht (engl. Flyweight) an, der auch aus der Sammlung der Gang of Four stammt. Da fliege ich voll drauf Das Entwurfsmuster Fliegengewicht ist im heutigen Alltag weiter verbreitet, […]

Im Frühjahr wächst…der Baum

Hallo Spaß-Coder. Weiter geht es mit unserer Reihe über Entwurfsmuster, heute mit einem weiteren Muster aus der Kategorie der Strukturmuster. Wir schauen uns in diesem Artikel den Kompositum (engl. Composite) an, der auch aus der Sammlung der Gang of Four stammt.   Kompo…was? Kompositum (oder auch Teile-Ganzes genannt) ist ein einfaches Muster um Hierarchien von […]

Raus aus den Abhängigkeiten…anders als gedacht

Hallo Spaß-Coder. Mit diesem Artikel wollen wir mehr zum Nachdenken anregen und weniger das Thema ausführlich erläutern. Das Thema der Abhängigkeiten haben wir mittlerweile in verschiedenen Artikeln immer mal wieder aufgegriffen, sei es beim Test, für das Refaktorisieren oder im Kontext des SRPs. Wir verweisen auf ein Architekturmodell, in dem zumindest funktionale Abhängigkeiten grundsätzlich vermieden […]

Nicht nur hübsch dekoriert, sondern auch funktional erweitert

Hallo Spaß-Coder. In unserem letzten Artikel zur Serie über Entwurfsmuster haben wir uns die sog. Erzeugungsmuster angeschaut. Mit diesem Artikel wechseln wir in die Kategorie der Strukturmuster und werfen einen Blick auf den Dekorierer (engl. Decorator), ebenfalls aus der Sammlung der Gang of Four.   Wie funktioniert der Dekorierer? Ebenso wie das traute Heim dekoriert […]

Läuft schon mit Gradle

Hallo Spaß-Coder. Wir haben uns hier im Blog bereits mit der Frage beschäftigt, wie in einem Softwareprojekt Abhängigkeiten zu Fremdbibliotheken verwaltet werden können und der gesamte Lebenszyklus einer Software unterstützt wird. Hierzu kann das Werkzeug Maven eingesetzt werden. Artikel dazu findet ihr unter diesem Stichwort. In diesem Artikel werden wir uns anschauen, welche Alternative es […]

Lombok macht das schon

Hallo Spaß-Coder. Wer kennt sie nicht: Datenklassen, die ausschließlich Attribute enthalten um Daten aufzunehmen und selbst keine Logik beinhalten? Sei es für die Entitäten der Datenbanktabellen oder einfache Datentranfsfer-Objekte. Diese Klasse könnte echt übersichtlich und aufgeräumt sein, wären da nicht diese Getter und Setter der Attribute, eine Implementierung der toString()-Methode, equals() oder hashCode(). Damit wird […]

Maschinelle Erzeugnisse

Hallo Spaß-Coder. In unserem Artikel Warum so gemustert? haben wir erläutert, welche Bedeutung Muster in der Softwareentwicklung haben. Weiterhin haben wir angekündigt, weitere Entwurfsmuster vorzustellen, womit wir uns auch in diesem Artikel auseinander setzten werden. Wer von euch hat schon einmal ein großes Ganzes bestehend aus mehreren Einzelteilen per Software entwickelt, wie zum Beispiel ein […]

Warum so gemustert?

Hallo Spaß-Coder. Wir haben in unseren Artikeln immer mal wieder von Mustern geschrieben. Zum Beispiel im Zusammenhang mit Refaktorisierungen, wie etwa beim Artikel Eine ganze Fabrik – nur zum Testen. Wo in der Softwareentwicklung gibt es noch nützliche Muster und was ist an Mustern eigentlich grundsätzlich nützlich? Mit diesen Fragen wollen wir uns in diesem […]

Total Optional

Hallo Spaß-Coder. Java 8 ist mittlerweile einige Tage verfügbar, aber dennoch möchten wir heute auf ein darin enthaltenes Feature schauen, welches wir (und vielleicht auch ihr) bisher selten genutzt haben (habt). Arbeitet ihr auch gerne mit Methoden, die ggf. Null zurückgeben, wenn z.B. ein gesuchtes Element nicht gefunden wurde oder die Operation unvollständig beendet wurde? […]