Blog & Artikel

Blog-Post

Documenting software architecture with arc42

arc42 is a template for architecture communication and documentation. It is a proven, practical and highly pragmatic approach and takes the pain out of documentation.

Blog-Post

Offline with redux

We’ve been writing a web application that supports users being offline without using a service worker. We’d love to share how we’ve done that and what we think are the advantages.

Blog-Post

Wie ich meine Konzentration wiederfand

Artikel

Accessibility – Die Basis für bessere User Experience

Wer sich mit der Barrierefreiheit bzw. Accessibility von Websites und mobilen Anwendungen beschäftigt, stößt früher oder später auf Mythen, die sich in diesem Bereich hartnäckig halten und eine weitere Verbreitung barrierefreier Designs erschweren. Wir greifen fünf dieser häufig verbreiteten Mythen auf und klären auf, warum sie nicht zutreffen.

Blog-Post

Advanced Kustomize features

Kustomize’s strength lies in its simplicity, but now and then we have use-cases that need more flexibility and more dynamic behavior. For some of them, Kustomize offers additional features. But as with everything good, it should be used wisely. Otherwise, we fall into the trap of complexity and lose all the good parts of Kustomize.

Artikel

Direnv: Automatische Umgebungspflege

Artikel

Infrastructure Self-Service with Crossplane

Introducing container technology and Kubernetes to the development and deployment process allows developers to independently manage deployments of their services without needing to interact with the platform team. This is true for applications but not necessarily for external resources like databases which are probably still in the hands of the platform team because the access management and tooling differs. Crossplane could fill this gap towards a full self-service capability.

Artikel

Logging in Java

Logback, Log4j, SLF4J und noch viele mehr. Wer sich mit der automatischen Protokollerstellung, dem Logging, in Java beschäftigt, stolpert direkt über eine ganze Reihe von Bibliotheken, die auf den ersten Blick alle dasselbe tun: Log-Nachrichten ausgeben. In diesem Artikel wollen wir uns deswegen anschauen, wieso es in Java diese Menge an Bibliotheken gibt und worin sich diese auf den zweiten Blick unterscheiden.

Blog-Post

We Are Developers World Congress 2022 in Berlin

Our Experience Report

Artikel

Marktanalyse

Viele Webdienste bieten interessante Datenquellen, halten damit aber hinterm Berg. Wer weiß, wie’s geht, kann jedoch auch undokumentierte Quellen finden und mit Python anzapfen. Im zweiten Teil unserer Inspektion der eigenen Einkaufsdaten erforschen wir die APIs des Supermarktes anhand von Browser- und App-Analysen.

Artikel

Dependently-Typed TypeScript

TypeScript ist eine Programmiersprache mit einigen Besonderheiten: Im Gegensatz zu den allermeisten anderen getypten Programmiersprachen wurde sie als Aufsatz für JavaScript (JS) entwickelt. Dabei hat Microsoft besonderen Wert darauf gelegt, dass sich die Sprache möglichst nahtlos in die bestehenden Ökosysteme (Node.js und Browser) integriert. Das wird dadurch erreicht, dass die TypeScript-Syntax „bloß” die Typen zu JavaScript hinzufügt und die Kompilierung aus dem Entfernen der Typannotationen besteht. Damit hat sich TypeScript zum de-facto Standard entwickelt, wenn es darum geht, typsichere Anwendungen auf JS-Basis zu bauen.

Artikel

Ich, Du und Conway’s Law

Soziotechnische Welten – Teil 5

Artikel

Autonomie und Entscheidungen

In der letzten Kolumne wurde gezeigt, warum echte Autonomie in Organisationen nur sehr eingeschränkt existiert. Diesmal soll der Umgang von Organisationen mit der Notwendigkeit von Autonomie im Fokus stehen.

Artikel

Taproot

Mehr Privatsphäre, weniger Speicherbedarf und bessere Abwicklung komplexer Skripte soll das Taproot-Update dem Bitcoin bescheren. Ein Blick unter die Haube.

Artikel

cards42 English edition

The activity cards for software architects

Artikel

Gemischtdatenladen

Genau wie das persönliche Surfverhalten sind die Einkaufsgewohnheiten eines Menschen sehr aufschlussreich – wenn man es schafft, die unhandlichen Daten zu analysieren. Wer so einen Datenschatz im Selbstversuch auswertet, bekommt Einblicke ins eigene Einkaufsverhalten, Erfahrung in der Analyse von Daten und obendrein ein unterhaltsames Programmierprojekt.

Blog-Post

Rich code documentation with Jekyll

Static site generation is a perfect fit for publishing documentation. In a recent project, we chose to use a combination of Jekyll and NGINX to build and host the documentation. In this post, I show how to process and include other types of assets.

Blog-Post

Code knows no gender

Der INNOQ Girls’Day 2022

Blog-Post

Customer-specific documentation with Jekyll

Static site generation is a perfect fit for publishing documentation. In a recent project, we chose to use Jekyll for rendering our content. As a special requirement, we had to build different „flavours” for different customers.

Artikel

Data Mesh: Entwicklungsteams heben Datenschätze

Der dezentrale Datenarchitekturansatz soll Entwicklerinnen und Entwickler in die Lage versetzen, selbstständig domänenübergreifende Datenanalysen durchzuführen.

Blog-Post

Was macht ein Trainee bei INNOQ?

Über meine Zeit als Trainee bei INNOQ

Artikel

Module – Microservices – Monolithen

Microservices sollten alle Architekturprobleme lösen. Wenig überraschend kam es anders. Jetzt sollen die Monolithen, die wir schon seit Jahrzehnten entwickeln, wieder die Lösung sein. Bei dieser Diskussion gerät eine Grundlage für die Entwicklung von komplexen Softwaresystemen in Vergessenheit: Modularisierung, die viel wichtiger als die Frage nach Monolithen oder Microservices ist.

Artikel

Continuous Deployment mit GitOps

GitOps ermöglicht einen entwicklungszentrierten Betrieb von Anwendungen und deren benötigter Infrastruktur durch die Verwendung von Tools, mit denen Entwicklungsteams bereits vertraut sind und einem Operator, der in der Zielumgebung lebt.

Artikel

DNS und LDAP mittels JNDI abfragen

Was genau ist eigentlich JNDI?

Blog-Post

Managing Kubernetes Resources with Kustomize

Helm is the de-facto standard for managing groups of Kubernetes resources that belong to an application as a package. It comes with its own ecosystem to build, configure and distribute these packages. In some cases, this is an appropriate approach but sometimes we just want to manage our resources as yaml files and need a simple way to slightly modify the resources for different environments. In this article we will have a look at how Kustomize can help us with this.