Blog & Artikel

Artikel

Designer sind vom Mars, Entwickler von der Venus

Digitale Produkte werden von Designern und Entwicklern sowie Architekten und Projektleitern Hand in Hand erarbeitet. Alle tragen gleichermaßen die Verantwortung für das Endergebnis. Und doch, oder deshalb, stellt die Zusammenarbeit oft eine Herausforderung dar. Über Farben lässt sich streiten, über Frameworks auch, im besten Fall agil und aufs Pixel genau. Ein empathischer Umgang miteinander erleichtert sicherlich den Arbeitsalltag, aber grundlegende Kenntnisse, die über den Tellerrand der eigenen Disziplin hinausgehen, können die Qualität eines Produkts direkt beeinflussen.

Artikel

Java-Bibliotheken für den Einsatz in Tests

In den meisten Projekten entfällt ein nicht gerade kleiner Anteil des Codes auf Tests. Für diesen Testcode sollten dieselben Regeln wie für Produktivcode gelten. Neben dem Achten auf Verständlichkeit und Wartbarkeit gehört auch das Erschaffen von Abstraktionen und das Vermeiden des Not-invented-here-Syndroms durch den Einsatz von passenden Bibliotheken dazu. Dieser Artikel stellt sechs Bibliotheken vor, die sich im Einsatz als praktisch und hilfreich erwiesen haben.

Blog-Post

Testing is storytelling

Blog-Post

Continuous Integration Contradicts Features Branches!

Features branches are a popular approach to separating the development of different features - but unfortunately this contradicts continuous integration’s goal of continuously integrating all changes. So what to do?

Blog-Post

Do We Worship Complexity?

Complexity is the most important challenge in software development. So it is important to always strive to eliminate complexity. But sometimes we worship complexity - and that can make complexity problems unsolvable.

Blog-Post

Building a Load Test with Tsung for a Login and Post Session with dynamic url-encoded variables

Artikel

Continuous Integration mit Docker und GitLab

GitLab, 2011 als webbasierter Git-Repository-Manager gestartet, hat sich mittlerweile zu einer umfangreichen Softwareentwicklungssuite mit einer Vielzahl an Tools weiterentwickelt. Neben einem Issue-Tracker und einer Docker-Registry enthält es mittlerweile auch einen Continuous-Integration-Server mit einer optionalen Kubernetes-Integration. Der Artikel zeigt, wie eine Build- und Deployment-Pipeline aufgebaut werden kann und welche Einzelschritte ein neues Feature vom Issue-Tracker bis zur Produktionsumgebung durchläuft. Als Beispiel dient dabei eine Spring Boot 2-Anwendung, die als Docker-Image paketiert und anschließend auf einem Docker-Host deployt wird.

Artikel

Vertikalisierung im E-Commerce

Im Artikel E-Commerce im Wandel wurden einige Herausforderungen für den digitalen Handel aufgezeigt. An dieser Stelle soll nun der erwähnte Lösungsansatz zur Adressierung dieser Herausforderungen vorgestellt werden.

Blog-Post

The Problem With Agility

Why We Are Still Stuck in Agile Transformations

Blog-Post

Design Sprints: Technik

Über die letzten Design Sprints hinweg haben wir immer wieder am technischen Setup für die Nutzer:innen-Interviews gedreht und optimiert. Dieser Post soll einen kurzen Überblick über unsere aktuell eingesetzten Tools geben.

Artikel

Generierung von Regressionstests für Legacy-Code

In diesem Artikel geht es um die Möglichkeit, bei Legacy-Anwendungen Regressionstests anhand des Quellcodes zu generieren, um vor einem möglichen Refactoring Tests erzeugt zu haben. Diese sollen sicherstellen, dass die Anwendung nach dem Refactoring noch genauso funktioniert wie vorher. Hier gibt es einige interessante Ansätze und auch einige Tools, die diese implementieren. Der Artikel zeigt zwei mögliche Ansätze.

Artikel

Prinzipien zur Entwicklung von unabhängigen Systemen

Prinzipiell unabhängig

Blog-Post

No-Principles Software Architecture

The traditional principles of software architecture often lead to problems. Understanding these challenges is the first step towards eliminating them or even avoiding them right from the start.

Blog-Post

Code Redundancy or Reuse?

Reuse used to be the holy grail of software development. If developers reuse code, they don’t have to write it again. This should increase productivity significantly. In the meantime, however, some things have changed - and even redundant code has advantages. So avoiding redundancy is also just another trade-off.

Blog-Post

Server-sent events in .NET with Akka

Blog-Post

Server-sent Events in .NET mit Akka

Server-sent Events sind eine oftmals unterschätzte Technologie, wenn das Senden von Events benötigt wird. Für viele Sprachen stehen dabei fertige Bibliotheken zur Verfügung. In .NET war so gut wie keine Bibliothek zu finden, die ASP.NET Core unterstützt.

Blog-Post

Was ist ein Domain-driven Design Architektur-Kata?

Architektur-Katas sind ein sehr interaktives Trainingsformat. Sie eignen sich hervorragend, um Domain-driven Design (DDD) zu vermitteln.

Artikel

E-Commerce im Wandel

Zurück in die Zukunft

Blog-Post

OpenID Connect Auth-Proxy

Mit OpenID Connect kann Single Sign-On in einem verteilten System erreicht werden. Ein Auth-Proxy kapselt den Aspekt Authentifizierung in einem eigenständigen Modul. Wir schauen uns an, wie das im Detail umgesetzt werden kann.

Blog-Post

Architecture Governance mit Stereotypen

Architekturregeln mittels Stereotypen und jQAssistant beschreiben und automatisiert überprüfen

Blog-Post

Blockchain Mining: Embarrassingly Parallel?

Blog-Post

Blockchain Mining with Rust

Recently, at one of our yearly hands-on events, we took on the challenge of implementing our own blockchain. One of the core challenges of this is the mining of new blocks. In this blog post, I want to show two different approaches we tried out for this task, using the Rust programming language.

Blog-Post

Multiple Worktrees aus einem lokalen git-Repo.

Ein lokales Git-Repository auf der eigenen Festplatte kann bequem mehrere Worktrees parallel bedienen. Dieses praktische Git-Feature ist relativ unbekannt. Hier stellen wir es vor.

Blog-Post

Hast mal ein paar Euro?

Blog-Post

Understanding decomposed

I think we can all agree that having our codebases more readable and understandable would make our lives much easier. In this post, I’m trying to point out at least a few ideas that influence understanding.