Archiv der Kategorie: Uncategorized

Why TypeScripts never type is super useful

At first glance, the never type  does not sound very useful for everyday coding. But actually, the following property of the type comes in very handy:

[…] The never type is assignable to every type; however, no type is assignable to never (except never itself) […]

With a small hack, this can be used to increase the type safety of a code base with no risk of breaking existing code and without any runtime overhead.


Functional programming + DDD = ❤

Using Domain Driven Design (in short DDD) it is common to follow the principles of hexagonalonion or ports and adapters architecture. This means that your domain logic should be independent from how it is connected to the outside world. For instance you shouldn’t see any messaging or REST specific logic in domain logic.  Even though this sounds easy, in past projects I came across loads of messy code when connecting the outside world (like a REST Endpoint) with the domain. Doing it in a more functional way using functions solves a lot of problems and leads to cleaner code. I want to share this in this blog post.


Troubleshooting karma (node) performance problems

After some months of nothing but backend development I started to work on my customers Angular frontend application again. I noticed that starting a single karma test took way longer than it used to be. A simple test for a pure function in headless chrome took about half a minute, in which the actual test only took some milliseconds. That was really annoying, because in my current refactoring task I have to execute lots of tests very often. Searching, browsing the karma issues and so on didn’t help, so I want to describe, how I found out what has been causing the problems. 


Metriken, Alerts und die Nadel im Heuhaufen

Bei meinem Kunden haben wir einige Schleifen mit Metriken und Alerts hinter uns. Die ersten Metriken und Alerts haben am Anfang dazu geführt, dass die Anwendung nur noch mit hohem manuellen Aufwand betreibbar war, da man quasi den einen wichtigen Alert in dem Haufen von anderen ggf. unwichtigeren Alerts nicht gefunden hat. Die Erfahrung und unsere aktuelle Lösung möchte ich hier gerne weitergeben.


Custom protocol mapper zur Anpassung des Keycloak JWT Tokens

Per Default schreibt Keycloak viele Dinge in den JWT token, wie zum Beispiel den bevorzugten Benutzernamen. Wenn das nicht genug ist, gibt es viele bereits eingebaute so genannte protocol mappers mit denen der JWT token, erzeugt von Keycloak,  noch mehr angepasst werden kann. Manchmal sind die eingebauten protocol mappers nicht genug. In diesem Fall können selbstgeschriebene protocol mapper Keycloak hinzugefügt werden. Ich habe hierfür eine Beispielprojekt bei github erstellt.