Open-Closed Principle

Lesezeit: 7 MinutenDie SOLID-Prinzipien zielen darauf ab, objektorientierte Software langfristig wartbarer zu machen. In meinem Blog widme ich jedem der fünf Prinzipien einen eigenen Beitrag. Single Responsibility Principle Open-Closed Principle Liskov-Substitution Principle Interface Segregation Principle Dependency Inversion Principle Das Open-Closed Principle (OCP) ist ein Entwurfsprinzip, das ursprünglich von Bertrand Meyer eingeführt und später von Robert C. Martin […]

Open-Closed Principle Weiterlesen »

Domain-driven Design: Value Object

Lesezeit: 10 MinutenIn dieser Mini-Serie schaue ich mir die Building Blocks im Domain-driven Design (DDD) an. Diese Bausteine gehören zum Tactical Design des DDD. Abgrenzend gibt es das Strategic Design, welches sich mit den High-Level-Aspekten der Domäne als Ganzes befasst, wie der Ubiquituos Language, Bounded Contexts und Context Maps. Strategic Design ist der Hands-On-Part im DDD und

Domain-driven Design: Value Object Weiterlesen »

AssertJ

Lesezeit: 5 MinutenAssertJ ist eine Bibliothek, die Assertions über ein Fluent Interface anbietet. AssertJ kann über Maven oder Gradle in ein Projekt eingebunden und in Kombination mit JUnit verwendet werden. Vorteile gegenüber JUnit AssertJ bietet gegenüber JUnit ein Vielfaches an möglichen Assertions. Das verbessert die Lesbarkeit von Tests, da die getesten Ausdrücke kompakter und expliziter sind. Was

AssertJ Weiterlesen »

Problemlösungsprozess

Lesezeit: 5 MinutenDer Problemlösungsprozess beschreibt eine strukturierte Herangehensweise zur Lösung eines Problems. Dabei soll ausgehend von einem IST-Zustand ein SOLL-Zustand erreicht werden. Um eine geeignete, nachhaltige Lösung finden zu können, sollte man zunächst versuchen das Problem zu verstehen. Ich habe schon oft erlebt, dass man sich sehr früh auf eine vermeintliche Lösung fixiert, ohne überhaupt das tatsächliche

Problemlösungsprozess Weiterlesen »

Single Responsibility Principle

Lesezeit: 4 MinutenDie SOLID-Prinzipien zielen darauf ab, objektorientierte Software langfristig wartbarer zu machen. In meinem Blog widme ich jedem der fünf Prinzipien einen eigenen Beitrag. Single Responsibility Principle Open-Closed Principle Liskov-Substitution Principle Interface Segregation Principle Dependency Inversion Principle Das Single Responsibility Principle (SRP) ist ein Entwurfsprinzip von Robert C. Martin. Es bildet zusammen mit vier anderen Prinzipien

Single Responsibility Principle Weiterlesen »

Domain-driven Design: Subdomain

Lesezeit: 5 MinutenSubdomains sind ein Aspekt aus dem Strategic Design im Domain-driven Design (DDD) von Eric Evans. Sie unterteilen die Fachlichkeit in Core Domain, Supporting Subdomains und Generic Subdomains. Nach meinem Verständnis lassen sie sich auf ein ganzes Unternehmen, aber auch auf eine von einem Bereich verantwortete Systemlandschaft oder eine konkrete Software anwenden. Die Domain anhand eines

Domain-driven Design: Subdomain Weiterlesen »

Testcontainers

Lesezeit: 5 MinutenTestcontainers ist eine mit JUnit integrierbare Bibliothek für Integrationstests, die über Maven oder Gradle in eine bestehende Testlandschaft eingebunden werden kann. Docker-Technologie Testcontainers setzt Docker-Container ein und erlaubt die Verwendung beliebiger Images. Entsprechend ist für die Ausführung von Tests mit Testcontainers eine Docker-Umgebung erforderlich. Je nach Umgebung erfordert das weitere Einstellungen. Auf der Webseite von

Testcontainers Weiterlesen »

Brainwriting

Lesezeit: 3 MinutenDas Brainwriting ist eine alternative Vorgehensweise zum Brainstorming. Was ist nochmal Brainstorming? Beim Brainstorming geht es darum, möglichst spontan Ideen zu generieren und zwar, ganz wichtig: Erst einmal ohne Wertung. Üblicherweise setzt man sich ein zeitliches Ziel und/oder die Vorgabe, eine Mindestanzahl an Ideen zu generieren, bevor man in Phase zwei die genannten Ideen genauer

Brainwriting Weiterlesen »

Faker

Lesezeit: 8 MinutenFaker sind ein Pattern um die Qualität von Unit-Tests zu erhöhen. Sie sollen dazu führen, dass Tests leichter zu schreiben, leichter zu erweitern und leichter zu lesen sind. Faker stellen zunächst einmal eine Investition dar, können das Schreiben der Tests danach aber erheblich beschleunigen. Was macht einen Faker aus? Faker sind Klassen, die ein bestimmtes

Faker Weiterlesen »

HATEOAS

Lesezeit: 7 MinutenDie Abkürzung HATEOAS steht für Hypermedia as the Engine of Application State und bezeichnet einen Aspekt der REST-Architektur, eine REST-Schnittstelle über Verlinkungen erkundbar zu machen. Ein Client, der eine solche REST-Schnittstelle konsumiert, benötigt idealerweise nur die Root-URL, da er alle Ressourcen der Schnittstelle von dort über Verlinkungen erreicht. Arten von Verlinkungen Links an einer Ressource

HATEOAS Weiterlesen »