ORM - хуйня? Так, хуйня

ORM - це концепція зв’язки даних з бази даних з об’єктами в об’єктно-орієнтовній мові програмування. Сутностям з бази даних створюються відповідні сутності в мові програмування. Взаємодія з базою даних перетворюється в звичайну роботу з об’єктами, наче ніякої бази даних і не існує.

Під цю концепцію створені цілі технології, як наприклад, Hibernate. Я працював з такою технологією пів року на одному проекті і декілька місяців на другому проекті. Потім я повернувся до класичного способу роботи з базою даних. І вже минуло декілька років з тих часів. Наразі ORM я згадую, як страшний сон, хочеться ригати. Це той випадок, коли усвідомлення приходить вже після, наскільки ж велику купу гівна тобі довелося з’їсти.

ORM це приблизно як амерікано. Всі його купляють, це популярно, розбавляють цукром, молоком. Але гівно є гівно. База даних не об’єктно-орієнтовна, не треба намагатися її перетворити в це. Так ми лише втратимо всі переваги бази даних, зв’яжемо собі руки, отримаємо купу накладної роботи. Я не розумію, чому великі компанії використовують ORM, вони всі йобнуті.

Найкраща модель взаємодії з базою даних це гібридний спосіб, який поєднує DAO і прямі запити. В DAO виносяться часті запити, щоб не дублювати їх в коді, а також в DAO можна винести кешування. А всі інші запити робляться напряму “на місці”. Всі запити пишуться на SQL. Той, хто боїться SQL і міграцій між різними СУБД, той лох. Міграція відбувається максимум декілька разів за життя проекта, а частіше за все нуль разів. А навіть якщо і відбувається міграція, переписати доведеться всього декілька запитів з СУБД-залежним кодом, а частіше за все це нуль запитів.

ORM гавно кста.

1 Вподобання