Clean Architecture
This book is part of a series by Robert C. Martin. It covers the principles and practices of how we can structure our code to be clean and maintainable. A good system should minimize effort and maximize productivity for the team.
The book covers the design principles and how to apply them to components of a system. They include the Single Responsibility Principle, Open-Closed Principle, Liskov Substitution Principle, Interface Segregation Principle, Dependency Inversion Principle, and the Dependency Rule. The author also covered the SOLID principles and how they can be applied to design a system.
The author also spends a section of the book covering software components and how they can be used to structure a system. They are used to ensure component cohesion in the system - Reuse/Release Equivalence Principle, Common Closure Principle, and the Common Reuse Principle. The author also covered the Acyclic Dependencies Principle and the Stable Dependencies Principle which are used to ensure component coupling in the system.
My favourite was The Missing Chapter by Simon Brown which compares the decisions and tradeoffs made. It was interesting to see how the different architectures can be applied to the same problem.
Comments