Почему стоит отказаться от ORM?

Современные ORM, вроде Hibernate или SQLAlchemy, создают дополнительный уровень абстракции, требуя от разработчиков изучения как минимум двух языков: SQL и языка запросов ORM. Это удваивает объем знаний, необходимых для работы с базой данных, и часто приводит к проблемам с производительностью и композицией сложных запросов.
Почему стоит отказаться от ORM?
Изображение носит иллюстративный характер

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

Ключевым моментом является прямое использование SQL, что позволяет проверять запросы и типы аргументов на этапе компиляции и автоматически выводить типы результатов. Это унифицирует типовое пространство между бэкендом и схемой базы данных, упрощая разработку.

Предлагаемый подход не является новым витком развития ORM, вроде ActiveRecord или QueryBuilder, которые по сути являются ORM-подходами. Основная идея – использовать нативный SQL и базовый API для взаимодействия с базой данных, что потенциально упрощает и ускоряет разработку.


Новое на сайте

20959Что известно о предупреждении mSecure и какие меры принять? 20957Что делать администраторам cPGuard после взлома канала обновлений? 20956Бэкдор в телевизоре: как Google остановила сеть из 1,3 млн Android-устройств 20955Кто может получить доступ к кошелькам через плагин CryptoPayment Gateway? 20954Критическая уязвимость Siemens IoT2050 открыла путь к удалённым командам 20953Взлом Chainstack: под угрозой оказались данные клиентов и хеши паролей 20952Четыре проверки, которые помогают найти уязвимости с реальным риском 20951Две уязвимости Barracuda открывают путь к root-доступу 20950Почему устаревшие Synology NAS снова оказались мишенью вымогателей? 20949Старая техника Apple получила заплатку для опасной уязвимости 20948Как три уязвимости открыли ShinyHunters путь к серверам PeopleSoft? 20947Может ли ИИ сам собрать уязвимости в работающий взлом? 20946Уязвимость CVSS 10.0 в LXD и MicroCloud позволяет выдать себя за доверенного клиента 20945Google разрешит устанавливать приложения из сторонних магазинов одним нажатием
Ссылка