Workshop - Pragmatic Functional Programming in Kotlin
Overzicht
Flock. community is organizing a two day workshop focusing on domain model isolation and pragmatic functional programming! Tech stack is Kotlin, Spring Boot, Arrow, Maven. Seats are limited!
💡 The domain model is the most critical aspect of your application. To reason about it clearly and accurately, it should be free of implementation details. That’s why your controllers and adapters should depend on the domain—and not the other way around. To achieve this, you need to map your data classes to your domain, where type class implementations in Kotlin can be particularly helpful.
𝐈𝐬 𝐭𝐡𝐢𝐬 𝐞𝐚𝐬𝐲?
⁉️ Perhaps not, but it is simple.
During the workshop you will learn 𝐭𝐡𝐫𝐞𝐞 𝐬𝐭𝐞𝐩𝐬 𝐭𝐨 𝐞𝐟𝐟𝐞𝐜𝐭𝐢𝐯𝐞𝐥𝐲 𝐢𝐬𝐨𝐥𝐚𝐭𝐞 𝐲𝐨𝐮𝐫 𝐝𝐨𝐦𝐚𝐢𝐧:
1️⃣ 𝐌𝐨𝐝𝐮𝐥𝐚𝐫𝐢𝐳𝐞 𝐲𝐨𝐮𝐫 𝐝𝐨𝐦𝐚𝐢𝐧 𝐥𝐨𝐠𝐢𝐜
Move your domain classes and business logic to a dedicated module free from external dependencies. While other modules can depend on your domain module, they should remain independent, adhering to the principles of hexagonal architecture.
2️⃣ 𝐈𝐝𝐞𝐧𝐭𝐢𝐟𝐲 𝐛𝐫𝐞𝐚𝐤𝐢𝐧𝐠 𝐩𝐨𝐢𝐧𝐭𝐬
Compile your code and observe where issues arise. Typically, repository implementations will face challenges as they no longer have direct access to the business logic. You will learn to resolve this problem, fostering a clean separation of concerns.
3️⃣ 𝐃𝐞𝐜𝐨𝐮𝐩𝐥𝐞 𝐝𝐚𝐭𝐚 𝐦𝐨𝐝𝐞𝐥𝐬
Map your inbound and outbound modules to your domain. It’s crucial to decouple data transfer models from the domain, particularly in the API and SPI modules. Applying hexagonal architecture allows for a clear boundary, preventing the domain model from leaking outside the application, which significantly improves maintainability and testability.
About the teacher
Jerre van Veluw is a software engineer at Flock. He is passionate about application architecture and pragmatic functional programming, which he has implemented for clients such as bol.com, ING, and more recently, the Port of Rotterdam. He's a speaker at conferences and recently spoke at Devoxx Belgium and Kotlin Dev Day.
Why should you attend?
- You're a software engineer working daily in Java / Kotlin codebases
- You're interested in concepts like Domain Driven Design, Functional Programming, Single Responsibility Concern etc.
- You are eager to learn new things
Program
Thursday
09:00 - 09:30 Doors open and registration
09:30 - 09:45 Kick-off and introduction
09:45 - 12:15 Isolate your domain
12:15 - 13:00 Lunch
13:00 - 14:30 Isolate your domain - Continued
14:30 - 16:30 Value classes
16:30 - 17:00 Wrap-up
Friday
09:00 - 09:15 Doors open
09:15 - 12:15 Either Monad - Arrow Library
12:15 - 13:00 Lunch
13:00 - 14:30 Either Monad - Continued
14:30 - 16:30 Api/Spi definitions
16:30 - 17:00 Wrap-up
17:00 Drinks and bites
What do I need to bring?
We will take care of most things. You need to bring/have a laptop with:
- Your favorite IDE (We use IntelliJ)
- A JDK installed (We use Temurin-21 installed with sdkman)
- Docker installed
Goed om te weten
Belangrijkste punten
- 1 dag 7 uren
- Fysiek
- Deuren open om 09:00
Beleid voor refunds
Locatie
Office Flock. community
Lange Viestraat 2B
3511 BK Utrecht Netherlands
Hoe wil je daar komen?
Morning
A deep dive into isolating your domain; a hands-on approach to refactoring a non-isolated application into one that separates the domain integration layers.
Afternoon
Continued deep dive and refactor. Highlights around value classes workshop
Veelgestelde vragen
Georganiseerd door
Flock. community
Volgers
--
Evenementen
--
Georganiseerd door
--