The Ant
Kirill
потому что достаточно свой тип написать
Павел
Сериозно? Жесть...
Да разбирал эту тему вскользь, вроде как нет, потому что его нет в спеке sql
Kirill
только не надо путать инварианты (считай что типы) с валидацией
Kirill
Kirill
смотри, всё же DbC пришёл из компилируемых языков
Kirill
а у них есть такое свойство, что если где-то тип наебнётся - код не скомпилируется тупо
Павел
Kirill
передаёшь инт, например, а функция принимает стринги и гг вп
Kirill
так что если код скопилился, то можно из него нахрен удалить всю информацию о типах и ничего не изменится (собсно так компиляторы и работают)
Kirill
и DbC инварианты - это просто кастомные типы
Павел
ммм, нет
Пока вся эта "муть" не пришла. Чуваки по 10 лет клали поля в сущности, и валидировали перед флашем. И продолжают так делать.
Берем апи платформу - все то же самое. И это хороший инструмент
Kirill
The Ant
Баланс не может быть меньше нуля это бизнес правило вообще. И валидация должна быть там, где будешь процессить транзу.
Kirill
"валидация перед флашем" - это вполне себе может быть по смыслу инвариантами, а не валидацией
Kirill
потому что в пыхе нет кастомных типов данных)
Kirill
Kirill
чо, каких мейкеров?
Kirill
в ларке этого говна для формошлёпства в миллиарды раз больше
Павел
Консольная команда по генерации всякой шляпы. Пишешь круды не выходя из нее)))
Kirill
Kirill
и чтоб просто круд сделать в ларке 1 строка для роута пишется)))
Павел
Kirill
ещё проще
Павел
А контроллеры
Kirill
1 строка
Павел
а роутинг
Kirill
да блин
Павел
Воти блин)))
Kirill
говорю, в МИЛЛИАРД РАЗ БОЛЬШЕ
Kirill
на каждый чих
Павел
и апи платформе даже этого нет)))
Павел
Ты рассматриваешь со стороны какого то абстрактного кода, который типа должен быть хорошим по тем или иным фактором
Павел
А должен быть хороший и сравнительно быстрый и жизнеспособный продукт
Kirill
не, я рассматриваю со стороны того, что если тебе надо зафигачить говнеца - ларка идеальна
Kirill
а симфа - это потрахаться вначале, но получить поддерживаемый код
Павел
Kirill
Павел
Kirill
у тебя симфа не позволяет писать говнецо с такой же скоростью просто)
Kirill
там тупо инструментов таких нет
Vlad
Павел
Куда уж быстрее, когда ты написал сущность и пару атрибутов и готовая апи?
Kirill
Vlad
инжектишь ем в контроллер и дальше можно не выходить никуда
Павел
Vlad
делай только классы под сущности
Kirill
ну вот в ларке даже этого можно не делать
Kirill
и ничего не инжектить
The Ant
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
Павел
Kirill
потому что:
1) нужно написать аргумент резолвер для юзера
Павел
Kirill
который будет лезть в базку по ID из аргумента