REVIEW - Clean Architecture - A Craftsman's Guide to Software Structure and Design


Title:

Clean Architecture

A Craftsman's Guide to Software Structure and Design

Author:

Robert C. Martin

Publisher:

Pearson Professional (2018)

Pages:

404pp

Reviewer:

Ian Bruntlett

Reviewed:

January 2019

Rating:

★★★☆☆


The backbone of this book is the design principles/guidelines that are organised into the acronym SOLID. They are:

° SRP: The Single Responsibility Principle.

° OCP: The Open-Closed Principle.

° LSP: The Liskov Substitution Principle.

° ISP: The Interface Segregation Principle.

° DIP: The Dependency Inversion Principle.

Overview

This book is split into 7 parts, spanning 35 chapters.

Part 1 is the introduction.

Part 2 covers programming paradigms and takes the position that, with Structured Programming, Object-Oriented Programming and Functional Programming all having been discovered, we have no more paradigms to discover.

Part 3 goes into detail about SOLID design principles and this covers things I am more familiar with.

Part 4 is about design principles for dealing with components, something I am unable to comment on.

Part 5 is all about architecture and will bear reading and re-reading.

Part 6 takes the view that the database, the web, and frameworks are all low-level details which you should isolate yourself from, using abstractions.

Part 7 – the Appendix – is a collection of interesting anecdotes relating situations that reinforces the conclusions of this book.

I do have some alternative SOLID acronyms – wide eyed Software Engineers might think of it as System Of Leveraging Interesting Designs and hard-bitten consultants might think of it as System Of Leveraging Immense Dosh. Other people have discussed SOLID – help from accugeneral prompted me to look at Chris Oldwood’s article ‘KISSing SOLID Goodbye’ in Overload 122 and to watch Kevlin Henney’s ‘SOLID Deconstruction’ presentation and this helped me adopt a less prescriptive approach to SOLID.

Things I gained from this book:

° Better understanding of the SOLID design principles / guidelines.

° Introduction to the Clean Architecture.

Downsides:

° Wedded to component architecture.

° Some of the structured diagrams are a bit too abstract for me – I would have appreciated something in addition – perhaps an explanation and a CRC card or two.

Conclusion

I’m going to have to read this book again, after a suitable period of doing other things. I particularly liked the contributions made by other authors. This is a thought provoking book that discusses the importance of coding, design, and architecture. Well worth reading – repeatedly.


Book cover image courtesy of Open Library.





Your Privacy

By clicking "Accept All Cookies" you agree ACCU can store cookies on your device and disclose information in accordance with our Privacy Policy and Cookie Policy.

By clicking "Share IP Address" you agree ACCU can forward your IP address to third-party sites to enhance the information presented on the site, and that these sites may store cookies on your device.