<

Michael Sperber

CEO of Active Group

We do most of our software development using functional programming and I am a co-founder of the leading German-language blog on the subject.

I co-organize the BOB Developer Conference on February 28, 2020 in Berlin.

I'm on the steering committee of ACM SIGPLAN International Workshop on Functional Art, Music, Modelling and Design (FARM).

I'm on the Editorial Board of the Journal of Functional Programming.

Past Activities

Michael Sperber
Code Mesh V
Tutorial/ 06 Nov 2020
13.00 - 16.30

Functional Software Architecture

The last 10 years have seen a boom of functional-programming adoption for sizeable industrial projects. This is despite the fact that precious little has been written about the architecture of large functional programs. Many architectural styles and techniques common in the Enterprise world can’t be applied directly when using functional programming, or require significant changes. On the other hand, the benefits on architecture from using functional programming are significant: Design methodologies like Domain-Driven Design can be adapted to using functional programming, and then extended using combinator models and denotational design. The tutorial gives an overview of design and architecture techniques available to the functional software architect.

 

EXPERTISE

 Basic software development experience

 

COURSE DURATION

3,5 hours

 

TARGET AUDIENCE

Software architects, developers

 

PREREQUISITES

Basic programming skills in a functional language.

 

OBJECTIVES 

  • understand architectural aspects of functional programming
  • know fundamentally functional modelling techniques
  • know where traditional architecture and functional architecture connect

 

 COVERS THE FOLLOWING TOPICS

We'll pick 2-4 of the following topics, based on audience preference:

  • functional architecture overview
  • introduction to Haskell, Clojure, F#, Racket, Elixir, Scala, Erlang
  • controlled effects
  • combinator models
  • embedded DSLs
  • monads for the working programmer
  •  property-based testing
  •  DDD vs. FP
  • "I'll never convince my boss to use this."
  •  Denotational Domain-Driven Design
  •  Programming the Day after Tomorrow: Dependent Types

 

 WHY YOU SHOULD ATTEND THIS COURSE

  • Know functional programming, but are unsure how to do an entire functional application
  • Know DDD and functional programming, would like to connect the two
  • Want to get effects under control