Andrew Hunt and David Thomas’ “The Pragmatic Programmer: From Journeyman to Master” is by far one of the most popular books among software developers, yet I wonder just how many software engineers actually read the thing. While that’s certainly not the book that goes into the ins-and-outs of microservices and monoliths, it teaches a fair bit — dare I say everything — to make educated, some might say pragmatic decisions when it comes to building software. The TOC alone is pure gold! Yet 25 years later, the industry still doesn’t seem to have learnt its basic lesson — namely to use the right tool for the right job.
Another big name, one that made his name following just that philosophy, is Martin Fowler. Anyone who is familiar with the concept of continuous refactoring has likely also heard of Martin. He has an entire book on just that, but if you’re lazy or broke, here’s the extremely abridged version: “Always be refactoring. If you touch the code, and you can improve it, improve it, but never optimise early.” There. A book in two sentences. Luckily, he hasn’t just shared his wisdom on refactoring, but many other contemporary software development topics such as architecture, more specifically monoliths and microservices.