Workshop
Pragmatic Functional Programming in Kotlin

WORKSHOP – NOV 26 –ย Buy workshop ticket ยปย 

๐Ÿ’ก 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.

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

 

Trainer – Jerre van Veluw

Flock. Community Software Engineer

Jerre van Veluw is a Software Engineer at Flock. Community. He has worked for clients such as bol.com, ING and DHL where he developed backend web services and UI front-ends.

 

Jerre van Veluw