
Книга состоит из 7 частей, каждая из которых, в свою очередь, состоит из нескольких глав (от 5 до 10). Давайте кратко разберем разделы.
Введение
Ну здесь все обычно и стандартно. Что такое чистая архитектура и зачем она нужна. Информация представлена в виде различных графиков, например, рост численности сотрудников за определенный период, их продуктивность (которая, как вы понимаете, не росла, ибо речь идет о том, что плохая архитектура способна сильно убить и затормозить проект).
Начальные основы: парадигмы программирования
Раздел начинается с краткой истории программирования со времен Алана Тьюринга и первых языков. Описывается структурное программирование, ООП, функциональное программирование. Пару слов сказано о тестировании. Есть примеры кода — они на C.
Принципы дизайна
Здесь уже идет упоминание о паттерне, а скорее даже о правиле SOLID. В принципе, это все. 5 отдельных глав, каждая из которых рассматривает один принцип.
Принципы организации компонентов
Раздел включает разбор понятия компонента. Под компонентом можно также понимать модули и прочие независимые куски кода. Также разобраны такие темы, как связность и сочетаемость компонентов. Уделяется внимание абстракциям, проектированию сверху вниз и снизу вверх. Подняты проблемы циклической зависимости компонентов.
Архитектура
Здесь уже начинается что-то более интересное и практическое. Хотя начало раздела все равно больше стоит отнести к сугубо теоретическому, ибо здесь речь идет о стадиях (фазах) разработки ПО. Также уже в самом начале автор затрагивает такую важную тему, как разделение уровней кода, которые далее подробно раскрываются в последующих главах данного раздела. Одно из самых сложных, по мнению автора, в разделении кода — это определение границ (между компонентами), с чем сложно не согласиться. Описываются пару примеров и реальных историй. Также рассматривается тема монолитов. Наконец, после перечисления многих подводных камней, автор подходит к теме чистой архитектуры. В его понимании чистая архитектура — это слоеная, луковая архитектура, которая берет свое начало от правил бизнес-логики и заканчивается последним уровнем в виде систем ввода-вывода и различных интерфейсов. Кратко обсуждается место и роль баз данных в такой архитектуре и других паттернов, таких как контроллеры, модели и прочие, в чистой архитектуре.
Детали
Именно так звучит название одного из последних разделов. Здесь более детально уделяется внимание роли базы данных в проекте и веб-интерфейсам. Говорится о том, что фреймворк — это всего лишь инструмент, и не стоит строго привязываться к рекомендуемой архитектуре того или иного фреймворка. Завершается книга приложением, в котором рассказывается, какими раньше были компьютеры и как приходилось с ними работать.
Заключение
Для начала перечислю плюсы или, скорее, просто особенности данной книги. Легко и быстро читается, так как немного кода, зато напротив встречаются диаграммы и блок-схемы. Есть иллюстрации к каждой главе в подходящем едином стиле. Из минусов — это то, что книга скорее для начинающих разработчиков. Новички должны ее прочитать детально, более опытные — скорее бегло ознакомятся (это не займет много времени), а вот опытным разработчикам и архитекторам ПО книга вряд ли покажется полезной.