Clean Architecture

Excellent book every Software Developer should read and learn!

What is Software Architecture? What is GOOD software architecture? Key principles and how to implement them. What should NOT be considered as part of the architecture, and what decisions should be postponed as much as possible?

I prepared a series of mind maps dedicated to “Clean Architecture” book by Uncle Bob (Robert Martin):

Clean Architecture - PART VI - Details

Clean Architecture - PART VI - Details

Translations: RU
The book club of our company has chosen a new wonderful book for reading: Robert Martin - Clean Architecture - a Craftsman’s Guide to Software Structure and Design 👍 The part VI undermines some foundations 😀: Do you know that Database is a “detail”? An unimportant minor low-level non-essential feature that can be neglected in architecture design! Do you know the same about the Web? It is just an unimportant IO device that should also be neglected in architecture design!
Clean Architecture - PART V - Architecture

Clean Architecture - PART V - Architecture

Translations: RU
The book club of our company has chosen a new wonderful book for reading: Robert Martin - Clean Architecture - a Craftsman’s Guide to Software Structure and Design 👍 Fifth part of the book contains A LOT of useful information: What is software architecture? What type of interdependencies can exist? How to draw borderlines between components? What type of borders exist? How to distribute policies by the levels? What are business rules, entities and use cases?
Clean Architecture - PART IV - Component Principles

Clean Architecture - PART IV - Component Principles

Translations: RU
The book club of our company has chosen a new wonderful book for reading: Robert Martin - Clean Architecture - a Craftsman’s Guide to Software Structure and Design Fourth part of the book is about principles of combining components into software systems. This part is more interesting. It contains: Overview of components history: Relocatability, Linkers Three principles of Component Cohesion REP: The Reuse/Release Equivalence Principle CCP: The Common Closure Principle CRP: The Common Reuse Principle Three principles of Components Coupling ADP: The Acyclic Dependencies Principle SDP: The Stable Dependencies Principle SAP: The Stable Abstractions Principle I especially enjoyed this chapter because of presented metrics that could be used to measure(!
Clean Architecture - PART III - Design Principles

Clean Architecture - PART III - Design Principles

Translations: RU
The book club of our company has chosen a new wonderful book for reading: Robert Martin - Clean Architecture - a Craftsman’s Guide to Software Structure and Design 👍 Third part of the book is about SOLID principles Single Responsibility Principle: A module should be responsible to one, and only one, actor. Open-Closed Principle: A software artifact should be open for extension but closed for modification Liskov Substitution Principle: S is a subtype of T if instead of instance of T we can always use an instance of S Interface Segregation Principle: use interfaces to reduce dependency upon changes Dependency Inversion Principle: avoid dependencies on volatile concrete elements I didn’t learn anything new from here (but I am in software engineering for 20+ years already ;).
Clean Architecture - PART II - Starting with the Bricks: Programming Paradigms

Clean Architecture - PART II - Starting with the Bricks: Programming Paradigms

Translations: RU
The book club of our company has chosen a new wonderful book for reading: Robert Martin - Clean Architecture - a Craftsman’s Guide to Software Structure and Design 👍 The book is superficial so far. Here’s an overview of the second part: There are three programming paradigms: Structured programming - is discipline imposed upon direct transfer of control. Object-oriented programming - is discipline imposed upon indirect transfer of control.
Clean Architecture - PART I - Introduction

Clean Architecture - PART I - Introduction

Translations: RU
The book club of our company has chosen a new wonderful book for reading: Robert Martin - Clean Architecture - a Craftsman’s Guide to Software Structure and Design 👍 Here’s an overview of the first part: The goal of software architecture to minimize the human resources required to build and maintain the required system. Two values of software Behaviour (function) - to satisfy stakeholders’ requirements Structure (architecture) - difficulty of making change should be proportional to the scope, not to the “shape” of the change Ease of change is more important!