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 start to track my reading habits and share the best stuff here, on Baeldung.

Curating my reading has made it more purposeful and diverse – and I'm hopefully providing value to you as well by allowing the best content of the week to raise to the top.

Here we go…

1. Java and Spring

>> Spring WebApplicationInitializer and ApplicationContextInitializer confusion

Quick and to the point clarification of these 2 concepts – if you're starting out doing Java/Spring web work, have a read of this one.

>> Spring Boot Admin – First official Release!

Very cool little management app for your Spring Boot micro services and applications. It would be even cooler to see that somehow officially integrated in the Spring ecosystem. Josh mentions it in this weeks Spring roundup so it's a possibility 🙂

>> Logical vs physical clock optimistic locking

A deep dive into what the best time tracking system are for an optimistic locking mechanism.

Finally – a slew of interesting webinars – both recordings and upcoming (for the weekend):

And Spring 4.1.1. came out this week with a lot of fixes reported against 4.1.0. – so, if you're already using 4.1.0, it's time for a little upgrade.

2. Technical

>> Microservices and Jars

>> Microservices are not Jars

An interesting albeit simplistic position on the value of microservices – put forward by Uncle Bob – and a nuanced answer to that position. My first reaction reading the original article was hmm, he just found out about the microservice concept a few days ago and he's already writing about it?

But then, as I kept thinking about it, I realized that – the author may or may not be wrong, but putting forward a clear position at all is both valuable and a little gutsy – I like that. What's more – it will definitely open up the subject to dialog, which is a good thing regardless of the original position.

My Weekly Review on Baeldung

3. Musings

>> Help Me to Improve My Writing Style

An important piece of critical thinking on and around the idea of a writing style. Communication style and approach are oh-so important when your goal is to teach and to develop your own voice – which is why I say this article is “important”.

I've personally struggled through different incarnations of my “voice” – and I'm nowhere near done, so this article hits home for me. I also believe in being transparent and doing my thinking in the public light; that's actually why I started Meta Baeldung – to chronicle my experiments on this blog and learn by putting my work out there. It worked out well so far.

>> Surviving Legacy Code With Golden Master and Sampling

Another tactical article on working with legacy code. This isn't your usual “wrap pieces of code in tests before you change them” spiel that I so often read about legacy code, but actual advanced tactics that go far beyond that.

The Code Whisperer is one of those sites that you need to be subscribed to.

>> One year of blogging

“Teaching is my way of learning” – very well put. One of the biggest misconceptions is that you need to be an expert before you start teaching. You really don't; in fact, if you wait until you're an expert, you'll likely be to far removed from what it feels like to be starting out that your teaching simply won't be relatable.

I thoroughly enjoy these meta pieces – for a glimpse behind the scenes into what it means to build your own platform. So few bloggers are transparent enough with that kind of information, and I feel like it's an important part of building a healthy ecosystem.

Also – thanks for the mention Vlad – and best of luck with putting your Hibernate masterclass together. You obviously have a deep understanding in that area, and good courses that can actually accelerate your learning are few and far between in the Java ecosystem.

4. Comics

And of course – a few more of my XKCD favorites:

>> Estimation

>> Exploits of a Mom

>> Compiling

>> Supported Features

5. Pick of the Week

Last week I introduced the “Pick of the Week” section here in my “Weekly Review”. The interesting part is that it's entirely exclusive to my email list subscribers.

So – if you came to this article from my email list, you have the pick already – hope you enjoyed it 🙂 If not – you can of course subscribe to the list to get the next one.

There you go – compared to last weeks behemoth, this one was light and to the point.

Until next week.

Generic bottom

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

Inline Feedbacks
View all comments
Denis Robert
Denis Robert
6 years ago

Microservices are definitely not just jars, and Uncle Bob missed the mark by a mile, not an inch. He uses the term “Independent Deployability”, and completely ignores the “Independent” part. Jars are not independent from one another; in fact, most jars (other than fat jars) are so dependent on one another that they need to be deployed by the dozen to amount to any real functionality. But more importantly, jars do not encapsulate their dependencies, they expose them to the system as a whole. That’s why they are not microservices, EVEN IF THE ONLY PUBLIC ITEMS WERE TO BE INTERFACES… Read more »

Eugen Paraschiv
6 years ago
Reply to  Denis Robert

Hey Denis, I certainly understand your POV – here’s my take on it. First – let’s keep in mind that this is an very early opinion after just discovering the concept of a microservice. And even wrong in some aspects, I raises some interesting questions. As you say – it ignores the practical ways in which jars are used and deployed – since usually jars are indeed very much dependent on each other and they need to be deployed togather. That being said, they don’t have to be – and maybe they shouldn’t be. The fact that most library builders… Read more »

Denis Robert
Denis Robert
6 years ago

If a jar has its own dependencies, then it by definition will bleed those dependencies. Only jars with absolutely no dependencies, and with only interfaces and DTOs made public, can be in any way considered microservices.

Eugen Paraschiv
6 years ago
Reply to  Denis Robert

Agreed, some jars come with their own dependencies – but some don’t. They publish a small surface area and they’re relatively self contained (think Guava, Mockito, JUnit, Hamcrest, etc). So at the end of the day it’s a tool and you can use that tool well or not. My takeaway is that – regardless of microservices and jars, is a very good idea to pay a lot of attention to development of the API and go the microservice route if you know that – for that particular purpose – it makes sense and there are clear advantages from doing that.… Read more »

Comments are closed on this article!