Readings in 2014

Published on Wednesday, 10 December 2014

Back in 2011 I wrote a post about the books I had read during that year. It soon became one of the most visited entries, and it stayed on top during the time I tracked the activity with analytics. Some friends pushed me to do the same this year and, although my reading pace has suffered since I became a freelancer, here are the books and impressions in 2014.

Design Patterns / Refactoring

I'll start being a bit tricky. I finished reading the book I'm about to mention in the endings of 2013. But it has been so important to me that I've decided to include it in the list anyway. Refactoring to Patterns, by Joshua Kerievsky, was the first book I chose about design patterns. I LOVED it. It is easy to read, contains a huge catalog of patterns, explains both pros and cons of each one and adds suggestions on how and when to implement them. It is still my favourite about the matter. VERY RECOMMENDED

After becoming an addict to patterns, the next book was pretty logical. Refactoring: Improving the Design of Existing Code, by Martin Fowler. Whatever I could say about it, you'd probably know. Probably the best available book about software development, I found the chapter about bad smells specially interesting. INDISPENSABLE

Then somebody recommended Head First Design Patterns. Easy to read, amusing, but superflous sometimes and outdated. It is also heavily focused on Java and I'd say some of the patterns described, like Singleton, have become antipatterns. A dedicated chapter about the wonderfulness of MVC could make sense when the book was first published, but not anymore. SKIPPABLE

After that I started reading the GoF. You know what? It contains the very same patterns described in the Head First publication. I decided to skip the reading very soon, maybe I should have started with this one at the very beginning, I thought I had had enough about patterns anyway. NOT READ, NOT EVALUATED

Unit Testing

The Art of Unit Testing: with Examples in .NET by Roy Osherhove was very disappointing. It contains some interesting ideas in the beginning of the book, but soon it all becomes quite a disaster. Maybe you'll find it interesting if you are a .NET developer, since the book mentions some tricks about the language and frameworks, but I can do nothing else than disagree with many of the ideas described by the author. An example of what I'm talking about is the post I wrote about setter injection. NOT RECOMMENDED

Working Effectively with Unit Tests was far better. I loved the first chapters and I soon started applying some of its suggestions, like the DataBuilders. I didn't like how the author deals with exceptions in tests, and I found some of the tests he describes as clean very obfuscated. Anyway, this is undoubtely a great book. RECOMMENDED

Domain-Driven Design

Everybody in my TimeLine was talking about DDD but my first contact happened a bit later during the SymfonyDay in Barcelona, thanks to a good talk from elsergillo. I was very skeptical in the beginnings, but I wanted to give it a try. So I started reading Implementing Domain Driven Design. To be honest, I couldn't finish the book. I found the chitchat and constant buzzwording very annoying, so I quit in the middle of the book. Moreover, I thought that all the things DDD was describing were already invented. The ubiquitous language, the boundaries, the repositories, all this stuff is ancient and well known.

So I went back to work with that half-a-book in my head and started programming. And can you imagine? It had changed everything! My common decisions about architecture, they had suddenly changed! And it was 100% thanks to the book. Maybe DDD didn't invent anything, but it makes you pay attention to things you probably didn't consider that important before. So yes, the book is worth reading, and I promise to read it to the end during the next year. VERY RECOMMENDED


In the endings of summer I decided to go back to vim. I'd spent the first 4 years of my career using this editor, but I must say I never mastered it (nor do I nowadays). After a few problems with Sublime and following the advices of @vibaiher I decided to make the move and bought Practical Vim. Vim is hard to learn, but this book helps a lot. It contains so much information that it needs more than a single reading, so maybe I will read it again next year. VERY RECOMMENDED

And that's it mates. I wish you a happy new year and useful readings.

Btw, happy birthday, @juanolalla ;)