Найти в Дзене
~/underground

ORM — Объектно-Реляционное Мракобесие

ORM — Объектно-Реляционное Мракобесие На старте ORM — как сахар для стартапа: сладко, удобно, абстракция всё сделает. User.query().filter(...) — и ты как будто пишешь бизнес-логику, а не SQL. Первые месяца три — кайф. А потом приходит зрелость, и с ней — боль. 🔥 ORM в зрелом проекте — это когда ты хочешь управлять SQL, а управляешь болью. — Невозможно отловить, какой именно запрос падает: он же сгенерирован магией. — Оптимизировать нечего — ORM сам решил, как делать JOIN. — Ты хочешь control — а получаешь circus. И вот ты уже дебажишь eager loading и N+1 как будто это твоё хобби. Худшее — абстракция убеждает тебя, что SQL "не важен". Ты забываешь, что БД — не объектный стор, а отдельная вселенная с логикой, индексами, транзакциями. ORM тебе эту вселенную мапит на земную боль. 💡 Правда такая: ORM годится на старте. Но в зрелом проекте тебе нужны: — Явные SQL-запросы — Контроль над транзакциями — Предсказуемость — Читаемость не только кода, но и логов БД 🔪 ORM — это когда тебе

ORM — Объектно-Реляционное Мракобесие

На старте ORM — как сахар для стартапа: сладко, удобно, абстракция всё сделает.

User.query().filter(...) — и ты как будто пишешь бизнес-логику, а не SQL.

Первые месяца три — кайф.

А потом приходит зрелость, и с ней — боль.

🔥 ORM в зрелом проекте — это когда ты хочешь управлять SQL, а управляешь болью.

— Невозможно отловить, какой именно запрос падает: он же сгенерирован магией.

— Оптимизировать нечего — ORM сам решил, как делать JOIN.

— Ты хочешь control — а получаешь circus.

И вот ты уже дебажишь eager loading и N+1 как будто это твоё хобби.

Худшее — абстракция убеждает тебя, что SQL "не важен".

Ты забываешь, что БД — не объектный стор, а отдельная вселенная с логикой, индексами, транзакциями.

ORM тебе эту вселенную мапит на земную боль.

💡 Правда такая:

ORM годится на старте.

Но в зрелом проекте тебе нужны:

— Явные SQL-запросы

— Контроль над транзакциями

— Предсказуемость

— Читаемость не только кода, но и логов БД

🔪 ORM — это когда тебе дают нож, завернутый в плюшевый мишку.

На вид — безопасно.

На деле — кривая бойня.

Итог:

ORM — не зло.

Но зрелый проект — это про управление сложностью, а не про избежание её.

SQL — это тоже код. Его нужно писать. И понимать.

#ORM #базыданных #backend #undercode