Venkat!
Details
The second event of our Autumn session is no other than the world famous Venkat Subramaniam.
In-Person and Live-Stream tickets are available now...
https://ti.to/dublin-java-user-group/2023-java-champion-venkat-subramaniam
19:00 At this event we will choose from one the 90 minute deep-dive talks below.
Refactoring from Imperative to Functional Style
Learning syntax is part of our lives and that comes from practice. The challenge with programming in the functional style is to be able to think in a paradigm that is different from the one we are used to. In this live coding presentation, we will take a look at how to promote such thinking by taking some imperative style code and refactoring to functional style. Along the way, we will discuss the thought process to make the journey a pleasant experience and also explore functions baked into the JDK that make this possible.
Exception Handling in Functional and Reactive Programming
Functional and reactive programming is gaining popularity and use. One hurdle developers face using these approaches is in exception handling. Dealing with exceptions in these styles is confusing in the beginning and is often messy and error prone. In this presentation we will step back and take a closer look at exception handling, about their role in functional and reactive programming, and discuss the dos and don'ts for exception handling. We will learn using concrete examples and live coding to illustrate the problem and the possible solutions.
Deep Dive into Completable Future
Have you looked at the methods of CompletableFuture and wondered how to actually use them? Do the function names appears strange or at least different from what we're used to. Let's take another look so those names become easier to remember and also to make use of.
In this presentation we will take a practical look at CompletableFuture and how to make good use of it, and how to deal with exceptions.
Transforming Data Using the Functional APIs of Java
The power of Java's functional programming goes far beyond lambdas and the filter, map of the Stream API. In this presentation we will look at various data transformations and see how the functional APIs in the JDK can provide concise solutions for these.
We will start with the Stream's API and quickly dive into some newer functions and also the utilities of the Collectors. Along the way you will get a deeper understanding of some of the excellent functions that are hidden in plain sight.
Choose Delegation Over Inheritance, Really?
We all have read good books that tell us to choose delegation over inheritance. Yet, we often choose inheritance? Why is that?
In this presentation we will discuss the reasons, from the OO design point of view when we should choose inheritance and when we should choose delegation. Then we will discuss why we tend to lean towards inheritance. We will then model a problems to use delegation, using Java (plus some libraries), Groovy, and Kotlin and achieve fluent implementations of delegation. We will conclude with good recommendations on when to choose which approach.
