47 Degrees joins forces with Xebia read more

Functional domain modeling

In this short course, you will learn how to model your domain data using the tools and concepts that Functional Programming brings to the table.

scala

Overview

Data modeling is not a simple process as it might look. Approaches to code like DDD (domain driven design) are completely based on working consciously over our domain entities to represent the business reliably. In this short course you will learn how to model your domain data using the tools and concepts that Functional Programming brings to the table.

Prerequisites

  • Previous experience with Scala
  • Previous experience with building micro-services-based architectures

What you'll learn

  • The power of the Scala type system for data modeling. Nothing and Unit.
  • Modeling domain entities with algebraic data types (ADTs). Product and sum types.
  • Structural syntax derived at compile time for product types.
  • Union types.
  • Modeling errors in our domain using coproduct types.
  • Modeling domain behaviors (business logic) as pure functions.
  • Modeling domain behaviors (business logic) as ADTs (algebras).
  • Functional data types for representing concerns over over our data.
  • Leveraging immutability within our domain.
  • Using optics to read and modify immutable domain data.
  • Refining our domain types for a more precise representation of the business elements.
  • Removing the need for testing invariants with refined types.
  • Inline classes.
  • Referential transparency and purity across all our domain.
  • Determinism.

Company and Private Group Training

Related courses upcoming in the Academy

Company and Private Group Training

Skills

This Functional domain modeling includes:

  • Maximum Class Size of 15
  • Access to Academy EduTools Platform
  • Access to Course Materials
  • Certificate of Completion
  • Access to a Private Channel with Trainers in the Academy Slack
  • A Q&A session one week post-course
  • A pre-and-post meeting with our trainers

Upcoming Academy Events