Anonymous
Мне это очень понравилось
Daniil 👾
спасибо!
Anonymous
+ у ларакаста есть отличный курс по созданию форума по tdd
Anonymous
к тдд нужно головой прийти
я сейчас по tdd разрабатываю и скажу что очень нравится ) 1 раз пишешь прямо по тз что нужно
Maksim (Ellrion)
tdd унылое оверинжипиринговое говно из мира пони, радуг и калькуляторов)
Anonymous
не надо вручную что то там генерить и в бд залезать
Maksim (Ellrion)
почему
Потому что я хотел набросить) но на самом деле доля истины тут есть. К сожалению в реальном мире тдд работает не всегда и не всегда нужно.
Anonymous
Например форму какую нибудь.. Ты 1 раз написал для нее тест а потом тестишь что все нормально загружается и т.д..
Anonymous
я раньше смотрел запросы, postman загружал..
Daniil 👾
Daniil 👾
везде
даже на унылых корпорах на 4-5 моделей?
Anonymous
а по собственному опыту, на сколько часто в проектах приходится что-то вот так тестить?
почему приходится? Когда осваиваешь тесты не понимаешь как без них что то делал
Maksim (Ellrion)
везде
А тебе везло с конторами)
Anonymous
Это как xdebug открываешь для себя )
Nik
очень
Nik
сижу медитирую на эти строки
Владислав
unset.. кек
Maksim (Ellrion)
сижу медитирую на эти строки
Ну хз в отрыве от контекста там всё норм
Denis
А кто нибудь делал сброс пароля по связке username/email? Когда email может быть не уникален
Denis
Раз не получается вытаскивать email из дочерней модели...
invariance
@ написал по TDD @ приходит заказчик и говорит "поиграйте с архитектурой"
invariance
tdd унылое оверинжипиринговое говно из мира пони, радуг и калькуляторов)
если пилить бложики на вортпрессе, то да, оверинжиниринг
Nik
Ну хз в отрыве от контекста там всё норм
$status = $validData['status'] ?? null; unset(...);
invariance
а если у тебя бизнес приложуха для работы с реальными деньгами, то ты и TDD и шаманов закажешь и все что угодно
Nik
это не отрыв контекста, это пол проекта в таком стиле написано
invariance
что бы в БЛ не проебаться нигде
invariance
я щас не про платежи через страйп, а про многа многа денех
Maksim (Ellrion)
$status = $validData['status'] ?? null; unset(...);
Это стилистическая фигня. Мне вот после го так вообще не бросилась в глаза.
Maksim (Ellrion)
это не делает чести го :)
Я лишь о том что это писец какая мелочь
Maksim (Ellrion)
А ты подаёшь как "о боже смотрите!"
Nik
я просто не хочу мусор из избы выносить. это просто маленький пример как делать не нужно, и когда весь код написал нелогичной лапшой - его адово тяжело хотя бы просто понять
Nik
activeObject проверяет ->exists на модели. зачем здесь нью вместо фейла?
Nik
вот эта хуйня проверяет экзист обжект или не
Maksim (Ellrion)
я просто не хочу мусор из избы выносить. это просто маленький пример как делать не нужно, и когда весь код написал нелогичной лапшой - его адово тяжело хотя бы просто понять
Не вижу в том куске ничего мешающего его понять. Даже наоборот, мне смотря на твой вариант нужно помнить что ансет безопасен для незасеченных переменных
Nik
в первом случае отрабатывает модель со всеми ивентами, а во втором отрабатывает заглушка если атрибуты = новые атрибуты, не делать ничерта
Nik
в первой валидации отправляются ивенты и делается ебаная куча магии, тогда как во втором вызове проверка - если атрибуты одинаковые (которые уже стрельнули в валидации) - то нихуя не делать
Nik
за маты сорян :) то из лички
Andrew
емае, ужс
Nik
Ну вот это уже дичь)
а под этим говном лежит единый базовый класс с 1200 строк логики для _всех_ моделей (около 50 на проекте)
Nik
и в моделях тоже встречается по 1,5-2к строк
invariance
и вообще findOrFail - это пиздец
Nik
пиздий того кто писал
он мне деньги платит)))) мне и так расширение тимы зарезали с формулировкой "они тоже прийдут и будут ворчать что нужно все переписать"
invariance
в одном месте: запрос к бд, бизнес логика, обработка ошибки
invariance
в одну строку, привязанную к реализации фреймворка
invariance
пздц же
invariance
это путь юишников
Maksim (Ellrion)
в одном месте: запрос к бд, бизнес логика, обработка ошибки
Обработки ошибки там нет. Там только ее выброс
invariance
хотя да
Maksim (Ellrion)
Ой вот только не надо про фреймворк агностик код. Обычно это или нахер не нужно или пустое бла бла.
invariance
ладно все беру слова назад
invariance
Ой вот только не надо про фреймворк агностик код. Обычно это или нахер не нужно или пустое бла бла.
ну когда бизнес логика не привязана к фреймворку - кошерно, как по мне
invariance
это ведь не особо сложно делается
invariance
тестить банально проще
Nik
это ведь не особо сложно делается
ой не всегда. модельки нужны почти везде
invariance
Nik
вот прям везде, даже в сервисах
invariance
если ты размазываешь модели по всему коду
invariance
это не значит, что другие тоже так делают)
Nik
то-есть использовать промежуточный DTO чисто для фреймворк-агностик это норм потвоему?
invariance
у меня вообще минимум привязки к бд, все сервисы тестируются запросто на моках и стабах
Nik
или ты массивчики везде пихаешь ?
Nik
я не говорю про тесты, я говорю про фреймворк агностик :)
invariance
можно просто логику работы с моделью держать где то в одном месте под контролем, а не в куче связанных сервисов
Nik
ну тебе данные в том или ином виде всегда прийдется гонять
invariance
ну данные это другое уже
invariance
они не требуют доступа к бд сами по себе
Nik
но модели не фреймворк агностик :)
invariance
что такое фреймворк агностик?