r3dst0rm

Existential Types in TypeScript

Aus Haskell kennen wir die sogenannten ‘Existential Types’. TypeScript bietet leider nicht von Haus aus, diese Funktionalität an. Demnach gibt es immer wieder Code wie diesen, der so nicht funktioniert: Der Code soll beim zweiten Array Element einen Fehler erzeugen, das passiert aber nicht, da any erlaubt ist und der TypeScript Compiler aktuell nicht weiß, …

Existential Types in TypeScript Weiterlesen »

Checksumme einer Datei ermitteln [macOS]

Wenn Dateien aus dem Internet heruntergeladen werden, empfiehlt es sich, eine Checksummenprüfung durchzuführen. Hier möchte ich euch zeigen, wie dies unter macOS erfolgt. Solltet ihr einen Windows PC besitzen, könnt ihr zu diesem Blog-Eintrag springen: Checksumme einer Datei ermitteln [Windows] In diesem Beispiel möchten wir die SHA-256 Checksumme einer beliebigen Datei berechnen lassen. Öffnet ein …

Checksumme einer Datei ermitteln [macOS] Weiterlesen »

Die Architektur “einfrieren”

Mittels ArchUnit lässt sich die Architektur in einem Java oder C# Projekt genau spezifizieren und entsprechend erzwingen. Ist dieses Tooling nicht von Anfang an im Projekt eingebunden, können sich schnell technische Schulden häufen, welche es gilt abzuarbeiten. Es gibt aber Dinge, welche sich nicht in innerhalb von ein paar Minuten oder einem dafür vorgesehen Sprint …

Die Architektur “einfrieren” Weiterlesen »

Wie wertvoll sind Snapshot-Tests?

Die meisten Frontend-Entwickler kennen Snapshot-Tests aus dem Test-Framework ‘Jest’. Diese Tests versprechen laut offizieller Webseite folgendes Snapshot tests are a very useful tool whenever you want to make sure your UI does not change unexpectedly. https://jestjs.io/docs/snapshot-testing, aufgerufen am 29.12.2021 Wollen wir uns einmal kurz die Frage stellen, was ist an diesem Versprechen dran und wie …

Wie wertvoll sind Snapshot-Tests? Weiterlesen »

Type | Treat (Type or Treat) – Tag 5/5

Die Challenge neigt sich dem Ende. Auch am letzen Tag bekommen wir nochmals eine tolle Challenge. Der erste Teil der Challenge ist es, die Schema Namen entsprechend aus der Konstante zu generieren: Im nächsten Schritt, soll die Object.keys Funktion so angepasst werden, dass die ‘Scheme Items’ zurück gegeben werden. Ich habe hier bewusst auf einen …

Type | Treat (Type or Treat) – Tag 5/5 Weiterlesen »

Type | Treat (Type or Treat) – Tag 4/5

Auch am vierten Tag, gibt es wieder zwei coole Challenges. Werfen wir einen Blick auf die Ausgangssituation, die ‘getBowl’ Funktion verliert den Typen und wir müssen einen Compiler-Fehler erzeugen. Im zweiten Teil der Challenge, müssen wir die Funktion ‘fillBowls’ so erweitern, dass die Typen ein String Literal ergeben anstelle eines ‘string;’ Die Funktion ‘getBowl’ kann …

Type | Treat (Type or Treat) – Tag 4/5 Weiterlesen »

Type | Treat (Type or Treat) – Tag 3/5

Auch am dritten Tag gibt es wieder zwei Challenges (Beginner und Intermediate). Zunächst blicken wir wie die Tage zuvor auf die Beginner Challenge. In dieser war es wichtig, das Konzept der String Literals zu kennen und anwenden zu können. Demnach ist die Aufgabe wie folgendermaßen lösbar: Intermediate Die Intermediate Challenge hatte es jedoch etwas in …

Type | Treat (Type or Treat) – Tag 3/5 Weiterlesen »