Sooner or later, all developers have to deal with data validation: reading input from the user, checking it, and reporting errors back to the UI. For such a ubiquitous task, validation is surprisingly subtle and complex. Fortunately it also serves as an excellent demonstration of using a functional approach to library design.

In this talk, aimed at beginner-to-intermediate Scala developers, Dave will build a simple, powerful, composable data validation library from the ground up, explaining at each stage the design choices made and the benefits gained from the Scala programming language.

The talk will cover such topics as:

  • How do we model errors and warnings?
  • How do we bind validation to our data and the user interface?
  • How do we make validation modular and composable?
  • How do we deal with cross-cutting concerns such as async and dependency injection.