Скачать CV

Архитектура

Маршруты живут рядом с ресурсом

LaraBoom находит Path-классы по атрибутам. Папки host routes, которую надо синхронизировать, нет. JSON живёт под /api.

В host-приложении нет routes/, нет app/Http, нет верхнего Services. Новости держат ресурс, Service и классы статей в Resources/News. Auth так же, в Routes/Auth. Фича читается сверху вниз в одной папке. Это правило, чтобы маленькое портфолио не вырастило второй фреймворк внутри первого.

Хранение картинок, нормализация и seed-строки ушли из тел маршрутов. Метод маршрута читается как валидация, вызов сервиса, возврат ресурса. Два одинаковых нормализатора картинок стали видны и слились.

Фича это одна папка. Читайте сверху вниз без прыжков по дереву.
Фича это одна папка. Читайте сверху вниз без прыжков по дереву.

Discovery

Пакет сканирует Resources и Routes, читает атрибуты и регистрирует пути при загрузке. Класс это один путь. Имя метода это verb. Когда маршрут не появлялся, причина была одной из трёх: namespace не совпал с папкой, атрибут забыт, либо кэш маршрутов от прежней сборки.

В проде работает route cache. Его надо сбрасывать при деплое, иначе новые пути остаются невидимыми. На таком объёме сканирование нормально. Время загрузки это число, за которым следить по мере роста ресурсов.

Сбрасывайте кэш маршрутов на деплое, иначе новые пути остаются невидимыми.
Сбрасывайте кэш маршрутов на деплое, иначе новые пути остаются невидимыми.

Сиды как спецификация

Каждая seed-строка несёт en, ru и de. Это поймало форму, которая сохраняла только активную локаль. Ещё это гоняет сетку: короткие заголовки, длинные, фото, каждый размер плитки. Пустая локаль в сиде это падение теста.

Когда файл Service вырос больше экрана HTML сидов, статьи уехали в News/Articles. Файл ресурса остался маленьким. Так уже вышло здесь.

К новостям