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