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
Code Mesh V
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