Blog & Articles

Article

React: Lessons Learned

This article describes React from a backend programmers' perspective. It is not meant to be a tutorial, and it also does not present any new, fancy patterns or features. Rather, it is an interpretation of React with focus on shedding light on its functional aspects. Many experienced React developers appreciate the framework for being pragmatic, simple and easy to get work done with. This article unveils some of the theory behind this simplicity and shows how the core ideas behind the framework can be carried over to the lower levels of a Javascript application.

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.

Article

String-Vergleich gegen Timing-Angriffe härten

Sichere Software erstellen

Article

Aus Erfahrung gut

Kubernetes hat sich in den letzten vier Jahren zur Standardlösung für Container-Management entwickelt. Vor allem zustandslose Anwendungen, die lokal keine Daten speichern müssen, sind mit Kubernetes einfach zu betreiben. Datenbanken und andere Komponenten der Persistenzschicht werden jedoch oft weiterhin klassisch betrieben oder als Service bei einem Cloud-Anbieter hinzugebucht. Operatoren bieten unter anderem die Möglichkeit, auch zustandsbehaftete Software verlässlich auf Kubernetes zu betreiben.

Article

Kubeless - FaaS auf Kubernetes

Kubernetes und Serverless sind zwei der bedeutendsten Trends beim Betrieb von Software. Kubeless verspricht sogar, beides zu vereinen, und lohnt daher eine nähere Betrachtung.

Blog Post

Injecting polyfills for missing JavaScript functions into WKWebView

Blog Post

Integral Evolutionary Organizations

Most companies face the major challenge to get as many employees as possible actively involved, that they do not only do service as a small cog in the big gear, but that they contribute actively, creatively with their various skills and abilities. In his book Reinventing Organizations [1] Frederic Laloux presents integral evolutionary forms of organization as a solution. This text presents the core ideas supported also by other sources.

Article

Design- und Entwicklungs­prinzipien für ein besseres Frontend

Moderne Frontends sollen wartbar und zukunftsfreundlich sein, unabhängig vom Gerät oder Browser gut aussehen und performant sein. Es gibt eine Reihe von Design- und Entwicklungsprinzipien, die dabei helfen, diese Ziele besser zu erreichen. Im folgenden Artikel sollen einige Prinzipien vorgestellt werden, die sich in der Praxis als tragfähig erwiesen haben. Dabei treffen wir neben alten Bekannten wie Responsive Web Design und Mobile First auch auf neuere Ansätze wie Atomic Design und Pattern Libraries.

Blog Post

Agile Architekturarbeit

Das Gegenteil von geplant und vorausschauend?

Blog Post

INNOQcon Remote Edition 2020

Why two days of INNOQcon-remote edition have made my original dislike of online conferences vanish, why cyberspace is enriched by spatial audio and what advantages virtual events can still bring - a follow-up report.

Blog Post

Setup für Online Trainings

Schauen wir mal, wie unser Fellow Gernot Starke seinen Arbeitsplatz für Online-Trainings organisiert hat und warum dort so furchtbar viele Apps und Fenster offen sind …

Blog Post

Remote Training, funktioniert das?

Lernen von zu Hause aus

Blog Post

Scraping a Docker Swarm service with Prometheus

Scraping a Docker swarm service from a Prometheus server that is outside the swarm is not as easy as it might look at a first glance. You have to fetch the metrics of all running service instances, but how to identify and access them?

Article

JSX-Komponenten mit Java nutzen

Die Bedeutung von Oberflächen beziehungsweise der Benutzbarkeit von Software im Allgemeinen hat in den letzten Jahren, zurecht, wieder vermehrt an Bedeutung gewonnen. Bei der Entwicklung von Weboberflächen in Microservice-Architekturen besteht hierbei die Herausforderung, teamübergreifend eine durchgehend passende Nutzererfahrung, insbesondere durch ein konsistentes Look & Feel, zu erzeugen. Diese Kolumne stellt einen möglichen Weg vor, um genau dies zu erreichen.

Blog Post

Architektur-Reviews remote durchführen

Blog Post

Cross-platform testing of TypeScript code with Jasmine and Karma

I like TypeScript. Writing code that already underwent basic checks (i.e. typechecking) before it can even touch an execution engine is a big win in my book. In particular, TypeScript is nice because it integrates well into the broader JavaScript ecosystem and comes with batteries (i.e. types) included. Unfortunately, most test runners require extra setup to work with tests written in TypeScript. Some even require staggering amounts of configuration.

Article

Ziele, Erwartungen und Vorerfahrungen

Ein interaktives Software-Produkt ist immer nur so gut, wie es von dessen Nutzern wahrgenommen und erlebt wird. Heutzutage muss ein Software-Produkt für einen Nutzer einen Mehrwert bieten, der die Verwendung der Software rechtfertigt. Die Erwartungen und die darauf basierenden Anforderungen von Nutzern an ein Software-Produkt spielen hierbei eine entscheidende Rolle.

Blog Post

Using Javascript plugins in Go

More than the sum of its parts

Article

Fabric vs. Corda

Während die meisten öffentlichen Kryptowährungen alle ein recht ähnlichen Peer-to-Peer-Ansatz verfolgen, deren Transaktionen sich grob in Bitcoin- oder Ethereum-ähnlich einteilen lassen, gehen die private Blockchains teilweise radikal andere Wege. In diesem Artikel wollen wir die beiden Platzhirsche Hyperledger Fabric und Corda miteinander vergleichen.

Article

Dynamische Proxys mit dem JDK umsetzen

Bei der Entwicklung mit Java verwenden wir zwangsweise einige der im JDK enthaltenen APIs. Das Collections-API mit seinen Listen, Maps und Sets wird beispielsweise in so gut wie jedem Projekt genutzt. Neben solchen bekannten gibt es jedoch auch einige APIs, die vielen, auch nach mehreren Jahren Java-Entwicklung, noch nicht begegnet sind. In diesem Artikel wollen wir uns eine solche unbekanntere Programmierschnittstelle anschauen, nämlich das Dynamic Proxy Class API.

Blog Post

Glücklich ohne Service Mesh

Die Basis für sinnvolle Architekturentscheidungen ist die Auseinandersetzung mit dem Problem und ein guter Überblick über die Optionen.

Article

Effectively Working from Home

For two years, we have been exclusively working from home. In this article, we provide tips on how to become productive working from home through appropriate hardware, software, methods, and communication techniques. And, we show how to stay motivated in the long term.

Blog Post

Remote work

Last week we switched INNOQ to 100% remote work. The reason for this radical (or radical-looking) step was the spread of the novel Corona virus SARS-CoV-2, which needs to be contained. In concrete terms, this means that all our consultants will temporarily work exclusively in the home office.

Article

Requirements Engineering

Requirements the basis of efficient software development

Blog Post

About unit and integration tests

The terms unit test and integration test are typically used as something different, or even opposite. In this blog post I explain why this is misleading and how I prefer to talk about isolation vs. integration instead.