Funktionale Softwarearchitektur

Wie funktioniert Softwarearchitektur mit Funktionen, unveränderlichen Daten, Kombinatoren?

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öglichkeit in funktionalen Sprachen ist Architektur Code. In der Schulung gibt es Hands-On-Übungen, in denen (in Haskell) programmiert wird. Eine Einführung in Haskell wird als Teil der Schulung gegeben.

NEU: Für In-House Schulungen bieten wir auch an, Scala statt Haskell zu verwenden. Auch hier wird eine Einführung gegeben.

Vorkenntnisse in funktionaler Programmierung sind hilfreich aber nicht notwendig. Wer noch nicht in funktionalen Sprachen programmiert hat oder eine kurze Auffrischung genießen mag, sollte den eintägigen, optionalen Vorkurs besuchen.

iSAQB Advanced Level

Die Schulung ist Teil des Advanced Level der iSAQB-Zertifizierung für Software-Architekten (CPSA-A) und setzt das iSAQB-Modul FUNAR um.

ISAQB-Logo

Wenn Sie dieses Training als Teil des Advanced Level des iSAQB besuchen, können Sie sich danach Credit Points anrechnen lassen (10 Credit Points im Kompetenzbereich Methodik und 20 Credit Points im Kompetenzbereich Technische Kompetenz).

Dozent

Dr. Michael Sperber

Dr. Michael Sperber

Dr. Sperber ist Geschäftsführer der Active Group GmbH, die Individualsoftware ausschließlich mit funktionaler Programmierung entwickelt. Er ist Experte für funktionale Programmierung und wendet sie seit über 25 Jahren in Forschung und industrieller Entwicklung an. Dr. Sperber befasst sich außerdem seit über 30 Jahren mit der Programmierausbildung und hat dazu umfangreich geforscht. Er ist Mitbegründer des Blogs funktionale-programmierung.de und Mitorganisator der Entwicklerkonferenz BOB, sowie Autor mehrerer Bücher und zahlreicher Fachartikel.

Johannes Maier

Johannes Maier

Johannes Maier ist Softwarearchitekt bei der Active Group GmbH in Tübingen. Dort arbeitet er mit funktionalen Progammiersprachen, vorzugsweise Haskell, und nutzt dabei Nix, um komplexe Abhängigkeiten zu bändigen und Continuous Deployment zu erreichen.

Bianca Lutz

Bianca Lutz

Bianca Lutz ist Softwarearchitektin bei der Active Group GmbH und arbeitet von Berlin aus. Sie hat langjährige Erfahrung in der Anwendungsentwicklung, der Anwendung formaler Methoden im Software Engineering.

Termine

13.-16.05.2024, online

  • FUNAR-Schulung inkl. Vorkurs: 2.250,00 €
  • Frühbucherrabatt bis 01.03.2024: 15%


23.–26.09.2024, Berlin

Buchung über Software Architecture Camp. Frühbucherrabatt bis 15. August.

07.-10.10.2024, online

  • FUNAR-Schulung inkl. Vorkurs: 2.250,00 €
  • Frühbucherrabatt bis 1.8.2024: 15%


25.–28.11.2024, Hamburg

  • FUNAR-Schulung inkl. Vorkurs: 2.250,00 €
  • Frühbucherrabatt bis 15.9.2024: 15%


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 erprobte didaktische Methodik der DeinProgramm-Konstruktionsanleitungen.

Agenda

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

Funktionale Software-Architektur (3 Tage)

Grundlagen funktionaler Programmierung

  • Funktionen und Werte
  • Komposition
  • Typen
  • Module

Technologien für funktionale Programmierung

  • funktionale Programmiersprachen und Runtimes
  • statische vs. dynamische Typen
  • Endrekursion
  • Auswertungsstrategien
  • Laufzeitumgebungen
Funktionale Modellierung
  • Kombinatormodelle
  • Algebraische Strukturen
  • Integration mit Domain-Driven Design

Funktionale Makro-Architektur

  • Monaden
  • Events
  • Frontends mit Model-View-Update