Общая информация
Книга объёмом 250 страниц о построении чистой архитектуры на PHP (примерно той самой, о которой писал дядюшка Боб в своей книге). Хотя вместо PHP вполне можно подставить Java, C# или другой ООП-язык старого эшелона. Книга, которая попалась мне, была на английском языке, так что я не уверен, что существуют переводы на другие языки. В книге встречаются вставки кода (причём цветные), изображений почти нет, есть пара диаграмм и блок-схем.
Содержание книги
Книга состоит из 4 разделов:
- Проблемы с кодом
- Наборы инструментов для решения проблем
- Чистая (слоеная / луковая) архитектура
- Примеры из чистой архитектуры
Раздел «Проблемы с кодом» описывает, почему код часто становится плохо читаемым, плохо тестируемым и неподдерживаемым. Зачастую плохая архитектура является одной из основных причин.
Второй раздел (про инструменты решения) состоит из нескольких глав. Первая из них — это паттерны проектирования (в том числе есть примеры некоторых паттернов). Далее — подробный разбор принципов SOLID. Следующая глава подробно разбирает тематику внедрения зависимостей (Dependency Injection). Автор не обходит вниманием и интерфейсы — это следующая глава.
Разбор чистой архитектуры начинается с анализа паттерна MVC и описания каждого его компонента. Также вместе с этим разбирается маршрутизация, и в конце первой главы автор указывает на слабые стороны данного архитектурного подхода. После этого начинаются главы про луковую архитектуру с подробным разбором каждого компонента. Каждый разбор сопровождается примером кода на PHP под тот или иной слой (скорее абстрактным кодом без глубокой проработки деталей). Немало внимания уделяется и теоретическим аспектам и вопросам, например: почему не должно быть конкретной завязки на базу данных или фреймворк и какова роль тестирования в такой архитектуре.
Последний раздел — это своего рода итог всей книги с закреплением всего материала выше и построением некого небольшого реального примера со своей структурой папок и своей бизнес-моделью, но при этом с использованием реальных фреймворков и пакетов.
Мнение
Концепция слоеной архитектуры, которую наверняка бы одобрил дядя Боб (Роберт Мартин), реализована непосредственно на языке PHP. Внедрение зависимостей, использование интерфейсов. Описание и реализация некоторых популярных паттернов, SOLID и другие подходы к построению архитектуры на PHP. И самое главное — всё подкреплено практическими примерами. Поэтому я могу порекомендовать эту книгу для ознакомления или даже глубокой проработки.