Laraway - путь которого не существует

Август, 2022

Интро

На просторах интернета можно встретить выражения «Laravel Way», «ларавэй», «ларавэйно» и т.п.

«Laravel Way» - это негласный набор практик, принятых сообществом.

В каждом фреймворке или CMS, или в любой другой системе есть какие-либо специфичные требования и рекомендации, но чаще всего они прозрачны и опциональны. Если мы говорим о мире PHP, то большинство принципов применимы независимо от инструмента. А Laravel - это всего-лишь инструмент. Да, да, ты не ослышался, это всего-лишь набор функций, а не волшебная палочка, позволяющая тебе делать "вжух и ты в продакшене".

"Ларавэйно" - это

  • code style
  • соглашения об именовании
  • best-practices, как следствия ошибок разработчиков плохо знакомых с фреймворком
  • использование инструментов из коробки

Но ничто из этого списка не относится конкретно к Laravel и не диктует "как надо".

Также в этот список относят повальное использование различных фасадов и хелперов заменяющих нативные возможности. Например, всегда использовать collect() вместо простого массива; Arr::get(), чтобы получить элемент; бездумно обернуть всё в tap() или app(). Слепое использование функционала, только потому что он предоставлен твоим любимым фреймворком - это и есть проблема «Laravel Way».

Чем больше ты упарываешься в магию и пытаешься писать "ларавэйно", тем дальше ты уходишь от качественного и оптимизированного кода. Не надо использовать фичи, просто потому что они есть. Не надо пытаться подражать коду фреймворка из vendor-а. Надо стараться писать аккуратный и простой код согласно реальному ТЗ, а не обмазываться вызовами тяжёлых функций без необходимости.

Ответом на вопрос «How to do it in Laravel?» будет всегда - «также как и не в Laravel». Тем не менее, конечно, не стоит изобретать велосипед и игнорировать возможности фреймворка... сохраняй равновесие.

И какой же вывод, спросишь ты? Всё свелось к Инь-Яну? Разработка - это всегда баланс и компромисс между множеством крайностей. Код - это средство общения людей с машинами и с другими людьми. На самом деле нет никакого «laravel way», нет никакого правильного или аутентичного пути конкретно для Laravel. Мы пишем код, чтобы он корректно работал, был поддерживаемый и читаем для других разработчиков. А "ларавэйный" ли он - не имеет никакого значения, не стоит гнаться за абстрактными понятиями.

Laraway - это бесконечный, суровый и в тоже время прекрасный холивар... Каким будет твой - решать тебе.

Добро пожаловать в мир разработки и удачного пути...