Size: a a a

2020 July 27

C

Constantine in Go-go!
Локоть Анатолий
К сожалению, автомиграцию сразу после первого релиза придется убирать. Она довольно тупая и не всегда может сообразить, что надо. Хотя для poc и норм
++
источник

AR

Aleksandr Razumov in Go-go!
т.е. хотя бы попробовать его я бы рекомендовал, прикольная штука
источник

C

Calculon🤖 in Go-go!
Aleksandr Razumov
но вообще нам пока ent нравится, но мокать его не очень удобно + пока сыровато
хотя issue фиксят быстро

статическая типизация и автокомплит - очень удобно юзать
мне не понравилось что нет стриминг чтения и батчей
источник

ЛА

Локоть Анатолий... in Go-go!
Aleksandr Razumov
но вообще нам пока ent нравится, но мокать его не очень удобно + пока сыровато
хотя issue фиксят быстро

статическая типизация и автокомплит - очень удобно юзать
Горм делает слишком много, ент слишком мало.
Но го вей похоже второе
источник

AR

Aleksandr Razumov in Go-go!
Calculon🤖
мне не понравилось что нет стриминг чтения и батчей
да, там есть открытые issue для этого, вроде даже в роадмапе
источник

VM

Vladislav Milenin in Go-go!
Я бы на месте работодателя не платил за изучение и работу с горм, уж очень контрпродуктивно и отклонение от прямых обязанностей - разработке на го
источник

C

Calculon🤖 in Go-go!
Aleksandr Razumov
да, там есть открытые issue для этого, вроде даже в роадмапе
угу
источник

VM

Vladislav Milenin in Go-go!
Aleksandr Razumov
но вообще нам пока ent нравится, но мокать его не очень удобно + пока сыровато
хотя issue фиксят быстро

статическая типизация и автокомплит - очень удобно юзать
А в чем неудобство моков? Или, точнее, особенность моков энта от не энта?
источник

AR

Aleksandr Razumov in Go-go!
Vladislav Milenin
А в чем неудобство моков? Или, точнее, особенность моков энта от не энта?
там такая архитектура, что сложно выделить подмножество интерфейса и через dependency inversion заюзать, придется использовать god-структуру от ent, из которой есть доступ ко всем сущностям
источник

AR

Aleksandr Razumov in Go-go!
т.е. там инстанцируешь ent.Client, а у него в полях есть все сущности, типа вот такого псевдокода:
c := NewClient()
u := с.Users.GetByID("foo")
v := c.Videos.Query(videos.ByUser(u))
v.Update().SetDescription("foo")

получается, что слой repository нужно будет в любом случае выделять в архитектуре, и уже из него обращаться к ent.
источник

AR

Aleksandr Razumov in Go-go!
но можно конечно забить на всё и прям из chi хендлера юзать ent, но тогда это сложно будет тестировать иначе как интеграционно
источник

C

Calculon🤖 in Go-go!
Aleksandr Razumov
но можно конечно забить на всё и прям из chi хендлера юзать ent, но тогда это сложно будет тестировать иначе как интеграционно
для небольших апп это топ тема
источник

МП

Мимо Проходящий... in Go-go!
Aleksandr Razumov
но вообще нам пока ent нравится, но мокать его не очень удобно + пока сыровато
хотя issue фиксят быстро

статическая типизация и автокомплит - очень удобно юзать
Но ведь в ней нет db first. Т е нужно самому схему прописывать. Это не dry и оч ипёт делать самому руками
источник

AR

Aleksandr Razumov in Go-go!
Мимо Проходящий
Но ведь в ней нет db first. Т е нужно самому схему прописывать. Это не dry и оч ипёт делать самому руками
она schema first
источник

AR

Aleksandr Razumov in Go-go!
мы генерируем миграции через ent + migrate, складываем их в папочку _migrations, получается _migrations/001_something_new.up.sql, потом эмбедится в бинарь
источник

C

Calculon🤖 in Go-go!
Aleksandr Razumov
мы генерируем миграции через ent + migrate, складываем их в папочку _migrations, получается _migrations/001_something_new.up.sql, потом эмбедится в бинарь
ent сам может в миграции, зачем тулы слева?
источник

AR

Aleksandr Razumov in Go-go!
Calculon🤖
ent сам может в миграции, зачем тулы слева?
может, да
нам нужен ручной контроль над тем, что выполняется в бд
источник

AR

Aleksandr Razumov in Go-go!
т.е. просто "offline mode" юзаем, как-то спокойнее с ним
источник

МП

Мимо Проходящий... in Go-go!
Вообще дело хорошее, тоже хочу попробовать на новых бд
источник

МП

Мимо Проходящий... in Go-go!
Aleksandr Razumov
т.е. там инстанцируешь ent.Client, а у него в полях есть все сущности, типа вот такого псевдокода:
c := NewClient()
u := с.Users.GetByID("foo")
v := c.Videos.Query(videos.ByUser(u))
v.Update().SetDescription("foo")

получается, что слой repository нужно будет в любом случае выделять в архитектуре, и уже из него обращаться к ent.
Вот здесь же у вас 3 запроса. Не смущает, что можно в один?
источник