Wednesday, October 3, 2018

Book Review - Clean Architecture by Uncle Bob Martin - Must read for Programmers

Hello Guys, today, I am very excited to talk about a new book (Clean Architecture: A Craftsman's Guide to Software Structure and Design) from one of my favorite author of programming books, you guessed it right, Uncle Bob. The same Uncle Bob (aka Robert Martin) who brought you the Clean Code and Clean Coder has been at it again. It's been a long time since I last read an Uncle Bob and somehow I wasn't aware of this book. It comes to me as a surprise yesterday when one of the colleagues mentioned it and I didn't take time to realize that I need to buy and read this book. I just cursed myself that why I didn't know about this book before, it is still new but given I love to read his books, it's just a miss for me.

Anyway, this newest book is called Clean Architecture, and it's going to change how you write and test your programs. As Uncle Bob says, "It doesn't take a huge amount of knowledge and skill to get a program working." But getting it right is hard.

In Clean Architecture book, Uncle Bob shows you how to get your software projects right from your very first decisions, yes, right before you design or code. He reveals the rules and practices that will guide you as you plan and build software. The book is packed with direct, no-nonsense solutions for the real challenges you'll face—the ones that will make or break your projects.

Clean Architecture Book Review - Must read for Programmers

In past, I have read a couple of books (Clean Code and The Clean Coder) and numerous articles by Uncle Bob, but as always I found this one fascinating and well written. One of the best things about Uncle Bob is that he has the ability to make complex things easier and the way he explains things is very interesting.

You won't get bored while reading his book, which is the case with many technical books, even good ones. Another thing which always hooks me with Uncle Bob's book is the cartoon they have at the start of each chapter, they are just amazing. The set the tone of what's coming and encourage you to read the chapter.

In the Clen Architecture, Uncle Bob talks about Design and Architecture, In the very first chapter, he explains the difference between Design and Architecture and why it is important for a software. He then goes on the explain the values provided by the software to their customers.

In the course of this book, you will revisit the same SOLID design principles he has explained his earlier Clean Code book, but this time he goes into little bit more details.

The book is properly structured and divided into six parts:
Part 1 - Introduction
Part 2 - Programming Paradigm
Part 3 - Design Principles
Part 4 - Component Principles
Part 5 - Architecture
Part 6 - Details

The Introduction is very good and gives a nice overview of design and architecture to a naive programmer, but, even experienced programmers can learn a lot from his view. The Programming Paradigm is the part, from where the real action begins.

Since many programmers only know about Object-oriented programming, this will come to them as a surprise. You will learn about both structure and functional programming, along with OOP.

The best part of the book is still the part 3, where he explains the Design Principles, the SOLID design principles. If you are aware of it then it's a good refresher but if you are not aware then its possibly the best resource to learn and master those fundamental design principles.

The cartoon at the start of each design principle will help you to remember when to use those principles in the real world.

SOLID Design principles

The 4th part is from where you will learn about things which drive good architecture and design e.g. high cohesion and low coupling.

This is the word I have been hearing from college days that a good software is the one which has high cohesion and loose coupling but only realize how difficult to achieve that, with no proper guidance. This chapter will give you enough idea about how to achieve that.

The 5th part is about architecture itself, in this part you learn about services and microservices, boundaries between different part of applications, components, and business rules.

This is the best part of the book because it totally focused on the application architecture as the title suggests. You will learn about popular services and microservices architecture and their pros and cons.

Clean Architecture book review

The 6th part is about the essential parts of an enterprise application e.g. database and web. It also contains case studies, which will demonstrate how you can apply the principle you have learned in this book in the real world scenarios.

What I loved about this book

Apart from Uncle Bob's writing skill and cartoons at the start of the chapter, here are a couple of things which I loved about this book:
  1. Uncle bob's definition about Design vs Architecture
  2. Review of design principles which every programmer should know 
  3. Explanation of Service and microservice architecture
  4. Case study, particularly the video sales
  5. Appendix about Architecture Analogy

I am still reading this book, so more items will be added to this list as I digest more, but overall, a lot of things to learn.

What would have made this book even more useful?

It is one of the best books I read in recent times, probably, next to the Elegant objects by Yegor Bugayenko, which I have read a few months ago. The talk about Services and MicroServices architecture is great but It would have even better if Uncle Bob has talked more about event-driven, request-based, and batch processing architectures.

It is still a great book to build you fundamentals about design and architecture and a must read for you if you want to aspire to become a software architect or solution architect.

Clean Architecture by Uncle Bob Martin Book Review

That's all about the Clean Architecture: A Craftsman's Guide to Software Structure and Design, another fantastic contribution to the programming world from Uncle Bob. This book also completes a trilogy of sorts ("The Clean Trilogy", maybe?), as one of the Amazon customer mentioned on the Amazon's book review page.

So should you buy this book? Of course, it's a good buy and I am also going to include this book on my list of must-read books for programmers. So, what are you waiting for? Just go and buy the Clean Architecture, its the money well spent.

Other Programming Articles you may like
10 Reasons to Learn Python in 2018
How to become a DevOps Engineer in 2018
10 Programming languages You can Learn in 2018
10 Tools Every Java Developer Should Know
10 Reasons to Learn Java Programming languages
10 Frameworks Java and Web Developer should learn in 2018
10 Tips to become a better Java Developer in 2018
Top 5 Java Frameworks to Learn in 2018
10 Testing Libraries Every Java Developer Should Know

Thanks for reading this book review so far. If you find the Clean Architecture book useful then please share with your friends and colleagues. If you have any questions or feedback then please drop a note.

Please consider entering subscribing to this blog if you’d like to be notified for every new post, and don’t forget to follow javarevisited on Twitter!

No comments :

Post a Comment