Java

Lesezeit: 12 MinutenJava ist eine plattformunabhängige, kompilierbare, statisch typisierte und objektorientierte Programmiersprache. Mit der Einführung von Annotationen in Java 5 unterstützt Java auch aspektorientierte Programmierung. Seit Java 8 unterstützt Java mit Lambda-Funktionen auch funktionale Programmierung. Die Sprache Java wurde von Sun Microsystems entwickelt und 1995 erstmalig der Öffentlichkeit zugänglich gemacht. Als Urvater von Java gilt der Kanadier […]

Java Weiterlesen »

Domain-driven Design: Factory und Repository

Lesezeit: 5 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: Factory und Repository Weiterlesen »

Semantic Release

Lesezeit: 10 MinutenSemantic Release ist ein Tool, mit dem sich Semantic Versioning automatisieren lässt. Für die Verwendung muss der Code der zu versionierenden Software in einem Git-Repository verwaltet und eine Continuous Integration Pipeline (CI Pipeline) zum Bauen der Software eingerichtet sein. Ich setze dafür GitLab ein. Semantic Versioning Der Begriff Semantic Versioning wurde von Tom Preston-Werner, einem

Semantic Release Weiterlesen »

Python

Lesezeit: 7 MinutenPython ist eine plattformunabhängige, interpretierte, dynamisch typisierte, prozedurale und objektorientierte Programmiersprache, die aber auch funktionale und aspektoriente Paradigmen unterstützt. Die Sprache ist Anfang der 1990er Jahre von dem Niederländer Guido van Rossum ins Leben gerufen worden. Bis 2018 war Guido van Rossum als Benevolent Dictator For Life (BDFL) maßgeblich für die Leitung und Designentscheidungen bei

Python Weiterlesen »

Neue Rubrik Programmiersprachen

Lesezeit: 3 MinutenIch habe in der Vergangenheit mit einer Vielzahl an Programmiersprachen gearbeitet. Wirklich versiert bin ich aber nur in Java und Python. Mit der Programmiersprache Java arbeite ich fast täglich seit etwa zehn Jahren. Darüber hinaus war ich an drei Softwareprojekten beteiligt, die mit Python umgesetzt wurden. Python setze ich auch intensiv für individuelle Monitoringskripte auf

Neue Rubrik Programmiersprachen Weiterlesen »

Architecture Decision Record

Lesezeit: 3 MinutenEin Architecture Decision Record (ADR) dokumentiert eine bedeutsame Architekturentscheidung (AD). Ein ADR sollte leicht verständlich, aussagekräftig und eindeutig sein leicht erstellbar sein einmal angelegt nicht mehr verändert werden eine Begründung für die Entscheidung liefern genau eine Architekturentscheidung dokumentieren strukturiert abgelegt werden, etwa in einem Wiki oder einem Versionskontrollsystem ADRs bieten viele Vorteile: Eine in die

Architecture Decision Record Weiterlesen »

Liskov-Substitution Principle

Lesezeit: 8 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 Liskov-Substition Principle (LSP) ist ein Prinzip aus der objektorientierten Programmierung, das ursprünglich von Barbara Liskov im Jahr 1987

Liskov-Substitution Principle Weiterlesen »

Domain-driven Design: Entity, Aggregate und Domain Service

Lesezeit: 8 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: Entity, Aggregate und Domain Service Weiterlesen »

Lombok

Lesezeit: 10 MinutenBoilerplate-Code ist ein ständiger Begleiter im Java-Umfeld. Die Mehrheit aller Getter und Setter tun genau das, was man erwartet: Den Wert einer Variablen eins zu eins zu setzen bzw. zurückzugeben. equals() und hashcode(), da wo sie benötigt werden, beziehen oftmals alle Felder einer Klasse mit ein. toString() liefert eine lesbare Aneinanderreihung der Werte aller Felder

Lombok Weiterlesen »

OODA-Loop

Lesezeit: 5 MinutenDie OODA-Loop ist ein Konzept militärischen Ursprungs, das sich auf verschiedenste Bereiche anwenden lässt und auch in der IT interessant ist. Das Akronym OODA steht für Observe-Orient-Decide-Act und beschreibt einen Entscheidungsprozess, der in einer Endlosschleife immer wieder abgespielt wird. Die OODA-Loop im Schach Ein prädestiniertes Beispiel für die Anwendung der OODA-Loop ist das Schachspiel. Jeder

OODA-Loop Weiterlesen »