Ответ
Из литературы по проектированию и архитектуре наиболее полезными для моей работы с PHP и высоконагруженными системами были:
- "Чистый код" и "Чистая архитектура" Роберта Мартина. Сформировали понимание SOLID-принципов и важности разделения ответственности. Например, принцип инверсии зависимостей (DIP) напрямую применяю при проектировании сервисов в Symfony/Laravel, внедряя зависимости через интерфейсы.
- "Предметно-ориентированное проектирование" (DDD) Вона Вернона. Книга сложная, но дала инструменты для работы со сложной бизнес-логикой. Использовал идеи ограниченных контекстов (Bounded Context) и антикоррупционных слоев при интеграции с legacy-системами.
- "Паттерны проектирования" (GoF). Классика, которую нужно знать, но применяю выборочно. В PHP-экосистеме многие паттерны реализованы на уровне фреймворков (например, Observer в Laravel Events).
- "Шаблоны интеграции корпоративных приложений" Грегора Хоупа и Бобби Вулфа. Незаменима при проектировании распределенных систем и микросервисов, с которыми приходится работать.
Практический пример из опыта: При рефакторинге монолита мы использовали принципы из "Чистой архитектуры" для выделения доменного слоя. Вместо спагетти-кода в контроллерах появились четкие сервисы, репозитории и value-объекты.
// До: Логика в контроллере
class OrderController {
public function create(Request $request) {
// Валидация, работа с БД, отправка email, логика скидок – всё здесь
}
}
// После: Использование сервиса и DTO
class OrderController {
public function create(CreateOrderRequest $request, OrderService $service) {
$command = new CreateOrderCommand($request->validated());
$order = $service->execute($command);
return new OrderResource($order);
}
}
Книги дают фундамент, но ключевое — адаптировать идеи под конкретный контекст проекта и возможности современного PHP.