Functional Design

Learn how to benefit from functional programming techniques across your application, in a way that’s highly accessible to the whole team and new hires.

Book a Training

Overview

Although functional programming theory is useful, most day-to-day functional programming does not require any category theory or even any type classes. Most problems can benefit from a domain-specific model, constructed using immutable data types and operators. Such functionally-oriented solutions are simple, composable, type-safe, and testable.

In this course, developers will learn how to write simple functional solutions to everyday business problems, without jargon and without type classes. Developers will learn how to construct type-safe and composable solutions to domain-specific problems, and how the single responsibility principle of object-oriented programming translates into orthogonality. When developers leave, they’ll have newfound ability to directly benefit from functional programming techniques across their whole application, in a way that’s highly accessible to the whole team and new hires.

Are you interested in attending a private training course?

Register for Private Training

Are you interested in attending a public training course?

Register for Public Training

Who Should Attend

Scala developers who would like to apply functional programming to any code base, on any problem, without type classes or jargon.

Prerequisites

Good working knowledge of Scala, including familiarity with immutable data, pattern matching, basic recursion, and algebraic data types. Developers who have attended Functional Scala Foundations and Functional Data Modeling will be well-prepared for this course.

Topics

  • Functional domain modeling
  • The essence of composability
  • Measuring the orthogonality of operators
  • Achieving both minimalism and expressiveness
  • Using types to enforce business constraints
  • Generalized algebraic data types for advanced modeling
  • Principle of least power applied to functional design
  • Design techniques used in the ZIO library and broader ecosystem
  • Functional approaches to internal domain-specific languages
  • Translating between different domain-specific languages
TESTIMONIAL
With Ziverge's tech leadership, Hunters was able to tackle challenges and technologies that in normal cases would be inaccessible for a young startup. Ziverge's vast experience in designing complex data pipelines was an amazing shortcut for us; combined with its holistic approach around training, team building, documentation, etc. Ziverge is a true game-changer.
Uri May
CEO Hunters.ai

Related Courses

A Crash Course in Functional Scala

Learn how functional Scala enables you to write better code, with high productivity and testability.

# fp
24 hours

Functional Data Modeling

Learn how to use functional Scala to construct simple, precise, and flexible models of any business domain.

# fp
24 hours

Functional Design

Learn how to benefit from functional programming techniques across your application, in a way that’s highly accessible to the whole team and new hires.

# fp
24 hours

Book a Training