ORM?

Jan. 20th, 2012 12:14 pm
metaclass: (Default)
[personal profile] metaclass
Цитата из статьи с сайта NHibernate, про то, "как использовать NHibernate с legacy базами, где в поле для внешней ссылки без значения ставят 0 вместо null":
"NHibernate is bad in many aspects, but the only thing we can’t blame is extensibility."
и далее - бездны ада и конфигурации NHibernate для этого частного случая.
Заодно глянул во внутренности NHibernate, класс Dialect, посмотреть, как же они реализовали работу с различными СУБД. около 150 методов, из них около 50 - bool флаги на тему "поддерживается ли эта фича"/"расположена фича до или после запроса", около 80 - "какая строка нужна для реализации этой фичи до запроса/после запроса" и тому подобное.
Особенно стремно выглядит работа с identity/sequence и прочими автогенерируемыми первичными ключами.
В общем, внутренности ORM кромешно адовы, а когда язык не позволяет метапрограммирование хоть как-то - там вообще холокост.

Это ж я все по поводу айсед-дотнет-срача (http://theiced.livejournal.com/143962.html) пытаюсь понять, может я все-таки не прав, и готовыми либами все-таки можно пользоваться и они не будут выворачивать мозг наизнанку от осознания того, что их авторы умеют хорошо программировать, но не понимают, что они делают с точки зрения теории.

Т.е. у меня идея такая: если в основе технологии лежит грамотная и проработанная теоретическая модель - ей легко пользоваться, она помещается в мозг и технология будет реализована более-менее однообразно.
А когда это сделано на основе ad-hoc бреда, рассчитано на фабрики из сотен индусов, вручную рисующих в вижуал-студии диаграммы и дорабатывается по принципу "что попросил vip-клиент из Бразилии" - то пользоваться этим белому человеку невозможно.
Если же базовая модель не проработана, то даже при наличии стандартов будет стопицот реализаций, одна другой страшнее и у каждой будут свои пропоненты, все аргументы которых сводятся к одному "я использую эту технологию 5 лет и у меня нет никаких проблем с ней никогда".
А правильный аргумент должен быть "я про эту технологию слышал раньше, прочитал 100 страниц вчера, сегодня налабал прототип софтины, а через год мне не нужно будет стоять в раскоряку на гамаке в скафандре, чтобы дорабатывать софтину в соответствии с изменившимися требованиями".

Date: 2012-01-20 09:54 am (UTC)
From: [identity profile] vp.livejournal.com
Ну есть такая модель продаж, приходят к клиенту. У вас есть оракл? Отлично, "ставим под оракл". Нет оракла? Поставим базу "на текстовых файлах" :)

Date: 2012-01-20 09:58 am (UTC)
From: [identity profile] fraks-nsk.livejournal.com
Если софт требует оракла - то и надо затачивать на оракла.
Если софт нормально работает с текстовыми файлами - нафига ему оракл?
И это ж на каком примитивном уровне надо юзать сервер БД что бы оно нормально перенеслось?

Date: 2012-01-20 10:00 am (UTC)
From: [identity profile] vp.livejournal.com
Именно!!! Когда у вас таблички в 2 столбца типа "пользовтаель - пароль", или "артикль - название", как массово у народа в вебах, у них понятия о базах данных вполне сводятся к едреному универсализму. И все эти вещи, которые вы тут пишете, становятся для них похожими на пеправду :)

Мы сами на фаерберд в 5-ти проектах залочились по самое немогу.

Date: 2012-01-20 10:04 am (UTC)
From: [identity profile] fraks-nsk.livejournal.com
Кстати, по теме топика. Все это DB_Aware в дельфях мне кажется тоже подвидом ORM-а - я сделал себе буфер, по типу ClientDataSet но только не DV-Aware - и привязку оного к гриду. И мне больше ничего не надо. Запрос к базе выдает прямоугольную табличку - я ее складываю в буфер и юзаю. В табличку стараюсь запрашивать уже не требующее обработки, или обработка минимальна.

Date: 2012-01-20 10:16 am (UTC)
From: [identity profile] metaclass.livejournal.com
Так я точно так же делаю.

Date: 2012-01-20 10:40 am (UTC)
From: [identity profile] inhate.livejournal.com
Ну хорошо. Предположим, сервер требует надежную взрослую БД.
Например, Oracle.
А у клиента DB2 и набор гуру под него. Покупать отдельно Oracle для данной софтины дорого, нанимать основного и резервного ораклоида - еще дороже.
Достаточно редко получается иметь в шатате гуру хотя бы по основным возможным для разработчика БД и ОС.

Date: 2012-01-20 01:07 pm (UTC)
From: [identity profile] bydl0coder.livejournal.com
Коробочный должен с любыми базами работать.

Date: 2012-01-20 03:47 pm (UTC)
From: [identity profile] fraks-nsk.livejournal.com
Даже образец коробочно-допилочного софта "один це" работать искаропки может только с MS SQL и при некоторой ловкости рук - с Postgre SQL, но даже с постгрессом у одинце совместимость не полная ибо там логика работы с блокировками другая, в самом сервере - и без допиливания адекватно под нагрузкой не работает.

Или еще вариант - DBF, хотя восмерка уже может и не умеет с ними работать.

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Oct. 3rd, 2025 10:07 pm
Powered by Dreamwidth Studios