/advanced-functional-design

The material for the Advanced Functional Design workshop

Primary LanguageScalaCreative Commons Zero v1.0 UniversalCC0-1.0

Advanced Functional Design

Getting Started

sbt
compile

You can open the project from Visual Studio Code with Metals and it should build without issue.

About Advanced Functional Design

Overview

For several years, John De Goes has been teaching the secrets of functional design, allowing developers to bring real-world functional programming to their business applications, without the jargon and esoterica of type classes and category theory. Yet, some developers are looking to go beyond simple functional domains, and into advanced territory occupied by cutting-edge libraries like ZIO Flow and beyond.

In this course, developers will build upon their knowledge of functional design by looking at a variety of techniques as they build a state-of-the-art rule engine. Type-safe, compositional, and persistable, developers will graduate with a project that demonstrates the very best of and the farthest possible extents of functional design techniques in the Scala programming language.

Who Should Attend

Functional programmers looking to take their functional design techniques to expert level.

Prerequisites

In order to make sense of this course, first attending Introduction to Functional Design is highly recommended.

Topics

  • Hybrid declarative/executable encodings
  • Multi-stage domain-specific languages
  • Recapturing types during deserialization
  • Unique and singleton types
  • Type-level programming for improved type-safety
  • High-performance execution of domain models