Jan. 20th, 2012

ORM?

Jan. 20th, 2012 12:14 pm
metaclass: (Default)
Цитата из статьи с сайта 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 страниц вчера, сегодня налабал прототип софтины, а через год мне не нужно будет стоять в раскоряку на гамаке в скафандре, чтобы дорабатывать софтину в соответствии с изменившимися требованиями".
metaclass: (Default)
Про чтение книг по программированию.
http://theiced.livejournal.com/145249.html

Сразу скажу: я читаю книги про то, чего не знаю. С охуенным удовольствием прочел Эккеля "Философию Java", потому что там _базовые сведения_. Не "установите себе вижуал-студию-100500х и положите мышой кнопочку", а конкретно базовые данные, почти без воды.
Прочел "JavaScript The Good Parts", 170 страниц концентрированной информации.
Но блин, читать книжку про WCF или WPF или ASP.NET или MVC или еще какому-нибудь частному случаю частного фреймворка? Это же трындец.
Как можно использовать технологию, которая настолько антилогична, что требует 1000 страниц бумажного описания, при этом нормально ей пользоваться без этого, как минимум, затруднительно.
Т.е. кривая обучения выглядит как "за 15 минут написали хелловорлд, за месяц сделали прототип, а потом начались тонкости и приходится стоять враскоряку в гамаке годами". Это, имхо, ненормально.

PS: https://plus.google.com/u/0/108215660845587965071/posts/hNJVKKgUaHw
Еще один момент на тему тех же современных фреймворков.
"Внезапно оказывается, что не работает именно то, что тебе нужно".
Зато свистоперделок - выше крыши.

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 Aug. 9th, 2025 09:17 am
Powered by Dreamwidth Studios