Functional Programming in Spring with Arrow, Lenses and Effects
With the introduction of Kotlin as a supported language, as well as the Arrow functional programming framework, building a functional web application with Spring has never been easier. More importantly, the conversion path from an Object Oriented Spring app to a Functional Programming Spring app can be accomplished with little risk and much reward.
Spring is the most widely used JVM web framework. For many years, the paradigm it has adopted has been object-oriented, stateful and imperative. This talk will show how to take such a codebase and refactor it into a functional programming style. It will show the benefits of this approach with regards to clarity, stability, safety and testability.
Outline/Structure of the Talk
Introduction to Spring 5 and its Functional Aspects
Applying Kotlin and some Spring-Fu
Introducing Arrow and applying it piece by piece
How it all comes together, and where to go from here
- how to apply functional concepts to an existing OO application
- steps to take to incrementally refactor a codebase piece by piece
- what fp concepts are available in Kotlin thanks to the Arrow framework
- how to leverage these concepts to get the most value with the least interruption to the team's performance
Java/Kotlin or other JVM developers who want to introduce FP into their codebases
Prerequisites for Attendees
No pre-reqs. Some familiarity with Spring, Kotlin or Java helpful.