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:

Wir werden oft gefragt, wie man funktionale Programmierung lernen kann, wenn man darin noch keine Erfahrung hat. Wir (die Active Group GmbH) bieten immer mal wieder Schulungen für Kunden mit Einführungen in die funktionale Programmierung an.

Im Juli diesen Jahres bieten wir nun zum ersten Mal offene Schulungen an, in denen es um „funktionale Software-Architektur“ geht, also die besonderen Strukturierungs- und Modellierungstechniken in der funktionalen Programmierung. Wer noch keine Kenntnisse in funktionaler Programmierung hat oder diese auffrischen möchte, kann jeweils einen eintägigen Vorkurs besuchen.

Wer dieses Training als Teil des Advanced Level des iSAQB („International Software Architecture Board“) besucht, kann sich danach Credit Points anrechnen lassen (10 Credit Points im Kompetenzbereich Methodik und 20 Credit Points im Kompetenzbereich Technische Kompetenz).

Die Schulung präsentiert den Teilnehmern funktionale Softwarearchitektur als Alternative zu objektorientierter Architektur. Im Vergleich zu OO-Architektur setzt die funktionale Softwarearchitektur auf unveränderliche Daten, algebraische Abstraktionen und eingebettete domänenspezifische Sprachen. Das Resultat sind flexible und robuste Architekturen, die gegenüber OO weniger komplex sind und weniger versteckte Abhängigkeiten mit sich bringen.

Aufgrund der erhöhten Ausdruckskraft und Abstraktionsmöglichkeiten in funktionalen Sprachen werden dort keine externen Architekturnotationen benötigt - Architektur ist Code. In der Schulung gibt es Hands-On-Übungen, in denen (in Haskell) programmiert wird.

Vorkenntnisse in funktionaler Programmierung sind hilfreich aber nicht notwendig. Wer noch nicht in funktionalen Sprachen programmiert hat, sollte den Vorkurs besuchen. Eine Einführung in Haskell wird als Teil der Schulung gegeben.

Wir freuen uns, wenn Sie kommen!

Dozenten

Durchführen werden die Schulungen jeweils Michael Sperber und Nicole Rauch, die auch das Curriculum für den iSAQB geschrieben haben.

Inhalt

Vorkurs „Einführung in die funktionale Programmierung“ (1 Tag)

Der Vorkurs ist eine kompakte Einführung in die funktionale Programmierung für Schulungsteilnehmer, die damit noch keine Erfahrung haben oder eine kurze Auffrischung genießen wollen. Im Vorkurs gibt es Hands-On-Übungen, in denen programmiert wird. Der Vorkurs benutzt die spezielle Lehrsprachen und die die erprobte didaktische Methodik der DeinProgramm-Konstruktionsanleitungen.

Funktionale Software-Architektur (3 Tage)

Agenda

  • Datenmodellierung
  • Konstruktionsanleitungen
  • Selbstreferenzen und Rekursion
  • Programmieren mit Folgen
  • Higher-Order-Programmierung
  • eingebaute Datenstrukturen
  • Programmieren mit Zustand
  • Programmieren mit Akkumulatoren
  • eigenschaftsbasiertes Testen

Funktionale Software-Architektur (3 Tage)

Struktur funktionaler Software-Systeme

  • Funktionen und Werte
  • Komposition
  • Typen
  • Module

Technologien für funktionale Programmierung

  • statische Typen
  • dynamische Typen
  • Endrekursion
  • strikte bzw. nicht-strikte Auswertung
  • Laufzeitumgebung

Umsetzung von funktionalen Anforderungen

  • DDD vs. FP
  • Kombinatormodelle
  • eingebettete domänenspezifische Sprachen

Umsetzung von nicht-funktionalen Anforderungen

  • CQRS
  • Event Sourcing
  • Parallelisierung
  • Verteilung

Architekturmuster

  • funktionale Datenstruktur
  • Monoid
  • Funktor
  • Monade
  • Model-View-Update

Praxisbeispiel