Re: Зачем нужен ORM?
От: takTak  
Дата: 29.09.18 20:30
Оценка:
а зачем тебе это надо знать?
Re[3]: Зачем нужен ORM?
От: Rhino СССР  
Дата: 29.09.18 20:57
Оценка:
Здравствуйте, Titus, Вы писали:

R>>"Чистые" ДБА-специалисты как бы денег не меньше программистов себе требуют

T>1) database administrator — не программист.
T>2) Плохо тот программист, кто не знает ЯМД.
Сорян.
Судя по ответам, ты себе здесь бенефис устроил. Факт, тебе абсолютно не интерсны плюсы и минусы ОРМ.
Продолжайте без меня.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[4]: Зачем нужен ORM?
От: Titus  
Дата: 29.09.18 21:48
Оценка:
Здравствуйте, Rhino, Вы писали:
R>Судя по ответам, ты себе здесь бенефис устроил. Факт, тебе абсолютно не интерсны плюсы и минусы ОРМ.

Единственному человеку, который описал +/- ORM я поставил +1
Но ты этого не заметил.

R>Продолжайте без меня.

bye
Re[3]: Зачем нужен ORM?
От: Somescout  
Дата: 30.09.18 04:23
Оценка:
Здравствуйте, Titus, Вы писали:

T>А еще 5000 таблиц в БД, где с точки зрения 3НФ достаточно 50 таблиц.

T>Жуткие противоречия в данных, двойной/тройной ввод пользователей и прочие прелести паттерна "лебедь рак и щука".

Бред.
ARI ARI ARI... Arrivederci!
Re[2]: Зачем нужен ORM?
От: Titus  
Дата: 30.09.18 08:58
Оценка:
Здравствуйте, takTak, Вы писали:

T>а зачем тебе это надо знать?


Я так подумал, и понял, что изначально задал вопрос недостаточно точно, хотя, судя по ответам, большинством респондентов был правильно понят.

ORM (Object Relational Mapping, т.е. карта между объектами приложения и объектами БД), конечно же, я использовал и использую. Причем, в ярко выраженной форме я это начал делать довольно давно, после того как познакомился, осознал и принял на вооружение паттерн MVC. Буква M просто создана для этого мэппинга.

Но именно тогда, немного поиграв с Entity Framework, не осознал преимуществ и не принял на вооружение это ORM решение. У меня нет задачи «обеспечить работу с данными в терминах классов, а не таблиц», нет задачи «избавиться от необходимости писать SQL-код для взаимодействия в СУБД». Я считаю, что язык SQL идеально подходит для работы с реляционными БД, его синтаксис оттачивался десятилетиями.
Т.е. ORM я использую, но это 100% hand made, без каких-то ORM библиотек.

В связи с недавними событиями, о которых я писал выше, захотел я еще раз провалидировать: правильный ли вывод о бесполезности ORM сделал много лет назад.

В нашей жизни есть много инструментов, которые нужны одним, и не нужны другим: очки нужны близоруким и не нужны людям со 100% зрением, костыли нужны тем, кто испытывает временные трудности с ногами и не нужны тем, кто таких трудностей не испытывает. Возможно, что и ORM нужен людям с ограниченными в чем-то возможностями.

В идеале, лучшим ответом в этом топике был бы такой: вот смотри, есть задача такая-то. Без ORM библиотеки она решается за N часов, с использованием ORM библиотеки она решается за M часов. Причем M<N в K раз.

Пока была только одна попытка такого ответа, и по моим меркам M оказалась, как минимум, не меньше, чем N.
Re[4]: Зачем нужен ORM?
От: Titus  
Дата: 30.09.18 09:06
Оценка:
Здравствуйте, Somescout, Вы писали:

S>Бред. Спорить с дураком — всё равно, что играть в шахматы с голубем. Он раскидает фигуры, нагадит на доску и улетит всем рассказывать, как он тебя уделал.


В принципе, для того, чтобы сказать всем, что ты меня уделал — очень сильный, развернутый, а главное, универсальный аргумент
Re[5]: Зачем нужен ORM?
От: Somescout  
Дата: 30.09.18 09:09
Оценка:
Здравствуйте, Titus, Вы писали:

T>В принципе, для того, чтобы сказать всем, что ты меня уделал — очень сильный, развернутый, а главное, универсальный аргумент


Это просто подпись, но если хочется к ней придраться — вперёд. Но то что ORM автоматически "раздувает в 10 (пардон, в 100) раз количество таблиц" бредом от этого быть не перестанет.
ARI ARI ARI... Arrivederci!
Отредактировано 30.09.2018 9:10 Somescout . Предыдущая версия .
Re: Зачем нужен ORM?
От: Cyberax Марс  
Дата: 30.09.18 09:12
Оценка: +2 :)
Здравствуйте, Titus, Вы писали:

T>А если никто не заставляет тебя пользоваться ORM, и при этом ты умеешь таблицы, схемы и запросы составлять непосредственно к/в СУБД? — зачем в этом случае нужен ORM.

Поубивал бы этих "программистов СУБД", после них остаётся самое неподдерживаемое гуано в мире. Вида "смотрите какой я крутой DBA и какие у меня крутые запросы!!!"
Sapienti sat!
Re[5]: Зачем нужен ORM?
От: Muxa  
Дата: 30.09.18 09:51
Оценка:
bnk>>Обычно это не так, и разработка+поддержка с ORM заметно более эффективна в плане временных затрат, чем написание sql в коде.
T>Вот бы где вменяемый пруф найти...
то есть фактов наличия и использования этих самых ORM тебе недостаточно в качестве пруфов?
Re[3]: Зачем нужен ORM?
От: takTak  
Дата: 30.09.18 09:58
Оценка:
T>Пока была только одна попытка такого ответа, и по моим меркам M оказалась, как минимум, не меньше, чем N.

ну ты же не можешь прямо из программы посредством какого-то там вызова API производить операции в реляционных базах данных, т.е. сам язык SQL — не самое идеальное инженерное решение, тем более, что ты сам сказал: ты используешь написанный тобой лично на коленке мэппинг

подсчитай время на его создание, подумай о том, сколько разных сценариев использования этого мэппинга на свете может быть, да просто выложи своё решение, раз ты считаешь, что оно вполне себе самодостаточное на gitHub, и ты увидишь, что даже какой-нибудь Dapper, скорее всего , ушёл гораздо дальше твоего решения в простоте использования и т.д. просто в силу того того, что времени на него было потрачено в тысячи раз больше, миллионы пользователей протестировали почти все уголки и возможные баги, т.е. им или тем же EF просто банальнo проще и безопаснее пользоваться
Отредактировано 30.09.2018 9:59 takTak . Предыдущая версия .
Re[3]: Зачем нужен ORM?
От: Muxa  
Дата: 30.09.18 10:03
Оценка:
scf>>- низкие требования к квалификации программистов
T>Вот тут как раз и вопрос: если ты высококвалифицированный программист, что тебе даст ORM?
Очевидно же: команда не таких высококлассных специалистов как ты, которой ты управляешь, все-равно пишет высококлассные приложения БД, даже не догадываясь что такое LEFT RIGHT OUTER JOIN
Re: Зачем нужен ORM?
От: namespace  
Дата: 30.09.18 10:45
Оценка:
T>А если никто не заставляет тебя пользоваться ORM, и при этом ты умеешь таблицы, схемы и запросы составлять непосредственно к/в СУБД? — зачем в этом случае нужен ORM.
Для маппинга, и только. Ни один орм не умеет оптимально генерировать сложные запросы. А читать эти сложные запросы — проще повеситьсяподсмотреть в профайлере. Максимум что можно — написать выборку с where.
А без маппинга много ручной работы.
Re[6]: Зачем нужен ORM?
От: Titus  
Дата: 30.09.18 10:57
Оценка:
Здравствуйте, Muxa, Вы писали:

bnk>>>Обычно это не так, и разработка+поддержка с ORM заметно более эффективна в плане временных затрат, чем написание sql в коде.

T>>Вот бы где вменяемый пруф найти...
M>то есть фактов наличия и использования этих самых ORM тебе недостаточно в качестве пруфов?
Именно так. "Все так делают" — для меня не аргумент.
Re[6]: Зачем нужен ORM?
От: Titus  
Дата: 30.09.18 10:58
Оценка:
Здравствуйте, Somescout, Вы писали:

S>"ORM автоматически "раздувает в 10 (пардон, в 100) раз количество таблиц"

Ты эту цитату прочитал где или сам придумал?
Re[4]: Зачем нужен ORM?
От: Titus  
Дата: 30.09.18 11:03
Оценка:
Здравствуйте, takTak, Вы писали:

T>, и ты увидишь, что даже какой-нибудь Dapper, скорее всего , ушёл гораздо дальше твоего решения в простоте использования и т.д.


Собственные эксперименты проведены давно и выводы сделаны. Возможно, эксперименты были некорректны. Так бывает иногда.
Нужен пруфлинк на корректный эксперимент.
Re[2]: Зачем нужен ORM?
От: Titus  
Дата: 30.09.18 11:13
Оценка: +1 -1 :))
Здравствуйте, Cyberax, Вы писали:

C>Поубивал бы этих "программистов СУБД", после них остаётся самое неподдерживаемое гуано в мире. Вида "смотрите какой я крутой DBA и какие у меня крутые запросы!!!"

Ба, кровожадный активист диванных войск из политического флейма к нам пожаловал.
Ты хоть знаешь, чем отличается DBA от программиста?

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

-А кто вам дом строил ?
-Да пидорасы

— В смысле? 

-Залили фундамент, пришли каменщики стены класть и спрашивают а что за пидорасы вам фундамент заливали? после них пришли штукатуры и первым делом спросили а что за пидорасы стены ложили? потом пришли обойщики спросили а что за пидорасы штукатурили?

И так во всём. Вот и получается что дом строили одни пидорасы.

Re[5]: Зачем нужен ORM?
От: takTak  
Дата: 30.09.18 11:22
Оценка:
T>>, и ты увидишь, что даже какой-нибудь Dapper, скорее всего , ушёл гораздо дальше твоего решения в простоте использования и т.д.

T>Собственные эксперименты проведены давно и выводы сделаны. Возможно, эксперименты были некорректны. Так бывает иногда.

T>Нужен пруфлинк на корректный эксперимент.


всё правильно, проверка на практике- критерий истины,
я сам с проблемами с производительностью EF не сталкивался, но слышал мнение тех,кто выжимает каждую наносекунду:
да, работа через DataReader- самая быстрая, но и если взять мэппер попроще, типа Dapper — то тоже вполне проканывает даже для наносекундников, зато руками ужасов нашего маленького городка () => ExecuteScalar() == DBNull.Value ? 0 : (double)command.ExecuteScalar() писать не надо,
хотя буквально на днях я таким вот ручным "мэппингом" занимался: просто надо было для трёх таблиц DAL написать, ну я и написал, без всякого EF, но было бы таблиц 7 или больше, я бы такой ерундой не страдал бы, конечно

выложи своё чудо-решение в GitHub, которое так же удобно и комфортно, как Dapper, кто-нибудь даже туда заглянет и скажет чего путное, хотя я сомневаюсь, что там что-то путное и полезное будет, я уже много всего такого повидал, и самописные Wrappers вокруг ADO.Recordset & ADO.Template в Spring.NET & EF & etc.
Re[2]: Зачем нужен ORM?
От: Titus  
Дата: 30.09.18 11:25
Оценка:
Здравствуйте, namespace, Вы писали:

T>>А если никто не заставляет тебя пользоваться ORM, и при этом ты умеешь таблицы, схемы и запросы составлять непосредственно к/в СУБД? — зачем в этом случае нужен ORM.

N>Для маппинга, и только.

Ну вот здесь, я, пожалуй, соглашусь. Во всяком случае, давно сделал себе небольшую генерилку классов из из БД.
Кстати, не я один такой. Пример такой генерилки, можно найти в интернетах, здесь, например https://stackoverflow.com/questions/5873170/generate-class-from-database-table
Обратите внимание на размер сорс кода этого "ORM" — 59 строчек.
Но это принцип, прямо противоположный принципу "Code First".
Re[3]: Зачем нужен ORM?
От: Cyberax Марс  
Дата: 30.09.18 11:42
Оценка:
Здравствуйте, Titus, Вы писали:

C>>Поубивал бы этих "программистов СУБД", после них остаётся самое неподдерживаемое гуано в мире. Вида "смотрите какой я крутой DBA и какие у меня крутые запросы!!!"

T>Ба, кровожадный активист диванных войск из политического флейма к нам пожаловал.
T>Ты хоть знаешь, чем отличается DBA от программиста?
Да, знаю. DBA дожидается пенсии и сидит, корчя вид, что он занимается очень мудрыми вещами, крутя очередные настройки tablespace в очередном копролите от Оракла.
Sapienti sat!
Re[2]: Зачем нужен ORM?
От: Rhino СССР  
Дата: 30.09.18 11:47
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Поубивал бы этих "программистов СУБД", после них остаётся самое неподдерживаемое гуано в мире. Вида "смотрите какой я крутой DBA и какие у меня крутые запросы!!!"

Справедливости ради, уровень дбашников повыше уровня вебщиков будет. Ну и запросы они ускоряют только в путь в несколько раз и на порядки не только путём покупки 96 Гб ОЗУ на сервер
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.