Testen in Elixir mit Beispieldaten

Elixir bietet uns eine einfache Möglichkeit, Testdaten übergreifend zu nutzen. Mit sogenannten Kontexten können wir eine Startbasis an Daten definieren, die unsere Tests komplett oder in Teilen verwenden können. Wir lernen das Konstrukt setup kennen. Neben Beispieldaten können wir auch Funktionsaufrufe mit Seiteneffekten im Setup ausführen, z. B. Löschen von vorherigen Testerzeugnissen auf der Festplatte oder Starten von externen Diensten.

Wer neu in Elixir ist, kann mit Test-ABC mit Elixir eine kurze Einführung in die Elixir-Test-Welt bekommen. Weiterlesen...

Sommer-BOB am 21. August in Berlin: Programm steht!

Sommer-BOB 2019

Dieses Jahr veranstalten wir einmalig eine Sommer-BOB. Sie findet am 21. August 2019 in Berlin im Scandic Hotel Potsdamer Platz statt, gemeinsam mit der International Conference on Functional Programming.

Das Programm steht! Es gibt zwei Tracks, in denen Forscherinnen und Entwickler über neue Ergebnisse und praktische Erfahrungen mit Techniken und Technologien berichten, die das Beste in der Softwareentwicklung repräsentieren.

Ein Track ist besetzt mit hochkarätigen Forscherinnen und Forschern aus der der Szene der funktionalen Programmierung, der andere mit spannenden Berichten über besonders effektive Techniken und Technologien in der Entwicklung, wie immer mit einem Fokus auf funktionaler Programmierung.

Die Registrierung ist eröffnet, es gibt Frühbucher-Rabatte bis zum 18. Juli.

Weiterlesen...

Keine Fehler wegen Null oder Undefined mit Typescript

Jeder Javascript Programmierer ist bestimmt schon mal über den Laufzeitfehler undefined is not a function oder auch Cannot read property ‚length‘ of null gestolpert. Der Fehler tritt immer dann auf, wenn man mit einem Wert etwas machen möchte (z.B. als Funktion aufrufen oder auf die length Property zugreifen), der Wert dann aber undefined oder null ist. Auch Java oder C# Programmier kennen dieses Problem unter dem Name NullPointerException oder NullReferenceException, und in C oder C++ gibt es das Problem natürlich auch, hier stürzt das Programm gleich ab.

Die Idee einer speziellen null-Referenz, die überall anstelle einer „echten“ Referenz verwendet werden kann, geht auf Tony Hoare und ALGOL in den 1960er Jahren zurück. Tony Hoare nannte seine Erfindung in der Retrospektive den „billion dollar mistake“, da die dadurch entstehenden Laufzeitfehler sehr häufig die Ursache von Bugs sind und somit hohe Kosten verursachen.

Interessanterweise haben statisch getypte, funktionale Programmiersprachen diesen „billion dollar mistake“ nicht wiederholt. So gibt es z.B. in Haskell den Typ Maybe, der die Abwesenheit eines Werts explizit im Typsystem repräsentiert.

Aber auch in Sprachen wie Javascript hat man die Notwendigkeit erkannt, statisch erkennen zu wollen, ob Werte null oder undefined sein können. So ist in Typescript, ein statisch getypter Javascript-Dialekt, seit einiger Zeit die strictNullChecks Option verfügbar. Wir werden in diesem Artikel sehen, wie man mit dieser Option Laufzeitfehler vermeiden kann, welche weiteren sinnvollen Optionen es zur Fehlervermeidung gibt, wie man die strictNullChecks Option für eine große Codebasis inkrementell einführen kann und ob man zwischen null und undefined unterscheiden sollte.

Weiterlesen...

Schulungen Funktionale Software-Architektur

Ausnahmsweise erlauben wir uns in diesem Blog etwas Eigenwerbung: Im Juli führen wir offene Schulungen zur funktionalen Software-Architektur in verschiedenen deutschen Städten durch:

Weiterlesen...

Sommer-BOB Spezial am 21. August in Berlin

Sommer-BOB 2019

Gerade erst ist die Winter-BOB vorbei (Nachlese demnächst hier), steht schon die nächste vor der Tür: Dieses Jahr veranstalten wir einmalig eine Sommer-BOB Spezial, und zwar am 21. August 2019 in Berlin, diesmal im Scandic Hotel Potsdamer Platz.

Wie immer geht es bei der BOB um Techniken und Technologien, die das Beste im jeweiligen Bereich repräsentieren, das es für Entwicklerinnen gibt. Jenseits des Mainstreams schlummern oft mächtige Werkzeuge, die Produktivität und Freude an der Softwareentwicklung steigern können, von denen aber viele Entwickler noch zu wenig wissen.

Anlass für die Sommer-BOB ist die International Conference on Functional Programming, die größte Forschungskonferenz zur funktionalen Programmierung, in vom 18.-23. August in Berlin stattfindet, ebenfalls im Scandic. BOB-Teilnehmer können sich am 21.8. auch ICFP-Talks ansehen und umgekehrt.

Weiterlesen...