KubeCon Europe is a yearly conference about anything and everything that has to do with Kubernetes. Every year, dozens of...
SpringOne 2020: a junior Java developer’s perspective!Thomas Verhoeven
Hi, I’m Thomas Verhoeven, and I started working for ACA IT-Solutions on the 2nd of March 2020. It’s my first job! As a junior Java developer, I’m currently working on writing an application for loan calculation. I’m still learning a lot about new technologies. Together with my coach, I decided to expand my knowledge to grow as a software developer. Because we use the Spring framework everyday on the project I’m working on, I thought it’d be a nice idea to follow SpringOne 2020, hosted on 2-3 September.
Normally, this is a physical event hosted somewhere in Europe. Due to the COVID-19 pandemic, SpringOne decided to host a completely free virtual event. I was really excited to learn more about things I already worked with, but it was also an opportunity to learn and expand my knowledge about new things in the world of Spring. In this blog post, I’d like to give you recap of SpringOne 2020 and my personal takeaways!
Different tracks for different people
The event started on the 2nd of September. It consisted of 6 tracks:
- beginner-friendly Spring
- intermediate / advanced Spring
- cloud native platforms
- agile leadership
Most of these tracks speak for themselves, but allow me to quickly explain the social track. The event started around 3 p.m. and ended at midnight. As you can imagine, sitting behind your laptop listening to the talks for 9 hours in a row was almost impossible without getting distracted. Therefore, SpringOne created a ‘social track’ for attendees to relax and do fun things between talks. There was a variety of things to do, like yoga, an art studio, a pet show, meditation and, of course, TikTok dance tutorials. 😉 This was a really creative idea, although I tried to follow as many talks as possible about programming and development.
Because I’m relatively new to the ‘real’ world of software development, I took the decision to follow talks within the beginner-friendly Spring track and the intermediate / advanced Spring track. Another ACA team member also attended the event and focused more on the architecture track. Another neat feature of this virtual edition of SpringOne 2020 was the Slack channels, in which attendees could ask questions about the streams. After the stream, presenters would answer those questions in the Slack channel of their talk. Props to SpringOne for using this creative way to allow attendees to raise their questions without being able to raise their hands!
Day 1: Spring, Modern apps, and the need to get to production
So how did the event itself go? I started with a more general talk, in which the presenters talked about all the new things in Java 14 such as text blocks, record classes, virtual threads, and more. It was really nice to see some of the new features in practice. They also talked about the release of the Spring Framework 5.3.
Right after that I followed a talk about the fundamentals of Spring boot. Live examples were given about injection, actuator, lombok, devtools, … Even though I had some knowledge about most of these things, the presenters always managed to come up with something I didn’t know. A pleasant surprise! Watch the talk here.
The talk I found most interesting on the first day, was a talk called “Game of streams: how to tame and get the most from your messing platforms” by Mark Heckler. I found this talk to be so interesting because it’s closely tied to the project I’m working on right now. Within an hour, Mark had created 3 services from scratch: a supplier service, a function service and consumer service. He showed how easy it was in Spring to set up 3 microservices that acted as a messaging platform. He also talked about RabbitMQ and Apache Kafka as message brokers. At the end of the talk, Mark showed that by changing just one property, he could use Kafka instead of RabbitMQ. It really surprised me how easy it was to change your broker without breaking the application. But I was even more (and pleasantly!) surprised to see how experienced and confident of a presenter Mark was. I could really see that he’d been using this technique on a daily basis, and it showed. It’s always a pleasure to see a real expert at work! You can watch Mark’s talk here.
Day 2: Building and scaling developer-centric platforms
The second day, I again started with a general talk on the main stage, given by Juergen Hoeller, co-founder of Spring VMware. He began with a talk about Janus, the roman god of beginnings. Janus had 2 faces, one looking to the future and one looking to the past. He wanted to show that the Spring community looks the same way. It was a very nice comparison, well found! When he looked backwards, he presented a graph showing what the choice of Java versions for production looked like. Java 8 is still dominating, 6 years after release. But looking at the graph we see a noticeable trend towards Java 11, the latest long-term supported Java version. He also went through the evolution of Java architectures. Starting in 2004 with XML configuration on J2EE servers. And now in 2019, there is a more functional configuration and reactive focus. So a lot of things changed during this period. To finish the general talk, they talked about Spring Cloud Data flow and Spring Cloud gateway that is fully optimized for VMware Tanzu, one of the biggest sponsors of the event, this a developer-friendly way to route, better secure and monitor API requests to services.
On day two, there were two talks that really sparked my interest. The first one was about WebMvc.fn. WebMvc.fn is a functional way to define Servlet endpoints in Spring Framework version 5.2. The talk mentioned handler functions and router functions, request predicates, and nested routes. The most interesting was that the presenters showed in realtime the difference between annotation-based MVC and function endpoints. I’m definitely going to work out a proof-of-concept about this myself. Not only is the idea itself really cool, it also looked very useful for the future. Watch the talk here!
The second talk that caught my attention was a talk about RSocket, a fully reactive, message-driven, multi-model, bidirectional communication protocol built with microservices in mind. I’d heard about RSocket before, but I’ve never used it. I chose this talk because the presenter showed live step-by-step instructions on how to get started with RSocket, along with a few tips and tricks. The talk was given by Ben Wilcock, who also showed up a few times in the general track. He was very experienced and made a complicated topic look simple to set up. Kudos!
My conclusion for SpringOne 2020
To sum up SpringOne 2020: I really enjoyed it and came in contact with things I wanted to learn more about. Additionally, I also came in contact with new things I really want to try out in the future.
Every talk was recorded so I’m planning on rewatching some talks that I found interesting to take a few more detailed notes. Since there were multiple talks I wanted to follow at the same time slot but in different tracks, I can now watch the ones that I couldn’t watch live. I’m really hoping that I can follow the event again in 2021 to see how I will have evolved as a Spring developer.
If you love Spring too, I recommend following this event next year! If you have any questions about any of the talks I followed, feel free to contact me on my email address: firstname.lastname@example.org.