TGViewer
melikhov.dev melikhov.dev @melikhov_dev · 4.74K subscribers
Post #131 1.65K
Маттео Коллина тут завлёк многих докладом I would never use an ORM. Смотришь на тайминг и думаешь «ох, нифига себе, 40 минут уничтожения ORM, надо больше попкорна». Но это, к сожалению, не совсем так. На самом деле, ругает ORM Маттео только в первой части, во второй он рекламирует свой новый инструмент/платформу Platformatic. Погнали по тейкам:

ORM очень много обещают. Мол, используйте меня и будет у тебя красота и простота в коде.

Модели много на себя берут. Управляют хранилищем и связями, хранят данные в памяти, содержат бизнес-логику. Но мы уже переросли концепцию MVC и структурируем приложения по фичам, нам не нужны жирные модели.

Мы должны решить, что для нас ценнее: возможность делать быстро повторяющиеся простые вещи, либо нам важнее максимальная гибкость для решения сложных задач.

ORM упрощают самую простую часть (описание схемы, миграции, простейшие запросы), но никак не помогают нам в решении сложных задач, которые нас настигнут позже. В конце концов, мы приходим к ручному написанию SQL и борьбе с типами.

Если мы общаемся с БД посредством ORM мы работает на минимальном уровне возможностей. Вместо всей мощи SQL мы используем какой-то упрощённый неявный срез фич. Например, PostgreSQL умеет работать с JSON-полями, но мы ждали годы, пока ORM дадут нам возможность строить по ним запросы.

Раз нам не нравятся повторяющиеся простые задачи и мы не хотим использовать ORM, то давайте просто сделаем платформу, где будет всё из коробки и нормально (тут он как раз презентует Platformatic).

Platformatic — это приложение поверх Fastify, построенное на плагинах. Все плагины доступны отдельно и их можно подключить в любое Fastify-приложение. Platformatic берёт на себя работу с БД, фактически это готовый бэкенд, который может отдавать REST и GraphQL и работать с любой популярной базой данных. Просто пишем миграции и иногда расширяем поведение плагинами, если чего-то не хватает.

Ну и в конце он задаётся вопросом — не написал ли он очередную ORM создав Platformatic? Решайте сами.

---

От себя добавлю, что независимо от того нравятся вам ORM или нет, я порекомендую к изучению код Platformatic. Маттео фигни не напишет.
YouTube I would never use an ORM - Matteo Collina | NodeConf EU 2022 What's an ORM? An Object-Relational Mapping tool (ORM) is a library to map a SQL table to a Class. Most ORMs force users to structure their code into Model objects that include both data access and business logic. Once upon a time, I did several projects…
  • 👍 21
  • ❤‍🔥 8
  • 🤔 2
  • 💯 2
  • ❤ 1
More from @melikhov_dev
  1. Sep 27, 2026https://www.aymannadeem.com/artificial/intelligence,/developer/tools/2026/09/24/plan-mode-…
  2. Sep 26, 2026Блин, ну нравятся мне TUI решения, сил нет. Просто, красиво и понятно (для меня). Продолжа…
  3. Sep 13, 2026Какой он — личный харнес? Вот мы и пришли в точку, когда уже бизнес не устраивает медленна…
  4. Aug 30, 2026Разобрал своего питонячего новостного бота и собрал нового, уже на Гермесе. Ну как собрал…
  5. Aug 24, 2026Вы могли наверное заметить что как-то мало меня стало в последнее время. Не видно на конфе…
  6. Aug 6, 2026Как же хорошо перечитывается сейчас «Трилогия Муравейника» Гибсона (она же Sprawl trilogy)…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →