Online-Training: Functional Software Architecture

Dates

07.06.2021 - 10.06.2021
09:00 - 05:00 p.m. (CEST)
€ 2,250.00 (plus VAT)
Sign up

Description

How does software architecture work with functions, immutable data, combinators?

The training presents functional software architecture to the participants as an alternative to object-oriented architecture. Compared to OO architecture, functional software architecture relies on immutable data, algebraic abstractions and embedded domain-specific languages. The result is flexible and robust architectures that are less complex than OO and involve fewer hidden dependencies.

In functional languages, architecture is code - due to their increased expressiveness and abstraction capabilities. In the training, participants will work on hands-on exercises (in Haskell).

On the first day of the seminar there will be a compact introduction to functional programming for course participants who have no experience with FP - or a short refresher for those who do. There will be mainly hands-on exercises with practical programming will be done. The special teaching languages and the proven didactic methodology of the "DeinProgram" design recipes will be used.

iSAQB Accredited Training

As preparation for the iSAQB Certified Professional for Software Architecture, Advanced Level (CPSA-A).
The seminar covers the areas "Methodological Competence" as well as "Technical Competence" of the CPSA-Advanced curriculum and is licensed accordingly at the iSAQB. If you are seeking certification, you can earn 10 credit points in the area of "Methodological Competence" and 20 credit points in the area of "Technical Competence" by attending. Information on CPSA certification can be found here.

Lecturer Dr. Michael Sperber is a co-author of the FUNAR curriculum.

Content:

Day 1: Introduction to functional programming

  • Data modeling
  • Design recipes
  • Self-references and recursion
  • Programming with sequences
  • Higher-order programming
  • Built-in data structures
  • Programming with state
  • programming with accumulators
  • property based testing

Day 2-4: Structure of functional software systems

  • Functions and values
  • Composition
  • Types
  • Modules

Technologies for functional programming

  • static types
  • dynamic types
  • tail calls
  • strict and non-strict evaluation
  • runtime environment

Implementation of functional requirements

  • DDD vs. FP
  • combinator models
  • embedded domain-specific languages

Implementation of non-functional requirements

  • CQRS
  • Event Sourcing
  • Parallelization
  • Distribution

Architecture pattern

  • functional data structure
  • monoid
  • functor
  • monad
  • model view update

Prerequisites:

Experience with functional programming is helpful, but not required.

In-house training

You can also book this as an in-house training (company training). In this case, we currently conduct this training remotely (online training). Contact us and arrange an individual appointment!