Blog & Articles

Article

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.

Article

Gut gesiebt

Von Usability und Features – Service Meshes im Vergleich

Article

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.

Article

Unbekannte Besonderheiten von Java

Was? Das geht mit Java?

Article

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

Article

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.

Article

Domain-driven Design in the Large

If you know how to classify the concepts of DDD correctly, it will be easy to achieve good results - and there is a structured approach to achieve that!

Article

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.

Article

Machine Learning Daten in den Griff bekommen

Mehrdimensionale Arrays für Machine Learning

Blog Post

Sicher vernetzte Remote-Arbeit

Remote Arbeit ist in der aktuellen Situation opportun. In der digitalen Arbeitswelt bieten sich dafür eigentlich eine optimale Möglichkeiten. Ein Problem kann allerdings sein, dass essentielle Systeme, welche für die Arbeitsvorgänge notwendig sind, nicht im Kontext einer Remote-Arbeit verwenden werden können. Es haben bisher noch nicht alle Unternehmen ihre Infrastruktur nach dem Zero Trust Model aufgesetzt, so dass zentrale Systeme nur über ein - meist von der Außenwelt abgeschottetes - internes Netzwerk erreichbar sind. Existiert die Möglichkeit sich über eine VPN Verbindung einzuwählen, steht diese meist nur einer Handvoll Mitarbeitern zur Verfügung, oder ist durch die Leistungsfähigkeit eines zentralen Einwahlknotens beschränkt.

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

Analyse eines ERP-Systems mit Wardley Maps und strategischem Domain-driven Design

Article

Das Ammenmärchen der Verschlüsselung

Immer wieder liest man, wie stark die Verschlüsselung von Bitcoin und wie sicher dadurch die Nutzung der Kryptowährung sei. Aber was ist denn nun in Bitcoin tatsächlich verschlüsselt? Dieser Artikel soll etwas Licht ins Dunkel bringen.

Blog Post

Architektur, die mitwächst

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

Article

React: Lessons Learned

Article

Domain-driven Design to the code

Beim strategischen Domain-driven Design fokussieren wir uns in der Modellierung sehr stark darauf, die Fachlichkeit möglichst passend zu identifizieren und im Design abzubilden. Leider verlieren wir Entwickler bei der technischen Umsetzung diesen fachlichen Fokus dann aber allzu oft wieder aus den Augen und lassen uns (zu) stark vom neusten hippen Framework begeistern, leiten und beeinflussen und verschmutzen so das fachliche Modell mit unzähligen Technologien. Die Ideen der Onion Architecture und der Einsatz von Stereotypen in der Code-Basis erlauben es, eine Trennung des fachlichen Code vom technisch bedingten Code zu erreichen. Dieser Artikel beleuchtet diese Konzepte und zeigt auf, wie dank Stereotypen in Verbindung mit den taktischen Mustern von DDD diese Trennung konkret erreicht werden kann.