Georg Dresler

Tackling Complexity With Functional Programming And Kotlin

What if your type system could eliminate entire classes of runtime errors? Learn how functional patterns in Kotlin make illegal states unrepresentable, leading to more robust code.

Tackling Complexity With Functional Programming And Kotlin
#1about 3 minutes

Understanding a complex and unusual feature request

A real-world example of a complex feature request involves an offline form editor that syncs data via JSON embedded in PDF metadata.

#2about 3 minutes

Why traditional try-catch blocks fail for complex errors

Traditional try-catch blocks for error handling either obscure an error's origin or make the code unreadable with excessive boilerplate.

#3about 7 minutes

Using the Either type for robust functional error handling

Replace exceptions with the `Either` sealed class, using `flatMap` to chain successful operations and `fold` to handle the final success or error state.

#4about 4 minutes

Enforcing data validation using private constructors in Kotlin

Use a private constructor combined with a companion object's `invoke` operator to run validation logic upon object creation, preventing invalid states.

#5about 7 minutes

Modeling distinct data states with algebraic data types

Use sealed classes (sum types) to model different states like `Draft` and `Validated`, letting the compiler enforce state-specific logic instead of relying on boolean flags.

#6about 4 minutes

Recap of functional techniques and audience Q&A

A summary of using `Either` for errors, private constructors for validation, and ADTs for state, followed by a Q&A on libraries like Arrow and custom exceptions.

Related jobs
Jobs that call for the skills explored in this talk.

test

Milly
Vienna, Austria

Intermediate

test

Milly
Vienna, Austria

Intermediate

Featured Partners

Related Articles

View all articles
BB
Benedikt Bischof
How we Build The Software of Tomorrow
Welcome to this issue of the WeAreDevelopers Live Talk series. This article recaps an interesting talk by Thomas Dohmke who introduced us to the future of AI – coding.This is how Thomas describes himself:I am the CEO of GitHub and drive the company’s...
How we Build The Software of Tomorrow
DC
Daniel Cranney
The real reason we document our code
The world of software development moves fast. Technology is constantly changing, as are the tools we use with it, and even the role of a programmer is itself constantly in flux. However, some aspects of software engineering are so foundational that w...
The real reason we document our code
CH
Chris Heilmann
All the videos of Halfstack London 2024!
Last month was Halfstack London, a conference about the web, JavaScript and half a dozen other things. We were there to deliver a talk, but also to record all the sessions and we're happy to share them with you. It took a bit as we had to wait for th...
All the videos of Halfstack London 2024!

From learning to earning

Jobs that call for the skills explored in this talk.