Zurück zur Startseite

Aktuelles

Blog & Insights

Gedanken zu Softwarearchitektur, KI in der Entwicklung und der Modernisierung gewachsener Systeme — chronologisch, der neueste Beitrag zuerst.

Alle Beiträge 14 Beiträge

Programmierender Roboter als Symbolbild für KI #AI

Meine neue Webseite – ein Experiment mit KI-gestützter Softwareentwicklung

Diese Homepage entstand als Experiment zur KI-gestützten Softwareentwicklung. Von der Konzeption mit ChatGPT über die Designentwicklung mit Claude Design und die Projektstrukturierung mit Agentheim bis hin zur Umsetzung mit einem GPT-5.5-basierten Agenten wurde nahezu der gesamte Entwicklungsprozess durch KI unterstützt. Auch die verwendeten Grafiken wurden vollständig per KI generiert — ebenso wie dieser Artikel.

#AI#Astro#Webdesign#Claude Design#pi.dev
Weiterlesen
Symbolbild für Git #Git

First release of the Git Whiteboard App

The Git Whiteboard App is a browser-based tool for visualizing Git commit graphs during training sessions. Features such as commits, branches, merges, rebases, detached HEAD states and reflog recovery become easier to demonstrate than with a real repository or a physical whiteboard. The project grew out of Git trainings and was implemented as a Kotlin/JS ShipIt Days experiment.

#Git#Training#Kotlin/JS
Weiterlesen
Symbolbild für Kotlin #Kotlin

How to use JUnit 5 @MethodSource-parameterized tests with Kotlin

JUnit 5 @MethodSource parameterized tests hit a Kotlin-specific issue because provider methods are not static by default. This leads to lifecycle and lookup errors unless the test setup is adapted. A per-class lifecycle via a custom annotation or @JvmStatic methods in a companion object both make the parameter source usable.

#JUnit 5#Kotlin#Parameterized Tests#Testing
Weiterlesen
Symbolbild für das Thema Testing #Testing

Use null values in JUnit 5 parameterized tests

Null values cannot be used directly in a JUnit 5 @ValueSource annotation for parameterized tests because Java annotation parameters must be constant expressions. @MethodSource avoids this limitation by providing test data from regular code and can therefore include null values. Later JUnit work aimed to make null arguments easier to express directly.

#JUnit 5#Parameterized Tests#Testing
Weiterlesen
Symbolbild für das Build-Werkzeug Maven #Maven

Working with Maven dependencies not found in public repositories

Maven-Projekte benötigen manchmal Abhängigkeiten, die nicht in öffentlichen Repositories verfügbar sind. Repository Manager, system-scoped Dependencies, lokal installierte Artefakte und projektlokale Repositories lösen dieses Problem mit unterschiedlichen Vor- und Nachteilen. Ein lokales Repository innerhalb des Projekts hält Builds selbstständig und behandelt nicht-öffentliche Artefakte wie normale Dependencies.

#Maven#Dependencies#Build
Weiterlesen
Abstraktes Code- und Architektur-Symbolbild für Informatik-Themen #IT

Wie werde ich zum IDE Kung Fu-Meister?

Der produktive Umstieg auf eine neue IDE gelingt besser mit einer klaren Strategie. Ein konsequenter Wechsel, möglichst mausfreies Arbeiten, das Lernen der nativen Keymap und kleine Übungsrituale wie die PostIt-Methode helfen beim Aufbau neuer Gewohnheiten. Plugins, Productivity Guides, Release Notes und andere Lernquellen unterstützen dabei, die Möglichkeiten der IDE dauerhaft besser auszuschöpfen.

#IDE#Productivity
Weiterlesen
Abstraktes Code- und Architektur-Symbolbild für Informatik-Themen #IT

Das Neo2 Tastaturlayout

Tastaturlayouts sind ein wichtiger Faktor für Entwicklerproduktivität. QWERTZ und englische Layouts haben beim Programmieren jeweils Nachteile, während Neo2 mit zusätzlichen Ebenen für Sonderzeichen und Cursorsteuerung eine ergonomische Alternative bietet. Neben Vorteilen und Umstiegsmöglichkeiten gehören auch praktische Einschränkungen und Installationsoptionen zur Betrachtung.

#Keyboard#Productivity
Weiterlesen
Symbolbild für das Thema Testing #Testing

JUnit 5: Die Neuerungen im Überblick

JUnit 5 wurde als grundlegende Neuentwicklung des Java-Testing-Frameworks konzipiert. Die neue JUnit Platform, erste Toolunterstützung und zentrale Features wie Display Names, Lifecycle-Annotationen, Assertions mit Lambdas, Tags, Nested Tests, Dependency Injection, dynamische Tests und Extensions zeigen die Richtung der neuen Version. Insgesamt entsteht eine gut durchdachte Grundlage für elegantere und flexiblere Unit-Tests.

#JUnit 5#Testing#Java
Weiterlesen
Symbolbild für das Build-Werkzeug Gradle #Gradle

Gradle Script Kotlin

Gradle Script Kotlin entstand aus einer frühen Zusammenarbeit zwischen Gradle und Kotlin. Kotlins statische Typisierung, IDE-Unterstützung und DSL-Fähigkeiten passen gut zu Build-Skripten und versprechen bessere Navigation, Refactorings und Autovervollständigung. Ein Beispiel zeigt, wie Kotlin-basierte Gradle-Skripte aussehen und welche Rolle Groovy weiterhin spielt.

#Gradle#Kotlin#Build
Weiterlesen
Datenbank-Symbolbild für SQL #SQL

ORM vs. SQL: When should I use a SQL-centric persistence layer?

ORM-based persistence is not always the best fit for Java applications that work with relational databases. Type-safe SQL DSLs such as QueryDSL or jOOQ avoid the pitfalls of raw SQL strings while preserving direct control over database queries. SQL-centric persistence can be advantageous in specific scenarios, but it also brings additional mapping and maintenance effort.

#ORM#SQL#Persistence
Weiterlesen
Kaffeetasse als Symbolbild für Java #Java

Add Support for Java 8 Date & Time API to Jackson Serialized REST Web Services

Jackson may fail to deserialize Java 8 Date and Time API types such as LocalDate in REST clients unless support for these types is registered explicitly. The jackson-datatype-jsr310 module adds the missing JSR-310 handling. In Spring environments, this requires ObjectMapper configuration unless Spring Boot performs the registration automatically.

#Java#Java 8#Jackson#REST
Weiterlesen
Kaffeetasse als Symbolbild für Java #Java

Failing Fast With Guava’s Preconditions

Validating method inputs early helps report programming errors close to their source. Guava's Preconditions keep such checks compact and readable compared with hand-written if blocks. Java assertions serve a different purpose: public API validation should rely on exceptions instead.

#Guava#Java#Clean Code
Weiterlesen
Symbolbild für das Build-Werkzeug Maven #Maven

Accessing Maven Properties From Your Code

Maven resource filtering makes build-time properties available to application code. The Resources Plugin can be configured so selected files, such as a properties file containing the project version, are filtered during the build. The result can then be read by the application, for example to display the current version in a UI.

#Maven#Build#Java
Weiterlesen