Sunday, April 12, 2020

Clean Architecture by Robert C. Martin - Book Review - A Must Read Book to Become Software Architect

Hello Guys, today, I am very excited to talk about a nice 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 the 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 the 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 that always hooks me with Uncle Bob's book is the cartoons 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.

Btw, if you are here because you want to become a solution architect or software architect in your career then I also recommend you to check out How to become an outstanding solution architect course by Mark Farraghar on Udemy,  an outstanding course to learn all the soft and hard skills you need to take your software architecture skills to next level.



What will you learn by reading Clean Architecture Book?

In the Clean Architecture, Uncle Bob talks about the 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.

You will revisit the same SOLID design principles he has explained his earlier Clean Code book, but this time he goes into a 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, 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 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.

Btw, if you are serious about learning SOLID design principles and how it helps you to write better code then I also recommend you check out SOLID Principles: Introducing Software Architecture and Design Course on Udemy. It nicely complements this book with some well-designed code.

SOLID Design principles

The 4th part is from where you will learn about things that drive good Software architecture and design like high cohesion and low coupling.

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

The 5th part is about architecture itself, in this part you learn about services and microservices, boundaries between different parts 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 Microservice Architecture and their pros and cons.

Clean Architecture book review



The 6th part is about the essential parts of an enterprise application like a 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 of 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
Overall this is a great book to anyone who wants to learn the basics of Software design and architecture and how it impacts on overall delivery and performance of products. There are case studies and several real-world examples that can help you to learn the art of choosing the right software architecture for your product.

For example, Microservice architecture is better suited for Cloud-native development and deployments due to its small size and distributed nature. If you want to learn more about Microservice architecture, particularly in Java,  I suggest you check out this list of best Microservices Courses for Java developers.





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 your 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  Code Trilogy", maybe?), as one of the Amazon customer mentioned on Amazon's book review page.


Other Programming Articles you may like
The 2020 Java Developer RoadMap
10 Reasons to Learn Python in 2020
My favorite courses to learn Software Architecture
How to become a DevOps Engineer in 2020
10 Programming languages You can Learn in 2020
10 Tools Every Java Developer Should Know
10 Reasons to Learn Java Programming languages
10 Frameworks Java and Web Developer should learn
10 Tips to become a better Java Developer
Top 5 Java Frameworks to Learn in 2020
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 it with your friends and colleagues. If you have any questions or feedback then please drop a note.

P. S. - 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.

No comments :

Post a Comment