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:
- LDNUG September 2017 - #ProgNET Special with Richard Campbell (in London on 12th September 2017)
- Progressive .NET 2017 (in London on 13th - 15th September 2017)
- London Unreal Engine Meetup (in London on 20th September 2017)
- Test Driven Development (TDD) Workshop with Damjan Vujnovic (in London on 7th - 8th December 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.