Blog & Articles

Blog Post

Bestehende Rich Clients erneuern

Oft gibt es Rich-Clients die als Backoffice-Applikation wichtige Funktionen erfüllen und nun Probleme machen: egal ob es um Support für mobile Geräte oder um einfaches Arbeiten von zu Hause geht oder auch nur um das Sicherstellen der Weiterentwicklung – Rich-Clients kommen mit Ihren eigenen Problemen. Ob die richtige Antwort für die Modernisierung solcher Applikationen immer die Migration zu einer Webapplikation ist, wollen wir in diesem Artikel beleuchten.

Article

Fundamentals of software architecture: Part 5

In this (fifth) installment of the mini-series on software architecture, we leave behind the realm of small to medium-sized systems and take a look at large, risky, and complex projects. In other words, we examine the “scaling” of the role of software architecture.

Article

Fundamentals of software architecture: Part 4

Who does it?

Blog Post

Communicating organizational changes with “Team Topologies”

Whenever the need arises to set up a new team, split a team into two or move responsibilities between teams it is necessary to have a good idea of where you are and where you want to be after the change. Additionally to the current and final states you will very likely have phases with intermediate states. To help everyone involved to have a shared understanding of which phases you will transition through - and when responsibilities and communication channels have to be created or changed - a visual representation of these states can be used to paint a (literal) common picture.

Article

Automating Dependency Updates with Renovate

Regardless of whether we are working on an application or a library, we always have to deal with dependencies. We are dependent on the version of our programming language, on external or internal libraries, and on tools. In addition to the actual administrative tasks, it is also necessary to update these regularly. Even beyond performing the update itself, this means we need to learn when a new version exists. That’s why this article examines a bot-based solution that can help us with this exact issue.

Article

Technologies for the Integration of Services

A small architecture study

Article

Fundamentals of software architecture: Part 3

In this part of the mini-series, we explain everything you need to do when creating software architecture. First, we take a look at the necessary tasks and activities. Then we discuss some of the skills and capabilities required for these architecture tasks.

Article

Combinable Elements for User Interfaces on the Web

The way we develop user interfaces on the web has changed significantly in recent years. In this column, we therefore want to examine what a modern approach looks like and which challenges this poses, especially for classic template engines from the Java world.

Blog Post

Extending the OpenTelemetry Java Agent for Spring Auto-Instrumentation

Article

Zukünftige Features des JDK

Ich weiß nicht, wie es Ihnen geht, aber seitdem mit JDK 9 der Release-Zyklus des JDK auf sechs Monate verkürzt wurde und wir mittlerweile, dank Preview und Incubator, auch Features bereits vor der vollständigen Fertigstellung ausprobieren können, wirkt das JDK lebendiger als eh und je. In diesem Artikel wollen wir deswegen einen Blick in die Zukunft werfen und uns aktuelle Preview-Features anschauen, die es vermutlich in naher Zukunft final ins JDK schaffen werden.

Blog Post

Entwickeln mit ChatGPT

In der Welt der Softwareentwicklung ist das Wissen darüber, wo man Informationen findet, oft wertvoller als alles auswendig zu wissen. Doch was, wenn ein Werkzeug nicht nur Informationen liefert, sondern auch lernt, Probleme zu lösen und beim Entwickeln zu assistieren? In diesem Blog Post berichte ich aus meinem Alltag als Entwicklerin und wie mich ChatGPT bei beruflichen Aufgaben unterstützt - sei es bei der Einarbeitung in neue Programmiersprachen, dem Schreiben von Skripten oder dem Umsetzen von kreativen Ideen.

Article

The Evolutionist

Software Architecture Work on Existing Systems

Article

Fundamentals of software architecture: Part 2

Welcome to the second part in the mini-series on software architecture.

Article

Fundamentals of software architecture: Part 1

Welcome to the first part in the mini-series on software architecture. We start by examining the original source of the term – since the word architecture presumably conjures in most people thoughts of buildings.

Blog Post

Rate Limiting with Spring Boot, Bucket4j, and Redis

Blog Post

Rate Limiting with Spring Boot

Let’s implement rate-limiting protection for your Spring Boot server without the need for any additional dependencies beyond those included in the Spring Boot Starter package.

Blog Post

Lokale LLMs mit Ollama und Spring AI nutzen

Egal, ob wir wollen oder nicht, um AI und speziell Large Language Models (LLM) kommen wir aktuell nicht herum. Mich schrecken solche Hypes zwar aus Reflex eher ab. Allerdings sieht es so aus, als würde von diesem Hype mehr bleiben als vom letzten, der Blockchain. Deshalb wollen wir uns in diesem Post einmal anschauen, wie man ein LLM lokal aufsetzen kann und dieses mittels Spring AI in eine Spring Boot-Anwendung einbinden kann.

Blog Post

Compacted State Feeds

Article

Es lebe die Bürokratie!

Die Digitalisierung hilft, Bürokratie zu reduzieren, glaubt man. Warum das so einfach nicht ist, erklärt diese Kolumne.

Blog Post

Was treibt dich an?

In der heutigen schnelllebigen Welt der Softwareentwicklung ist die Modernisierung von Software eine unerlässliche Aufgabe, um mit ständig ändernden Anforderungen und Technologien Schritt zu halten. Es gibt immens viele Ansätze zur Modernisierung von Software. Aber es ist eine Herausforderung, die richtigen Werkzeugkästen in den richtigen Situationen zu finden. Wie schön wäre es, die eine «Ultimative Softwaremodernisierungsmethode™️» in den Händen zu halten, die all die Probleme mit den in die Jahre gekommenen Softwaresysteme lösen kann?

Article

Automatisierte Code-Wartung mit OpenRewrite

Teil 2

Blog Post

Rooting Out Issues: JPA and Lombok Combination Problems Demystified

Ever encountered perplexing issues with JPA and Lombok’s @Data annotation when handling entities in Java? This blog post explores unexpected behaviors, especially with auto-generated IDs, in conjunction with equals and hashCode methods. Learn about identity and uncover how you can resolve these challenges forever.

Blog Post

Die Anatomie eines erfolgreichen Teams

Die Gründe für das Scheitern von Softwareentwicklungsprojekten sind vielfältig und zum Großteil nicht technischer, sondern organisatorischer Art: Zu hohe Komplexität, unklare Anforderungen, nicht-funktionale Teams, Fokus auf den falschen Dingen oder überhandnehmende Konzernpolitik. Bereits zum Projektstart können Maßnahmen getroffen werden, um einige dieser Risiken einzudämmen und die Aussicht auf einen Projekterfolg zu erhöhen. Dieser Artikel wird den Fokus auf ein funktionierendes, erfolgreiches Entwicklungsteam legen und erörtern, welche Stellschrauben Sie drehen können – und von welchen Sie lieber die Finger lassen sollten.

Blog Post

Schema Evolution

with Apache Avro

Article

Automated code maintenance with OpenRewrite

With the large number of software development projects in most organisations, keeping these projects up to date with the latest security patches and framework updates can be quite a task. OpenRewrite is a library that provides an automated solution to this problem. Using recipes written in Java, it can perform large-scale source code refactoring during the build process, preserving as much of the original code as possible. In this blog post, I will explain how OpenRewrite works and how you can use it to refactor your code base.