Rapid Refactoring of Old Java Code
GOTO Amsterdam 2018

Rapid Refactoring of Old Java Code

Monday Jun 18
09:00 –
Mendes Da Costa

It is the year 2018. Heinz Kabutz is teaching a Java patterns course. As is his custom, he asks what version each student is using. As we go around the room, most are on Java 8. No one on Java 9 or 10. But two pour souls are still hacking Java 5. How can this be? In 2018? We never asked the reason, but most likely a library they depend on is holding them back.

With every Java version, we get shiny new features. These are not only there to be cool, but to make us more productive. When we ask programmers what version they are on, even today a lot are programming in Java 7. And those that are on Java 8 are often not taking advantage of the power that the new Java Streams API offers.

But that's not all. We are currently on Java 10, with Java 11 scheduled for September. The increments are shorter, with less features added per new version. There are many reasons to move code over to Java 10. In most cases, your projects should compile and run with few changes. Only if you have been naughty will the compiler complain. We do need to test every class, but that is true whenever we move to a new JVM release.

In this one-day workshop, we will refactor an largish e-commerce application. 370k LOC and 1200 classes. The first refactorings are to bring our code up to Java 7. We then spend the bulk of our time moving our collection manipulating code to Java 8 Streams. Finally we will refactor code to Java 9 and 10 to take advantage of the new features.

The workshop is based on our "Refactoring to Java 8 Streams and Lambdas Workshop" https://javaspecialists.teachable.com/p/refactoring2j8. All students get free life-time access to the self-study material worth $240, for later revision.

This workshop is very hands-on, so please bring along your laptop with IntelliJ IDEA 2018.1.4 and JDK 10. For IDEA you can use either the Community or the Ultimate editions.