Основные концепции
Разнообразие
Проблема
// Цитату сюда от Роберта Мартина про единообразие
В больших распределённых команда сложно контролировать единообразие архитектуры проектов. Часто в разных проектах появляются отклониения, разработчики размещают файлы не в одинаковымх местах, по разному выстраивают взаимодействие с фронтом. Эти различия приводят к большому разнообразию решений. Переключаясь между разными проектами разработчикам приходится разбираться не только в бизнес-логике, но и в новой архитектуре, искать концы откуда начинает и где заканчивает обрабатываться запрос.
Решение
Решение заключается в том, чтоб следовать стандартам, рекомендациям и командным или проектным соглашениям. К сожалению стандарты покрывают не весь спектр спорных ситуаций с которыми сталкиваются разработчики, поэтому появляются рекомендации, которые помогают принять решение. Symfobooster является имплементацией документов, которые описаны в zacore. Zacore является сборником решений, которые основаны на личном опыте, рекомендациях из книг и были в ходе дебатов, когда в команде появлялось два мнения по решению одной проблемы.
В 2020 году репозиторий zacore попал в программу 2020 GitHub Archive Program
Рутина
Проблема
При создании нового эндпоинта каждый раз приходится делать много рутинной работы: создавать роутиг, классы валидации, респонса, сервис, много времени приходится уделять стандартным методам тестирования, описывать спецификацию и прочее. Каждый такой класс индивидуален для каждого эндпоинта и заменить их универсальным классом нельзя так как мы потерям в гибкости.
Решение
Для того чтоб не выгорать каждый раз создавая одно и тоже достаточно использовать генераторы кода. // TODO
Архитектура
Symfobooster следует концепции гексогональной архитектуры.