#laravelshit
Ребята из spatie делают не только пакеты среднего уровня качества, но и рекомендуют и пишут статьи не лучше своих пакетов. Например, статья под гордым названием «5 простых советов» на самом деле рекламирует как минимум три ужасных:
1. Предлагается использовать
2. Используйтеговна плохого кода другим. Чтобы уяснить для себя, почему это плохо, советую прочитать данный тред со ссылкой на оригинальный твит, приведенный в статье, https://twitter.com/pierrejoye/status/1286441723724324864?s=21.
3. "Используйте
https://ryangjchandler.co.uk/posts/5-simple-laravel-tips-and-tricks
Ребята из spatie делают не только пакеты среднего уровня качества, но и рекомендуют и пишут статьи не лучше своих пакетов. Например, статья под гордым названием «5 простых советов» на самом деле рекламирует как минимум три ужасных:
1. Предлагается использовать
User::all()->dd()
вместо dd(User::all())
, ссылаясь на то, что разработчиков может раздражать необходимость заводить переменную для вызова dd
. Зато разработчиков не раздражает дебажить код с помощью dd
вместо xdebug
и тянуть на продакшн код для дебага https://github.com/laravel/framework/blob/8.x/src/Illuminate/Database/Query/Builder.php#L3406-L3409 (🤦♂️).2. Используйте
Auth::id()
вместо Auth::user()->id()
, – гордо кричит автор статьи, предлагая заменить один кусок 3. "Используйте
->withDefault()
при определении отношений, чтобы в случае отсутствия модели получать пустышку". Как и автор статьи, документация заявляет, что это пример реализации паттерна Null Object
, но это не так. Null Object
нужен, чтобы соответствовать типу и ничего не делать (например, NullLogger), а null
от объекта модели только вводит в ступор: придется проверять на существование id
модели, чтобы отличить его от реальных данных, что не сильно отличается от if ($post->user === null)
. https://ryangjchandler.co.uk/posts/5-simple-laravel-tips-and-tricks
GitHub
framework/src/Illuminate/Database/Query/Builder.php at 8.x · laravel/framework
The Laravel Framework. Contribute to laravel/framework development by creating an account on GitHub.
#laravelshit
В тему разговора о том, почему фасады плохие, можно вспомнить ишьюс на гитхабе, в котором разработчики жалуются на то, что фасады превращают любой сервис в синглтон, потому что кэшируют их в текущем рантайме. Можно, конечно, обойти этот баг следующим образом, но все это говорит не в пользу фасадов. Главное не вздумайте использовать фасады в долгоживущих приложениях.
https://github.com/laravel/ideas/issues/1088
В тему разговора о том, почему фасады плохие, можно вспомнить ишьюс на гитхабе, в котором разработчики жалуются на то, что фасады превращают любой сервис в синглтон, потому что кэшируют их в текущем рантайме. Можно, конечно, обойти этот баг следующим образом, но все это говорит не в пользу фасадов. Главное не вздумайте использовать фасады в долгоживущих приложениях.
https://github.com/laravel/ideas/issues/1088
GitHub
Facades always returning a singleton · Issue #1088 · laravel/ideas
Is there any reason or design decision that dictates that the use of a Facade always returns a singleton, and ignores the binding method specified in the ServiceProvider?