Image for post

Hello Guys, today, I am very excited to talk about another useful software architecture book (Clean Architecture: A Craftsman’s Guide to Software Structure and Design) from one of my favorite author of programming and coding books, you guessed it right, Uncle Bob.

The same Uncle Bob (aka Robert Martin) who brought you the Clean Code and Clean Coder**, **which is admired by programmer and developer of all level of experience and recommended to me by my seniors during early days.

It’s been a long time since I last read an Uncle Bob classic 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.

Image for post

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.

By the way, 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.

Become a Solution Architect: Architecture Course

Are you a developer, or a lead developer, or a solution architect in an IT project team? Would you like to learn how to…

udemy.com

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.

Image for post

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 the 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.

Image for post

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 did I love 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.

Image for post

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. T

The talks about Services and MicroServices architecture are 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.

#software-development #books #programming #coding #software-design

Clean Architecture — A must-read Software Design Book for Developers
1.50 GEEK