SQL

Приведите примеры удачного использования драйверов БД во фреймворках, более высокоуровневых, чем SQL.

То есть когда программист не залезает в программирование SQL запросов, а использует модель средствами языка программирования + библиотеки фреймворка MVC. И насколько это удобней?
Денис Мохов
Денис Мохов
8 520
вопрос некорректно стоит. если говорить об уровнях, SQL - единственный широко используемый язык программирования четвертого поколения. языка программирования более высокого уровня еще не изобрели. потому когда используешь библиотеку или фреймворк, скрывающий SQL внутри, то это не повышение уровня, а оболочка, причем на языке третьего поколения (например C), то есть более низкого уровня.

с оболочками такого рода вопрос стоит не в том, что она делает, а в том для чего и как она это делает. в общем случае использование оболочки дает overhead, то есть снижение производительности и рост потребления ресурсов. кроме этого оболочка почти всегда снижает гибкость использования. потому удачное использование таких оболочек встречается в узких задачах.

например, имеется высоконагруженная система и для снижения этой нагрузки вводится дополнительный уровень абстракции между действиями пользователя и СУБД с тем, чтобы DDL шел не по мере фактической потребности, а пакетами. запросы данных, при этом, также брались не из СУБД, а из кэша, где возможно. тут возникает куча нюансов про согласование, но в рамках узкой задачи они разрешимы. я видел реализации, позволяющие снизить загрузку до 50% таким подходом.

MVC в типичном случае - это штука исключительно для удбства разработки. плюса у нее ровно 2:
1. снижение трудоемкости создания интерфейса пользователя.
2. стандартизация интерфейса пользователя.
остальное - стандартные минусы: overhead и снижение гибкости использования. в случае коммерческих фреймворков сборка интерфейсов пользователя на таких сложных компонентах почти наверно приводит к проблемам нарушения обратной совместимости, то есть сокращает цикл эксплуатации ПО, что в свою очередь повышает стоимость эксплуатации системы.

короче, для всякой мелочи - нормальный хороший подход. для промышленного ПО - есть многие нюансы. конкретные примеры использования такого подхода - .Net, VCL, Qt, Java, практически любой современный скриптовый язык.
we
westxamer
11 370
Лучший ответ
Вы про ORM?