Валентин Хомутенко / «что не так с ORM в Go»

Подписывайтесь на наш канал здесь и в телеграмм t.me/meetups_evrone, чтобы быть в курсе будущих митапов и не пропускать полезные доклады!
Валентин Хомутенко, бэкенд-инженер в Авито
«У разработчиков на разных стеках сложилось разное отношение к ORM: где-то без них не работают вообще, где-то используют лишь иногда. В Go тема использования ORM стала известным холиваром и часто можно услышать, что «ORM не нужны». Доклад - это попытка разобраться, почему так сложилось, и действительно ли у Go просто свой путь в работе с базами данных».
Если вы тоже хотите поделиться экспертизой с сообществом, ещё есть возможность стать спикером. Пишите на andy@evrone.com, он поможет составить хороший доклад. Ну а обсудить услышанное можно будет прямо в ходе митапа, спикеры будут отвечать на вопросы в комментариях. Чтобы присоединиться, скорее регистрируйтесь здесь.
00:00 - Введение
00:30 - ORM в других языках
02:10 - ORM в Go
04:12 - Почему люди пользуются ORM?
06:40 - Без ORM пишут крутаны, которые хорошо знают SQL
08:49 - В маленьких командах не нужен ORM
10:36 - ORM это всегда проблемы с производительностью
12:34 - Для сложных запросов ORM мешает
13:46 - ORM не нужен, если не тестировать реальную БД
15:34 - Микросервисы можно писать и без ORM
16:54 - Нет готовой базы знаний и лучших практик
18:26 - Никто не хочет изобретать велосипед
19:55 - Гоферы просто страдают без ORM и ничего не могут с этим сделать?
20:31 - database/sql
21:29 - sqlx
22:09 - squirrel
22:46 - migrate
24:20 - Есть ли нормальные ORM в Go?
25:06 - gorm
26:33 - reform
27:38 - ent
28:16 - pop
29:25 - bun (go-pg)
30:20 - Заключение

Пікірлер: 23

  • @avonaryagami
    @avonaryagami11 ай бұрын

    Пишу на го именно потому что здесь не принято тянуть странные проблемы на продакшн. Насколько же проще подддерживать код, когда в нем нет орм. Тоже раньше писал на питоне, много. Го как глоток свежего воздуха после питона.

  • @user-nb5xw5tr5g
    @user-nb5xw5tr5g Жыл бұрын

    В сложных запросах мне проще написать без ORM

  • @stassmith8593
    @stassmith85933 ай бұрын

    Как хорошо, что у го есть своя идеология и люди, которые ее поддерживают и бьют по рукам новаторам. Вы хотите как в других языках, где ты нативный язык вообще можешь не знать, а должен знать десяток фреймворков и даже не понимаешь, что происходит, вокруг сплошная магия! Вам дали язык, он со всем справляется, практически, из коробки,если хочется добавить, то вот вам библиотеки) ну не нужно тянуть в него лишнее, орм и тд, и заставлять разработчика бороться и копаться в инструменте, а не в решении проблемы

  • @alexeyzverev852
    @alexeyzverev8522 жыл бұрын

    А можно в описание к видео добавить ссылки на затронутые ORM из доклада, а то перематывать и искать нужный момент не удобно. И спасибо за данное видео.

  • @ckbeg
    @ckbeg3 ай бұрын

    Классный доклад

  • @tuteyshey
    @tuteyshey2 жыл бұрын

    Клево, спасибо за доклад)

  • @RusRes
    @RusRes Жыл бұрын

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

  • @st.kevich
    @st.kevich Жыл бұрын

    Худшее что может сделать ORM - дать унифицированный доступ к любой БД. Звучит круто, а на деле просто отрезание всех уникальных фич ради которых и существуют разные БД.

  • @user-vg1sr9ye5s

    @user-vg1sr9ye5s

    Ай бұрын

    Я только ради этого и использую ОРМ. Нафиг не нужны эти фичи, если они влияют на синтаксис SQL и с одной на другую базу нужно переписывать код.

  • @maxpain177

    @maxpain177

    12 күн бұрын

    @@user-vg1sr9ye5s А у вас такое развлечение каждую неделю переходить на новую БД? Над большими проектами работали? Партиционирование таблиц использовали, к примеру?

  • @mocksoul
    @mocksoul Жыл бұрын

    если хотите ORM лучше не используйте SQL и всё.

  • @yuriiholenko6764
    @yuriiholenko6764 Жыл бұрын

    КГ\АМ

  • @beka777go
    @beka777go2 жыл бұрын

    Спасибо за доклад. было бы интересно узнать так же об prisma которая хорошо зарекомендовала себя в js, и добавляет поддержку golang

  • @yarbersheer8559

    @yarbersheer8559

    2 жыл бұрын

    Prisma Client Go is no longer officially maintained.

  • @ebriussenex9850

    @ebriussenex9850

    Жыл бұрын

    Там ещё бекенд самой ормки на расте, что довольно интересно

  • @borismor1
    @borismor1 Жыл бұрын

    Sqlc не упоминается

  • @vladislavdudnikov26

    @vladislavdudnikov26

    Жыл бұрын

    Видео старое, stable-версия sqlc вышла в 2020 только

  • @AndriiKuftachov
    @AndriiKuftachov10 ай бұрын

    Да, ORM - это круто! В проекте Doctrine делала два запроса в одном 12 JOIN, второй 8 JOIN. Руками переписал на запрос с одним JOIN и второй запрос к одной таблице. Главное, что для всех это было сюрпризом. P.S. Меня брали как Go Developer, но потом заставили опуститься до PHP.

  • @alex-0x6b
    @alex-0x6b9 ай бұрын

    ORM нужно уметь пользоваться. Не заставляйте ORM делать джойны выгребая все сразу, а старайтесь делать одиночные запросы. Джойны и в чистом SQL будут тормозить. Если хорошо оптимизировать орм, то она может работать быстрее всяких связок db/sqlx.

  • @greenbear8179

    @greenbear8179

    7 ай бұрын

    джоины в чистом скл тормозят только в слаборазвитых умах ормщиков.

  • @orl5990
    @orl5990Ай бұрын

    В больших и сложных проектах где очень сложные сущности и взаимоотношения между данными базы без ORM не обойтись. ORM снижает производительность впринципе. Но, это меньшее зло по сравнению с тем, что могут натворить шаловливые ручки программистов имеющих произвольный доступ к таблицам базы данных. Типичный пример - богомерзкий 1С, поумолчанию использует ORМ, управлять базой из 1500(ERP среднего предприятия) таблиц имеющих сложные взаимосвязи практически нереально.

Келесі