With the advent of lambdas in Java 8, functional programming truly has returned to the mainstream, sitting proudly alongside its object-oriented brother. We now have the tools to create applications that use the best of both paradigms, but our knowledge and understanding of the concepts under the hood needs to catch up.
For years, we've relied on design patterns to guide us to solutions that are clean, simple and practical, but many of the classic OO design patterns laid out in the Gang of Four's book are actually workarounds for the lack of functional programming constructs such as lambdas and higher-order functions. With new tools at our disposal, we can simplify the majority of design patterns, using pure functions to reduce the proliferation of classes that are used once and thrown away. By removing the boilerplate surrounding our code, we focus on the most important part: the behaviour.
In this talk, Samir Talwar will lead you through the classic design patterns, as well as some more contemporary object-oriented principles, showing you how functions can drastically simplify your design, leading to code that is cleaner and more concise.
This presentation will cover a few design patterns, but the focus is on Java 8. It's a slideshow, so it's not live coding, but practically all of the slides are entirely code, so you should be comfortable reading it.
YOU MAY ALSO LIKE:
- Microservices from the very start with Russel Winder! (in London on 26th June 2017)
- The JVM as a platform for building smart contracts (in London on 28th June 2017)
- Infiniteconf 2017 - the conference on Big Data and Fast Data (in London on 6th - 7th July 2017)
- Fast Track to RESTful Microservices (in London on 8th - 10th November 2017)
Design Patterns in the 21st Century
Samir Talwar is a developer who’s focused on two things: doing the right things in the right way. He has worked in a number of industries and has always focused on the bleeding edge, diving into new technologies, techniques and methodologies with a fervour. His experience with various tools allows him to select the right one for the job, and combined with his experience with Extreme Programming, he has a knack for spotting simple approaches to complex problems.