I just announced the new Spring Boot 2 material, coming in REST With Spring:
At the very beginning of last year, I decided to track my reading habits and share the best stuff here, on Baeldung. Haven’t missed a review since.
Here we go…
1. Spring and Java
>> Displaying progress of Spring application startup in web browser [nurkiewicz.com]
Showing visual progress during the bootstrap process of a Spring app.
There is cool, and then there is cool. And this is just plain cool. Play the video at the end to see this thing in action.
The first piece in a promising new series to follow – focused on building a Spring Data REST app and a front end for it.
>> Naming Optional query methods [joda.org]
More practical advice for using Optional – this time as a return type for query methods.
>> Java EE 8 MVC: Getting started with Ozark [mscharhag.com]
The first of an interesting series, exploring the upcoming MVC framework out of the next Java EE release.
Also worth reading:
>> Spring boot static web resource handling for Single Page Applications [java-allandsundry.com]
>> A Post-Apocalyptic sun.misc.Unsafe World [infoq.com]
- >> Dependency injection: syntax sugar over function composition [nurkiewicz.com]
>> JShell, the Java 9 REPL – What does it do? [jaxenter.com]
Time to upgrade:
>> Spring Data Release Train Gosling Goes GA [spring.io]
>> Spring Framework 4.2.1 Available Now [spring.io]
>> Spring Web Flow 2.4.2 released [spring.io]
>> Spring LDAP 2.0.4 Released [spring.io]
>> Apache Tomcat 8.0.26 available [mail-archives.apache.org]
>> Revisiting webapp performance on HTTP/2 [advancedweb.hu]
Very cool look into the speed improvements in HTTP/2, along with hard-numbers for the various optimization techniques.
Crazy how much of a difference there is here – some really nice numbers.
>> Does each microservice really need its own database? [plainoldobjects.com]
This piece discusses some quite important questions touching on CQRS, Event Sourcing and focusing on the oh-so useful Polyglot Persistence aspects of that architecture.
>> Introducing Brutal Coding Constraints [code-cop.org]
Coding with the full set of typical constraints for this kind of session – this must have been a fun day.
Here’s another one to try out if you’re feeling brave – no mouse. Get your mouse and put it in your bag. Really.
I did that a few years back and I learned more keyboard shortcuts (I now use daily) over that weekend than I did for a whole year with the mouse.
>> The Unit of Work and Transactions In Domain Driven Design [sapiensworks.com]
As I’m going deeper into DDD and Event Sourcing myself, I really enjoy these dives into specific aspects of the architecture.
Hmm – this takes be back a few years, cursing the heavens in the middle of a highly annoying data migration. Good read.
Also worth reading:
>> New – Resource-Oriented Bidding for EC2 Spot Instances [aws.amazon.com]
>> An In-Depth Look At CQRS [sapiensworks.com]
Solid intro to CQRS and the CQS pattern, while at the same time looking forward towards Event Sourcing.
>> Team Efficiency is Irrelevant [benjiweber.co.uk]
An interesting read about the 80-20 of value in building software, and the idea that maybe, just maybe – this entire track of measuring performance for knowledge workers is more complex than other disciplines.
>> Surviving Software Heroes [daedtech.com]
Solid advice on how to approach the hard, hard problem of improving the team you’re part of – or lead.
Also worth reading:
- >> Empowering Testers [code-cop.org]
>> Service Discovery, The Easy Way [bizcoder.com]
>> Salary Negotiation without Bridge Burning [daedtech.com]
Here are my favorite comics of the week:
>> The Laser Pointer [theoatmeal.com]
>> How to pet a kitty [theoatmeal.com]
>> How we should have been tough in our senior year of high school [theoatmeal.com]
5. 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.
If not – you can share the review and unlock it right here:
A good reference for putting together a Jenkins pipeline: