Generic Top

I just announced the new Learn Spring course, focused on the fundamentals of Spring 5 and Spring Boot 2:


At the very beginning of 2014 I decided to track my reading habits and share the best stuff here, on Baeldung.

2014 has been quite the year, covering each week with a review. I’ve been doing a lot more reading to make sure I cover and curate stuff that has value and is actually interesting.

Let me know in the comments if you’re finding my reviews interesting and useful.

Here we go…

1. Java and Spring

>> Using Optional Effectively in Java 8

Optional is one of these things that you may not be using to its full potential.

I’m still getting into the habit of leveraging it and writing Java 8 idiomatic code – so a piece like this, going over practical examples of how to use it in the wild, is quite a good read.

>> Thread Magic Tricks: 5 Things You Never Knew You Can Do with Java Threads

A good reminder of what’s available when working with Java threads, if you’ve not done any low level coding in a while.

>> Stream-Powered Collections Functionality in JDK 8

How to use Java 8 stream syntax for a few useful examples. Not an intro to streams, but a good quick read to see how you can leverage the new functionality in your day to day work.

>> Java 9 and Beyond. Oracle’s Brian Goetz and John Rose Glimpse into the Future

Brian Goetz explains why they’re doing primitive specialization instead of reification for generics in Java 10.

>> Building a Custom Jackson Deserializer

A simple but real world scenario of implementing a Jackson deserializer to better interact with a REST API. Good stuff.

Next, a few new Spring releases:

Finally, the webinar recordings that are more than worth watching this week(end):

2. Technical and Musings

>> Why you should pay developers to learn

Investing in the team and helping developers grow in their skill has a large impact on what the team can deliver.

In my experience, it takes some times until a team gels and hits that good rhythm of putting out high quality work at a consistent pace. It rarely happens without this kind of ongoing investment.

>> Is This Problem Worth Solving?

It’s hard to understate the impact that a pragmatic mindset has when developing software.

For years, I thought, or kind of assumed that I had it and I was going into all of those scoping sessions with a good eye towards being pragmatic. Nope. Later on I had the good fortune of working with a team leader that was truly focused on simplicity and I realized how much I wasn’t. He would look at a feature from a default of “We’re not going to need that for V1” whereas for me that would only be an afterthought, if that. Learned a lot since then but hitting that good balance, erring on the side of “not needed” and framing that position intelligently is still tough.

So, personal stories aside, go ahead and read this piece – it has some important takeaways.

>> An example of preparatory refactoring

Why preparatory refactoring is a powerful technique to keep a system easy to work with. If a change is hard, you’re probably not going to do it – so it’s a good idea to make it easy first.

>> Theory lags practice

This is such a critical thing to understand, both as a constant learner as well as a teacher.

3. Comics

And the weekly dose of some Dilbert greats:

>> Financial Advisor

>> The “I’m a perfectionist” line

4. Pick of the Week

Earlier this year I introduced the “Pick of the Week” section here in my “Weekly Review”. If you’re already on my email list – you got the pick already – hope you enjoyed it.

Generic bottom

I just announced the new Learn Spring course, focused on the fundamentals of Spring 5 and Spring Boot 2: