Issue Tree

Lesezeit: 6 MinutenIssue Trees, zu Deutsch am ehesten als Logikbäume oder Themenbäume übersetzt, sind ein Standardwerkzeug von Unternehmensberatern und gut bezahlten Managern. Sie dienen dazu eine Fragestellung in ihre Bestandteile runterzubrechen und diese wiederum weiter runterzubrechen, bis sich ein vollständiges Bild ergibt. Ein Beispiel zur Veranschaulichung Issue Trees komplett ohne Visualisierung zu beschreiben wird ziemlich abstrakt, daher […]

Issue Tree Weiterlesen »

Interface Segregation 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 Interface Segregation Principle (ISP) ist ein Entwurfsprinzip von Robert C. Martin. Es bildet zusammen mit vier anderen Prinzipien

Interface Segregation Principle Weiterlesen »

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 »