Blog & Articles

Blog Post

Type checking JSX: A can of props

In this post, I’d like to describe how JSX type checking in TypeScript actually works and the problems you’re going to encounter when implementing custom, non-React JSX components.

Article

Personas

Um eine bestmögliche User Experience (UX) zu erreichen, ist es wichtig, die Grundlagen und Hilfsmittel dieses Bereichs zu kennen. Personas gelten als Hilfsmittel der UX und helfen Entwicklern sowie Designer, Produkte nutzerzentriert zu entwickeln.

Article

Gute UX entsteht im Team

Mit User Story Mapping und Design Studio zusammenarbeiten

Article

Warum Microservices scheitern

Microservices sind der große Architektur-Trend in den letzten Jahren. Mittlerweile stellt sich aber Ernüchterung ein: Auch Microservices-Projekte sind vorm Scheitern nicht sicher. Sich die typischen Gründe für das Scheitern anzuschauen, ermöglicht es, diese Probleme zu umgehen und so erfolgreiche Projekte umzusetzen.

Article

Legacy ist keine Krankheit

Was ist dieses „Legacy“ überhaupt, warum ist es vermutlich ziemlich gut (obwohl das Entwicklungsteam anderes denkt), und warum müssen wir uns drum kümmern? Und was hat das mit Leonardo da Vinci und Mozart zu tun?

Blog Post

The many ways of testing Smart Contracts in Ethereum

Article

Die GraalVM: Javas Sprung in die Gegenwart?

Die Java Virtual Machine (JVM) gibt es jetzt seit über 24 Jahren. Mit den Jahrzehnten wuchs ihre Verbreitung und das SDK bekam immer neue Funktionen. Das alles hat die JVM aber auch groß und träge gemacht. Hoher RAM-Bedarf oder lange Startzeiten passen nicht mehr in die neue FaaS oder Container Welt. Die GraalVM macht da Hoffnung.

Article

Das Service Mesh

Die Stärke einer Microservice-Architektur ist die lose Kopplung der Module. Und gleichzeitig ist es auch ein großer Nachteil, denn in jedem Microservice müssen Funktionen wie Monitoring, Tracing und Circuit Breaking erneut gelöst werden. Ein Service Mesh verspricht, viele der Funktionen in die Infrastruktur zu ziehen. So wird es endlich kinderleicht, Microservices zu entwickeln und auch zu bändigen - oder vielleicht doch nicht?

Blog Post

(De-)Serializing JavaScript Models with Metaprogramming

Article

NewSQL-Datenbanken

NewSQL Datenbanken bieten hohe Konsistenzgarantien und gleichzeitig eine gute Skalierbarkeit. Dieser Artikel stellt drei Cloudangebote und eine Open-Source Datenbank vor.

Blog Post

Sind Ideen eine Ware?

Sie müssen Ihre Ideen verkaufen! Fördert dieses Motto eine gute Innovationskultur? Ich denke nicht.

Article

Stark im Doppelpack

Refactoring mit NuGet und Jenkins

Blog Post

Familiarity - friend or foe

Familiarity has two sides. On one, it is quite beneficial, you know the ways, the tools, the pitfalls and it all enables you to work fast. But at the same time, it can make you blind to mistakes you’re doing or violations of processes or good practices.

Article

The Perversion of Agile Metaphors

Agility is at its core a set of values. Do the typical agile metaphors actually fit the values or do they rather lead to misunderstandings?

Blog Post

How to add Swift functions as polyfills in JavaScriptCore

Article

Vielfältiges Git!

Normalfall im Entwicklungsalltag ist das git-Repository, das ein Remote hat, ein Arbeitsverzeichnis und einen Baum von “Branches” (mit gemeinsamen Stamm master). In den meisten Fällen genügt das auch. Aber die Software selbst kann mehr: Sie hat keine Probleme damit, vom selben lokalen Repository aus mehrere entfernte Repository zu bespielen, mehrere Arbeitsverzeichnisse parallel zu verwalten oder intern einen Wald von nebeneinander stehenden Versionsbäumen. Diese Mehrfachheit ist gelegentlich nützlich. Der Artikel zeigt einige entsprechende Situationen auf und bequeme Wege, mit ihnen umzugehen.

Article

Microservices: Mit Service-Meshes den Überblick behalten

Immer mehr Systeme bestehen aus immer kleineren Komponenten – die sogenannten Microservices. Die Vorteile: Entwickler können dadurch die Entwicklung, das Testing und das Deployment ­eines Systems unabhängig voneinander durchführen. In der Praxis haben solche verteilten Anwendungen auch Nachteile. Wenn einzelne Teile ausfallen oder – schlimmer noch – nur noch teilweise funktionieren, betrifft das oft eben doch das ganze System. Service Meshes können hier Abhilfe schaffen.

Article

The NUMMI Factory — A Parable About Software Development

What We Can Learn from other Industries

Blog Post

Integrating Logback with JLine

Logback is a popular logging library for Java. JLine can be used to create nice shell-like applications. Combining both is not as hard as it looks.

Article

Pragmatisch zum Praxiseinsatz von Machine Learning in der Cloud

Die Anzahl von Publikationen zu Computer Vision, Natural Language Processing (NLP) oder Reinforcement Learning ist heutzutage gewaltig. Dabei widmen sich die meisten ausschließlich dem Training. Doch oft müssen Data Scientists auch beim Betrieb ihrer Modelle mitwirken. Dafür braucht es einen pragmatischen und unaufwändigen Weg.

Article

Hadoop - Taming the Elephant (With a Whale)

Eine Einführung in Hadoop

Article

No Silver Bullets - Except Continuous Delivery?

There are no silver bullets. But continuous delivery promises so many advantages that it could be such a silver bullet. So what is true: Do silver bullets actually exist or is continuous delivery overrated?

Article

Verification of smart contracts

Smart contracts are used to execute code on blockchains. A variety of business cases are now represented with such contracts. Ethereum is a popular platform for this purpose. However, as with all software, the question arises of how to ensure the quality of the code.

Blog Post

Scala Days 2019 in Lausanne

Unser Erfahrungsbericht

Article

Entwicklungs­umgebungen automatisieren

Im ersten Teil dieser zweiteiligen Artikelserie ging es um die Frage, welche Möglichkeiten es gibt das für ein Projekt benötigte Tool Set, wie Compiler, Laufzeitumgebungen oder IDEs von einem Entwicklungsteam effizient gemanagt und installiert werden kann. In diesem zweiten Teil befassen wir uns mit der Bereitstellung von Services wie Datenbanken oder Message Brokern. Diese werden häufig zum Testen von Anwendungen während der Entwicklung benötigt und deshalb ebenfalls allen Mitgliedern eines Entwicklungsteams zur Verfügung stehen und sich unkompliziert einrichten lassen.