Functional Programming and Domain-Driven Design might not seem to be a good match, but in fact functional programming can be an excellent approach to designing decoupled, reusable systems with a rich domain model. This workshop will show you why.
This is a hands-on workshop by Scott Wlaschin, author of the book “Domain Modeling Made Functional”, and it’s designed for beginners in functional programming.
You’ll do lots of domain modeling exercises starting with some simple models and then enhancing them with constraints, state machines, error handling, commands and events, and so on.
Target Audience
This workshop is aimed at software developers and it will be especially useful if you are learning functional programming – all concepts used in the workshop will be explained.
Previous development experience is recommended.
No prior knowledge of functional programming required.
Topics
- Introduction to functional programming
- Functions and types
- Composition as the fundamental principle
- Overview of DDD principles
- The importance of bounded contexts
- Persistence ignorance
- Onion/Hexagonal architecture and how this works with functional programming
- Modeling requirements with algebraic types
- Records, choices, and functions
- Modeling constraints
- Modeling states
- Programming a workflow
- Keeping IO at the edges
- Handling domain errors
- Composing complex functions
- Evolving the domain
- Dealing with changes in requirements
Learning Objectives
By the end of the workshop, you’ll know how to build working solutions with rich domain models, using only functional programming techniques.
Join this workshop by Scott Wlaschin and learn:
- The concepts of functional programming
- How to represent the nouns and verbs of a domain using types and functions
- How to decouple the pure domain logic from the outside world
- How to ensure that constraints and business rules are captured in the design
- How to represent state transitions in the domain model
- How to build a business workflow from smaller components
- How to handle errors as part of the domain.
Online Workshop – How does it work
The workshop will happen online and in live streaming: the trainer and all other participants will be in a video conference. You’ll be interacting and working together in real-time thanks to a variety of tools you’ll have at your disposal.
The workshop will keep its highly interactive and hands-on spirit despite being online.
This is why we require that all participants keep their webcam on for the whole duration of the workshop: this will enhance the quality of the communication and of the workshop as a whole.
You won’t be sitting at your desk watching slides and videos, and you’ll be engaged in real-time activities for the majority of the time… as if we were in a real classroom!