Blog & Artikel

Artikel

Die VENOM Story

Sie erfahren anhand eines (komplett anonymisierten), realen Beispiels, wie die inkrementelle Modernisierung eines historisch gewachsenen Systems funktionieren kann. Das riesige, gewucherte System VENOM von >2 Mio Lines-of-Code zu modernisieren oder komplett neu zu schreiben - vor dieser schweren Entscheidung stand die (fiktive, aber sehr realitätsnahe) Firma SAMM Inc.

Blog-Post

Tests Granularity

In two previous posts we discussed the benefits of automated tests and the properties of a good test. So far we were trying to avoid differentiating the tests in any way. This time we want to address one way how tests can be classified: tests granularity.

Artikel

MLOps: You train it, you run it!

CI/CD & Operations für Machine Learning

Artikel

Software Reviews

Die initiale Architektur und Infrastruktur eines Systems wird üblicherweise kompetent und sorgfältig geplant und umgesetzt, bei der iterativen Weiterentwicklung auf Clean Code und Code Reviews geachtet. Viele kleine über die Jahre getätigte Änderungen an der Software ergeben dann aber nicht immer ein in sich schlüssiges Gesamtbild. Spätestens wenn sich die Time-To-Market verschlechtert und eine Anwendung nicht mehr alle notwendigen Qualitätsanforderungen erfüllt sollte ein umfassendes Software Review in Erwägung gezogen werden.

Blog-Post

Good arguments for SPA frameworks

I love SPAs when they are used with a clear purpose. I hate them when they are not. This blog post tries to explain my personal conflict.

Artikel

Gut gesiebt

Von Usability und Features – Service Meshes im Vergleich

Artikel

Modernes funktionales Programmieren in Java

Erfahrene Java-Entwickler*innen können viele der Entwurfsmuster des „Gang of Four“-Buches aus dem Stand zitieren, identifizieren und anwenden. Trotzdem stehen diese praktisch seit der Erscheinung des Buches unter Kritik: da sie teils vage definiert sind, strotzen „moderne“ Codebasen nur so von Singletons, Factories und Buildern. Auf der anderen Seite stehen die Anhänger*innen der funktionalen Programmierung, die sich gerne über die objektorientierten Patterns lustig machen. Die Wahrheit liegt wie so oft in der Mitte: seit Version 8 lassen sich auch in Java die cleveren Gedanken aus der funktionalen Welt effektiv und komfortabel benutzen, ohne die Objektorientierung aufzugeben.

Blog-Post

Anatomy of a Good Test

In our last post, we focused on why we should write tests and what value they provide. This time we will go far more technical and take a look at a single test. We will show what makes a test a good one and describe desired and unwanted properties. Interestingly enough, all those properties hold, no matter how isolated or integrated the test is. This already gives us a hint that all tests are alike, we should remember that. Unfortunately, as the topic is very broad, we will have to skip some aspects that play a role when we’re talking about test suites. We will get back to them in one of our next posts.

Artikel

Unbekannte Besonderheiten von Java

Was? Das geht mit Java?

Artikel

Developers are Irresponsible and Childish!

If you don’t babysit developers, they’ll do nonsense all day long. How should you deal with them?

Blog-Post

Why you should write automated tests

This blog post gives an overview of the most common benefits gained by writing automated tests. It starts in a place where most of the projects we’ve seen so far are: tests are written as a last step of the development process. Then it shows additional benefits that could be gained if we all gave the tests a bit more focus and care.

Blog-Post

Visualizing the progress of a refactoring into a hexagonal architecture using jQAssistant

Blog-Post

Ganz sichere Verbindungen

Artikel

Images für Java-Anwendungen bauen

Vielfach werden für den Betrieb von Java-Anwendungen Container verwendet. Das setzt voraus, dass die Anwendung als Container-Image zur Verfügung gestellt wird. Doch wie entsteht ein solches Image? Und worauf sollten wir achten? Dieser Artikel zeigt mehrere Wege, wie wir für eine Anwendung zu einem solchen Image gelangen können und worauf wir dabei achten sollten.

Blog-Post

Ganz sichere Verbindungen

Ein Anwendungsfall für ein Hardware-Security-Modul

Blog-Post

Cookie-based Spring Security Session

If you need authentication within your Spring Boot web application, the natural choice is to use Spring Security. It’s easy to use and, as long as you stick close to the defaults, it’s also quite easy to configure. But, by sticking to those defaults, you will automatically get a session that is persisted on the server-side. That’s a problem.

Blog-Post

Does “Broken” Agility Help?

Agile software development is often insufficiently implemented and executed. Does it help anyway?

Blog-Post

Happy without a Service Mesh

The basis for meaningful architecture decisions is the examination of the problem and a good overview of the options.

Artikel

Mit offenen Augen und offenem Geist

In Deutschland leben ca. 7,8 Mio. schwerbehinderte Menschen. Hierbei handelt es sich um eine enorme Zahl potenzieller künftiger Kunden. Software, die unter Missachtung ihrer Accessibility entwickelt wurde, schließt diese Menschen als Nutzer aus. Und nicht nur diese: Die barrierefreie Gestaltung von Softwareprodukten birgt häufig übersehene Vorteile sowohl für Unternehmen als auch für sämtliche Nutzer.

Artikel

Machine Learning Daten in den Griff bekommen

Für viele Verfahren im Bereich Datenanalyse und Machine Learning werden mehrdimensionale Arrays benötigt. Da oft mit großen Datenmengen gearbeitet wird, ist es, neben anderen Optimierungen, wünschenswert eine Array Implementierung zu verwenden, die auf hohe Performance und geringen Speicherverbrauch optimiert ist. Viele Frameworks setzen deshalb auf ndarrays von numpy oder eigene Implementierungen statt die Standard Listen- oder Arrayimplementierungen von Python zu verwenden.

Blog-Post

Sicher vernetzte Remote-Arbeit

Verteilte Knoten verbinden durch ein Nebula VPN

Blog-Post

Automating Dependency Updates with GitHub Actions

This describes setting up a GitHub Actions workflow from scratch to schedule automated dependency updates.

Blog-Post

Wenn Customizing zur Legacy wird

In diesem Blog-Post visualisiere ich ein regelrechtes Schlamassel mit Hilfe von Wardley Maps und Elementen aus dem strategischem Domain-driven Design.

Artikel

Das Ammenmärchen der Verschlüsselung

Bitcoin-Sicherheit durch Verschlüsselung?

Blog-Post

Architektur, die mitwächst

Architektur sollte wachsen und gepflegt werden. Die Geschichte eines Shops.