А, я уже забыл о таких.
Победили реализации, а не сама технология. Да и поприетарность сыграла свою роль, я думаю.
Андрей СветловТут вы попали в точку - никогда ни чем подобным на сях не пользовался. Посему могу и заблуждаться, но соль вопроса моего не в этом, а в целесообразности подобных решений именно при работе с питоном.
Я отчего-то не понял почему вы противопоставляете сохраненки и ORM?
И какие ORM, реализованные на С++, вам известны???
Всегда считал, что ноги начали расти из Java Hibernate.
Андрей СветловДа, я понимаю. Когда я писал на php, то очень удобно было работать с объектами, а не с массивами, которые возвращал стандартный интерфейс, да и в объектном воплощении работа с базой данных мне виделась более красивой. Но в питоне стандартная схема работы с БД показалась мне замечательной, и я не совсем понимаю зачем ее прятать за еще один слой абстракции. Потому и задал свой вопрос. Возможно есть примеры задач, где дополнительный слой упрощает логику, но я таких примеров не знаю. Если вы знаете, то приведите, если вамм не трудно.
ORM - это не обязательно способ реализации бизнес-логики на стороне клиента.
В первую очередь это объектно-ориентированный интерфес к БД.
Андрей СветловДа можно. Я для вычислительных целей стараюсь использовать чистый С - получаются очень простые и быстрые программы(библиотеки). В питоне - по мере надобности. Пока в основном для рисования GUI на PyQt. У вас есть доводы против такого подхода?
Думаю, вы в работе классы используете? Может, даже пишете в ООП стиле? И как, не жмет?
Ведь любую задачу можно решить функциональным способом!
Андрей СветловПросто мне показалось, что проще написать свои запросы в SQL чем возиться с объектами.
Сохраненки - это тоже по большому счету паллиатив. Мне каждый раз при создании чего-то по настоящему большого приходилось делать трехуровневую архитектуру.
То есть развитие идет так: ORM->сохраненки->сервисы. Плюс кеширование.
Не забывайте еще и о скорости создания конечного продукта. Чем проще - тем быстрее.
Андрей СветловНу можно рассмотреть конкретный случай, когда есть 2 реализации:
О произвдительности говорить считаю неприличным до того, как были произведены замеры для конкретного случая.
Ибо скорость сферического коня в вакууме практически равна скорости света.
ArdlingПростой пример: когда количеств параметров запроса заранее не известно, т.е. пользователь имеет в своем распоряжении конструктор отчета.
Еще раз говорю, что пока не сталкивался с необходимостью генерировать запросы на лету, если вы сталкивались, то поделитесь примерами, мне будет очень интересно.
select * from some_table where firm_id=1
select * from some_table where firm_id=1 and date between '20090101 01:01:01' and '20100101 01:01:01'
select * from some_table where firm_id=1 and contractor_id=2
select * from some_table a left join contractor c on c.contractor_id=a.contractor_id where firm_id=1 and c.contractor_type_id=2