Kirill
Сериозно? Жесть...
а там оно и не нужно)
Kirill
потому что достаточно свой тип написать
Павел
Сериозно? Жесть...
Да разбирал эту тему вскользь, вроде как нет, потому что его нет в спеке sql
Kirill
только не надо путать инварианты (считай что типы) с валидацией
Павел
только не надо путать инварианты (считай что типы) с валидацией
На самом деле это тоже все не "утверждено": "слои валидации", "тут первичная а тут вторичная", "тут доменная а тут валидация запроса". Все это кто как хочет так и валидирует))
Kirill
смотри, всё же DbC пришёл из компилируемых языков
Kirill
а у них есть такое свойство, что если где-то тип наебнётся - код не скомпилируется тупо
Kirill
передаёшь инт, например, а функция принимает стринги и гг вп
Kirill
так что если код скопилился, то можно из него нахрен удалить всю информацию о типах и ничего не изменится (собсно так компиляторы и работают)
Kirill
и DbC инварианты - это просто кастомные типы
Павел
ммм, нет
Пока вся эта "муть" не пришла. Чуваки по 10 лет клали поля в сущности, и валидировали перед флашем. И продолжают так делать. Берем апи платформу - все то же самое. И это хороший инструмент
The Ant
Баланс не может быть меньше нуля это бизнес правило вообще. И валидация должна быть там, где будешь процессить транзу.
Kirill
"валидация перед флашем" - это вполне себе может быть по смыслу инвариантами, а не валидацией
Kirill
потому что в пыхе нет кастомных типов данных)
Павел
с каких таких пор это говнище стало хорошим инструментом, лол?
С тех самых, с которых оно решает задачи быстро, пока ты пишешь 5 слоев валидаций, VO на каждый id, и интерфейс на каждую внешнюю штуку
Павел
хочешь быстро решить задачу - используй ларку
Так и в симфе есть куча мейкеров и прочего. Что даст ларка?
Kirill
чо, каких мейкеров?
Kirill
в ларке этого говна для формошлёпства в миллиарды раз больше
Павел
Консольная команда по генерации всякой шляпы. Пишешь круды не выходя из нее)))
The Ant
Kirill
и чтоб просто круд сделать в ларке 1 строка для роута пишется)))
Kirill
ещё проще
Павел
А контроллеры
Kirill
1 строка
Павел
а роутинг
Kirill
да блин
Павел
Воти блин)))
Kirill
говорю, в МИЛЛИАРД РАЗ БОЛЬШЕ
Kirill
на каждый чих
Павел
и апи платформе даже этого нет)))
Павел
говорю, в МИЛЛИАРД РАЗ БОЛЬШЕ
Там много прикольных интрументов, я не спорю
Павел
Ты рассматриваешь со стороны какого то абстрактного кода, который типа должен быть хорошим по тем или иным фактором
Павел
А должен быть хороший и сравнительно быстрый и жизнеспособный продукт
Kirill
не, я рассматриваю со стороны того, что если тебе надо зафигачить говнеца - ларка идеальна
Kirill
а симфа - это потрахаться вначале, но получить поддерживаемый код
Kirill
Какие параметры у гавнеца?)
"нужно вчера"
Павел
"нужно вчера"
Пфф постоянное тз на симфе, давай дальше
Kirill
у тебя симфа не позволяет писать говнецо с такой же скоростью просто)
Kirill
там тупо инструментов таких нет
Павел
у тебя симфа не позволяет писать говнецо с такой же скоростью просто)
мейкеры, апи платформа. Формы. Готовые админки Только изучи инстурменти поехали
Kirill
А контроллеры
чтоб ты понимал насколько всё плохо
Павел
Куда уж быстрее, когда ты написал сущность и пару атрибутов и готовая апи?
Vlad
инжектишь ем в контроллер и дальше можно не выходить никуда
Павел
чтоб ты понимал насколько всё плохо
Так у нас мейкеры почти такие же
Vlad
делай только классы под сущности
Kirill
ну вот в ларке даже этого можно не делать
Kirill
и ничего не инжектить
Kirill
и даже контроллеры можно не писать
Kirill
и это вполне законно
Kirill
т.е. не "говнокод" в понимании фрейма
Павел
говнокод - это то что нельзя поддерживать и развивать, остальное все субъективно
The Ant
говнокод - это то что нельзя поддерживать и развивать, остальное все субъективно
Нельзя поддерживать это когда старый разраб умер, а тестов нет.
Павел
Если у тебя течет из глаз, а коллега делает таску за пару часов и нет проблем (т.е. нет затыков реальных, просто кодь) - то это проблема твоих глаз)
Kirill
Route::get('/user/{id}', fn (User $user) => $user); Получение юзера по ID и возврат его полей в формате json
Павел
ну правда без колбэка
Kirill
class User extends Model {}
Kirill
а это весь код класса юзер)
Kirill
потому что эктиврекорд
Kirill
Пффф и у нас так можно
да нельзя, смирись
Kirill
симфа не подходит для говношлёпства так же, как ларка
Kirill
можно, никто не спорит, но нахуа - не понятно
Павел
#[route(/user/{id})] action(User $user){ return $user ; }
Павел
нельзя
Че эт
Kirill
потому что: 1) нужно написать аргумент резолвер для юзера
Kirill
который будет лезть в базку по ID из аргумента