Size: a a a

Software Design/Architecture/Zen

2021 January 15

А

Алексей in Software Design/Architecture/Zen
то есть троллейбус из хлеба
источник

А

Алексей in Software Design/Architecture/Zen
просто хлеб очень необычный и лепить троллейбус очень интересно
источник

MM

Maksim Masiukevich in Software Design/Architecture/Zen
Алексей Гевондян
по ней типов нагенерить, валидацию, и т д
да, но в конечном счёте тебе никто не мешает нагородить такой же срани к пхп, и там внутри будет происходить тоже самое: тайпкаст к указанному типу, либо факап (как реализуешь)
источник

АЯ

Андрей Ява in Software Design/Architecture/Zen
Segmentation Fault
Соглашусь.

Предположим у меня есть кейс, когда нужно найти товар (агрегат) по id. Напрямую из представления в репозиторий лезть нельзя (или можно?), поэтому будет служба в которой есть этот функционал.
А также есть сценарий создания корзины (другой агрегат), который предполагает, что прежде чем создавать эту корзину надо убедиться, что товары реально существуют. Правильно я понимаю, что в таком случае сервису по созданию корзины использовать сервис по поискку товаров?
представление всегда представление чего-то.
представлению какого-то объекта нет смысла лезть в репу за этим объектом, оно из объекта и генерируется.
а корзина может быть и пустая ващет
источник

АГ

Алексей Гевондян... in Software Design/Architecture/Zen
ага, это любителям типов посвящается)
источник

АГ

Алексей Гевондян... in Software Design/Architecture/Zen
Maksim Masiukevich
да, но в конечном счёте тебе никто не мешает нагородить такой же срани к пхп, и там внутри будет происходить тоже самое: тайпкаст к указанному типу, либо факап (как реализуешь)
нагенерить по жсон схеме структурки и валидаторы можно на любом языке практически, и уже решения есть, да
источник

MM

Maksim Masiukevich in Software Design/Architecture/Zen
Евгений Ромашкан
Покрыть сф сериалайзер, лол
вот есть пример из радужного мира розовых поней:

у тебя есть обертка для бд Vertx.
Когда ты делаешь выборку, тебе возвращается объект Row, у которого есть всякие методы в стиле getLocalDateTime(fieldName): LocalDateTime?.
метод   getLocalDateTime возвращает тип с нуллейблом, но... если я сделаю что-то вроде

val date: LocalDateTime = Row.getLocalDateTime("created_at"), то что мне скажет компилятор?
источник

MM

Maksim Masiukevich in Software Design/Architecture/Zen
споилер: ничего, ты молодец.

ну спасибо, пиздец ты мне помог, дружище компилятор :)
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Maksim Masiukevich
споилер: ничего, ты молодец.

ну спасибо, пиздец ты мне помог, дружище компилятор :)
тайпскрипт скажет что "а там точно не будет нула? я чет в этом не уверен"
источник

SP

Sergey Protko in Software Design/Architecture/Zen
ты можешь ему конечно сказать Row.getLocalDateTime("created_at")! что на его языке означает "да не бзди, я тыщу раз так делал"
источник

MM

Maksim Masiukevich in Software Design/Architecture/Zen
Sergey Protko
ты можешь ему конечно сказать Row.getLocalDateTime("created_at")! что на его языке означает "да не бзди, я тыщу раз так делал"
ну в мире поней тоже есть "мамой клянусь", но в данном конкретном случае он там не нужен :)
источник

SP

Sergey Protko in Software Design/Architecture/Zen
а можешь даже научить что если Row это Row<"my_table"> то тогда getLocalDateTime("created_at") не будет возвращать нулов
источник

SP

Sergey Protko in Software Design/Architecture/Zen
главное только тайпинги нагенерить для базы
источник

SP

Sergey Protko in Software Design/Architecture/Zen
в Хаскеле есть решения которые для всех твоих SQL в коде сгенерят тайпинги на реальной схеме
источник

MM

Maksim Masiukevich in Software Design/Architecture/Zen
ну в жабе жук есть
источник

MM

Maksim Masiukevich in Software Design/Architecture/Zen
генери и пользуйся
источник

SP

Sergey Protko in Software Design/Architecture/Zen
и целый класс ошибок из категории "сударь вы лох" пропадают
источник

MM

Maksim Masiukevich in Software Design/Architecture/Zen
выглядит по убого (имхо), но зато надёжно
источник

SP

Sergey Protko in Software Design/Architecture/Zen
а в php... :array и досвидос инфа о типах. Был list<Row<"my_table"> стал array<array-key, mixed>
источник

SP

Sergey Protko in Software Design/Architecture/Zen
пойду дальше на пыхе писать( какой же ущербный язык
источник