Avanscoperta
Domain Modeling Made Functional

Domain Modeling Made Functional

Domain-Driven Design meets Functional Programming

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!

F.A.Q.

Per partecipare sono necessarie conoscenze pregresse?
Durante il corso svilupperemo in F#, ma non è richiesta alcuna esperienza pregressa con questo linguaggio di programmazione.

Cosa devo assolutamente avere per potermi iscrivere a questo corso online?
Se possiedi un computer e un monitor, una rete stabile (almeno 20 Mbps in download e 10 Mbps in upload), cuffie, microfono e videocamera, allora puoi iscriverti al corso senza problemi. Un paio di settimane prima del corso ti invieremo tutte le informazioni sugli strumenti che useremo e come accedervi.
Per la rete, prova a fare uno Speed Test.
Nonostante la modalità online, il corso mantiene il suo approccio interattivo e partecipativo. Per questo motivo, è richiesto che tutti i partecipanti abbiano la telecamera accesa per tutta la durata del workshop per una migliore fruizione e comunicazione.

N.B.

Il corso è confemato.

Info pratiche sul workshop

Lingua: Inglese.
Laptop: Sì, ti servirà il laptop per poter seguire il corso. Controlla le specifiche nella sezione F.A.Q.
Numero massimo di partecipanti: 16.
Strumenti e postazione: il corso si svolgerà online e in diretta, attraverso l’uso di alcuni strumenti digitali. A iscrizione avvenuta, riceverai tutti i dettagli su come accedere al corso e interagire con il docente e gli altri partecipanti, e su come prepararti al meglio.

Vuoi saperne di più sui nostri biglietti?

Biglietti

Under_Cover_LearnerSCONTO 20%

Se ti stai iscrivendo al corso a titolo personale e non hai la Partita IVA, c’è una tariffa speciale per te: uno sconto del 20% sul prezzo corrente del biglietto, che potrai ottenere inserendo il codice Under_Cover_Learner su Eventbrite qui sopra, dove trovi "Enter promo code" (prima di premere il tasto "checkout").

N.B.: Il codice non può essere utilizzato con nessun’altra offerta, ed è valido su tutti i tipi di biglietto.

Testimonials…

Scott knows his topic by heart and has found a great language to convey complex topics in simple words.
You can feel his joy of functional domain modeling and he makes it enticing to explore and simple to start.Marco Heimeshoff

Scott’s book “Domain Modeling Made Functional” was my personal best technical read of 2019.
The workshop was just as good as I could have expected. It gave me the opportunity to put in practice the concepts from the book and to reach a deeper understanding of the advantages brought by a functional approach to domain modeling. I have a good experience in DDD and domain modeling with OOP.
To me, the functional approach is more than just a programming paradigm shift. It brings expressiveness and clarity about the domain to a whole different level, and I am looking forward to experimenting with this approach in the real world and the incredibly efficient conversations with the domain experts that it will trigger.Cédric Pontet

This workshop made my software engineering world a lot simpler and easy to live in.Chandra Koduru

Great overall experience. The main focus is thinking more in a functional way. This will lead you to better develop your domain model. You’ll learn the Functional Programming basics and you’ll briefly see some advanced features of the functional toolbox.Cosimo Matteini

I loved it! It gave me a new toolset and new mindset to approach problems, even in domains I’m not familiar with.Ivan Morgillo

A great way to get learn many concepts both in the Domain-Driven Design and in the Functional Programming contexts.Emanuele Colombo

Scott Wlaschin

Scott Wlaschin è sviluppatore e architetto software nonché autore del libro Domain Modeling Made Functional, pubblicato da Pragmatic Bookshelf.
Scott è anche il creatore del famoso sito fsharpforfunandprofit.com, dedicato al mondo F#.

Chi siamo, in breve :)

Avanscoperta è un ecosistema in espansione fatto di professionisti con una grande passione per l’apprendimento: ci piace imparare cose nuove e scambiare esperienze e idee, esplorando territori finora inesplorati in ambito software, nella sua accezione più ampia possibile.

Selezioniamo con attenzione gli argomenti più rilevanti e i migliori docenti da tutto il mondo, e diamo particolare importanza alle tecniche di insegnamento, preferendo approcci pratici e coinvolgenti.
Unisciti a noi! 🙂

Ti interessa questo corso?

Se hai delle domande specifiche, o vuoi ricevere maggiori informazioni, scrivici. Saremo felici di risponderti!







NEWSLETTER

Vuoi ricevere una volta a settimana i nostri contenuti esclusivi su tecnologia, sviluppo software, business e design?

ISCRIVITI ALLA NEWSLETTER :-)

Iscriviti alla newsletter!