Re[10]: Нужен ли DAO для Hibernate ORM
От: IT Россия linq2db.com
Дата: 08.05.07 23:46
Оценка:
Здравствуйте, C0s, Вы писали:

C0s>странно, что у меня такой проблемы нет. для меня hibernate — это инструмент реализации БЛ, связанной с необходимостью манипулировать и извлекать данные в БД.

C0s>выше БЛ (презентационному уровню, комманд-лайн утилитам выполнения ночных задач, методам интеграции с внешними системами) наличие hibernate не видно в принципе. все эти субстанции видят только БЛ-API и связаны с ним только через структуры данных, под это API написанные

Это легко обоъясняется. Скорее всего ты хорошо знаком с хибернейтом и чётко следуешь его правилам при построении своей архитектуры. В резултате у вас получается полная идилия
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[11]: Нужен ли DAO для Hibernate ORM
От: C0s Россия  
Дата: 09.05.07 00:08
Оценка:
Здравствуйте, IT, Вы писали:

C0s>>странно, что у меня такой проблемы нет. для меня hibernate — это инструмент реализации БЛ, связанной с необходимостью манипулировать и извлекать данные в БД.

C0s>>выше БЛ (презентационному уровню, комманд-лайн утилитам выполнения ночных задач, методам интеграции с внешними системами) наличие hibernate не видно в принципе. все эти субстанции видят только БЛ-API и связаны с ним только через структуры данных, под это API написанные

IT>Это легко обоъясняется. Скорее всего ты хорошо знаком с хибернейтом и чётко следуешь его правилам при построении своей архитектуры. В резултате у вас получается полная идилия


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

если же продолжать рассуждать о технической стороне подхода, то для меня гораздо менее важно, насколько я буду отвязан снизу уровня БЛ от ORM/БД/DAO/всё-что-угодно, и, наоборот, более важно зафиксировать интерфейсы и структуры данных БЛ, которые видны вышележащему слою.
Re[15]: Нужен ли DAO для Hibernate ORM
От: Cyberax Марс  
Дата: 09.05.07 00:35
Оценка:
Здравствуйте, IT, Вы писали:

C0s>>ps. ессно, наличие такой фичи имхо следует воспринимать как наличие спецподушки безопасности, что если вдруг так сложится, что что-то не ляжет по каким-то критериям (быстродействия, быстроприкручивания и т.п.) в стройную картину hibernate-подхода, то всегда остаётся возможность низкоуровневого доступа к данным (на свой риск получить трудноподдерживаемый код)

IT>Т.е. фактически такая возможность является документированной дыркой в заборе, через которую можно туда сюда таскать неучтённые данные. Я правильно понимаю?
В Hibernate при желании можно вообще почти все переписать — там внутри архитектура построена на событиях. В частности, Google так и сделал для добавления поддержки горизонтального разделения данных.

Естественно, можно через эту дырку при желании все нафиг порушить. Но это сам себе — http://www.yaplakal.com/images/1809924.jpg

Я вот не понимаю, мне на форуме вещают о негибкости Hibernate, а примеров этой негибкости я так и не вижу...
Sapienti sat!
Re[15]: Нужен ли DAO для Hibernate ORM
От: Cyberax Марс  
Дата: 09.05.07 00:38
Оценка: +1
Здравствуйте, IT, Вы писали:

C>>В Hibernate можно кастомизировать все этапы жизни — ты можешь загрузить объект руками через SQL и воткнуть его в сессию при желании, можешь выдирать объекты из сессии, обновлять и т.п.

IT>Дело в том, что мне вообще сессия не нужна.
Эээ... А откуда у тебя будет соединение с БД браться? А сохранение идентичности у тебя поддерживается?

Кстати, в Hibernate есть легковесная сессия, которая фактически просто оборачивает соединение с БД и вообще не делает ничего лишнего.

IT>Я без неё прекрасно обхожусь. При этом что касается быстродействия, расширяемости, гибкости и простоты кода, то любой хибернейт уплачется самыми горючими слезами.

По сравнению с BL Toolkit? Прости, но Hibernate удобнее.
Sapienti sat!
Re[13]: Нужен ли DAO для Hibernate ORM
От: Cyberax Марс  
Дата: 09.05.07 00:42
Оценка:
Здравствуйте, IT, Вы писали:

C>>Однако, слой бизнес-логики все равно в нормальном приложении присутствует. Так как приложения, которые просто работают интерфейсами к таблицам в базе, я вообще серьезными приложениями не считаю.

IT>Это уже пенисометрия пошла.
Почему? Ну не считаю я простые интерфейсы к БД чем-то заслуживающим внимания. Да, они нужны, но мне абсолютно неинтересны — со времен Delphi тут уже все осовено.

IT>А если так, то я, например, считаю, что 80% логики в 80% "серьёзных" приложений являются результатом кривого дизайна, жестокого хардкода и затычек, необходимых для выкривления кривизны первого и второго.

Например, для бухгалтерии теперь вычисление зарплаты (с учетом overtime, праздников, отпусков, больничных) — это следствие кривизны, так как на модель данных плохо отображается?

А еще есть BPM-системы — это тоже кривость?
Sapienti sat!
Re[16]: Нужен ли DAO для Hibernate ORM
От: IT Россия linq2db.com
Дата: 09.05.07 01:06
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Я вот не понимаю, мне на форуме вещают о негибкости Hibernate, а примеров этой негибкости я так и не вижу...


Где его обвиняли в негибкости?
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[16]: Нужен ли DAO для Hibernate ORM
От: IT Россия linq2db.com
Дата: 09.05.07 01:06
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Эээ... А откуда у тебя будет соединение с БД браться?


Из кеша ADO.NET.

C>А сохранение идентичности у тебя поддерживается?


Это когда два разных запроса одних и тех же данных возвращают один и тот же объект? Я этими глупостями уже не занимаюсь. Такой дипазал, что в нём больше проблем, чем преимуществ.

C>Кстати, в Hibernate есть легковесная сессия, которая фактически просто оборачивает соединение с БД и вообще не делает ничего лишнего.


Ещё одна дырка в заборе?

IT>>Я без неё прекрасно обхожусь. При этом что касается быстродействия, расширяемости, гибкости и простоты кода, то любой хибернейт уплачется самыми горючими слезами.

C>По сравнению с BL Toolkit? Прости, но Hibernate удобнее.

Да ради бога, я разве против Нравится, пользуйся. Не нравится, не пользуйся. По мне так ни то, ни другое не является идеалом. Cегодня вообще смотреть нужно в сторону dsl'ей.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[14]: Нужен ли DAO для Hibernate ORM
От: IT Россия linq2db.com
Дата: 09.05.07 01:22
Оценка:
Здравствуйте, Cyberax, Вы писали:

IT>>Это уже пенисометрия пошла.

C>Почему?

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

C>Ну не считаю я простые интерфейсы к БД чем-то заслуживающим внимания. Да, они нужны, но мне абсолютно неинтересны — со времен Delphi тут уже все осовено.


IT>>А если так, то я, например, считаю, что 80% логики в 80% "серьёзных" приложений являются результатом кривого дизайна, жестокого хардкода и затычек, необходимых для выкривления кривизны первого и второго.

C>Например, для бухгалтерии теперь вычисление зарплаты (с учетом overtime, праздников, отпусков, больничных) — это следствие кривизны, так как на модель данных плохо отображается?

Есть много путей решения, всё зависит от требований. А вот ответь ты мне. Что насчёт ввода табеля, ввода праздников, отпусков и больничных, новых работников и изменения их параметров. Это уже не зарплата, или здесь у тебя тоже супер навороченная бизнес логика? А может это всё-таки те самые 80% любой задачи?

C>А еще есть BPM-системы — это тоже кривость?


К моему стыду, не знаю что это такое.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[15]: Нужен ли DAO для Hibernate ORM
От: Cyberax Марс  
Дата: 09.05.07 13:56
Оценка:
Здравствуйте, IT, Вы писали:

IT>>>Это уже пенисометрия пошла.

C>>Почему?
IT>Потому что при желании большинство задач можно свести к интерфейсу к БД, а можно любую самую простую реализовать кучей непонятно что и зачем делающего кода.
Я бы сказал, что при желании большинство задач можно на 80%-90% свести к интерфейсу с БД.

C>>Например, для бухгалтерии теперь вычисление зарплаты (с учетом overtime, праздников, отпусков, больничных) — это следствие кривизны, так как на модель данных плохо отображается?

IT>Есть много путей решения, всё зависит от требований. А вот ответь ты мне. Что насчёт ввода табеля, ввода праздников, отпусков и больничных, новых работников и изменения их параметров. Это уже не зарплата, или здесь у тебя тоже супер навороченная бизнес логика? А может это всё-таки те самые 80% любой задачи?
Так я не возражаю. Я только говорю, что обычно эта часть не представляет особого интереса. Там все по большей части достаточно просто и вполне хватает средств, которые существуют уже лет 10.

C>>А еще есть BPM-системы — это тоже кривость?

IT>К моему стыду, не знаю что это такое.
http://en.wikipedia.org/wiki/Business_Process_Management
Sapienti sat!
Re[17]: Нужен ли DAO для Hibernate ORM
От: Дм.Григорьев  
Дата: 09.05.07 16:29
Оценка:
Здравствуйте, IT, Вы писали:

IT>Cегодня вообще смотреть нужно в сторону dsl'ей.


Можно ссылочку на "что это такое?"
Спасибо.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
http://dimgel.ru/lib.web — thin, stateless, strictly typed Scala web framework.
Re[18]: Нужен ли DAO для Hibernate ORM
От: Mika Soukhov Stock#
Дата: 10.05.07 07:59
Оценка: 6 (1)
Здравствуйте, Дм.Григорьев, Вы писали:

ДГ>Здравствуйте, IT, Вы писали:


IT>>Cегодня вообще смотреть нужно в сторону dsl'ей.


ДГ>Можно ссылочку на "что это такое?"

ДГ>Спасибо.

http://blogs.gotdotnet.ru/personal/allo/PermaLink.aspx?guid=8b96b298-edfb-4f45-b2c8-89f1a3ed610e
Re[15]: Нужен ли DAO для Hibernate ORM
От: IB Австрия http://rsdn.ru
Дата: 10.05.07 08:15
Оценка:
Здравствуйте, C0s, Вы писали:

C0s>моими DTO никакой ORM не управляет, они рождаются на уровне БЛ

Во. А я толкую о том, что рождаться они должны на уровне DAL ибольше ни во что не трансформироваться.
... << RSDN@Home 1.2.0 alpha rev. 673>>
Мы уже победили, просто это еще не так заметно...
Re[11]: Нужен ли DAO для Hibernate ORM
От: IB Австрия http://rsdn.ru
Дата: 10.05.07 08:15
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Сразу видно плохое влияние MS

Что же в нем плохого?

C>Эээ... Как одним из доводов за использование DAO была возможность прозрачно использовать разные виды источники данных. Или я чего-то не понимаю?

Это не цель, это то, что получается само.

C>"Наружу" это куда? На клиент — несомененно (кроме особых случаев). В вот бизнес-логику, ИМХО, смысла нет изолировать.

Именно бизнес-логику и есть смысл изолировать. Собственно об этом и речь.

C>?? То есть тебе в бизнес-слое пофиг на транзакции?

На транзакции в терминах БД? Конечно пофиг.

C> А если для определенного алгоритма потребуется особый уровень изоляции?

Уровень изоляции — это забота DAL, для бизнес-слоя транзакция всегда должа быть Serializable, никаких особых уровней там быть не должно.

C>Так как в анекдоте — Hibernate получается.

Не получается, гибернейт все равно заставляет думать об источнике конкретного объекта и его зависимостях.

C>Не достаточно сильноразные источники используешь, видимо.

Мне хватает.. (

C>А что делаешь вместо CRUDа?

Пишу свой DAL под мои задачи.

C>Почему уже обычные?

Потому что я их такими сделал.

C>И что ты собираешься делать с зависимыми объектами?

Зависимыми от чего?
... << RSDN@Home 1.2.0 alpha rev. 673>>
Мы уже победили, просто это еще не так заметно...
Re[11]: Нужен ли DAO для Hibernate ORM
От: IB Австрия http://rsdn.ru
Дата: 10.05.07 08:15
Оценка:
Здравствуйте, IT, Вы писали:

IT>Что-бы воплотить её в жизнь, нужно стараться, тратить на это время и ресурсы, специально подбирать инструменты и затачивать архитектуру. Бесплатно такая сказка не даётся.

Угу, но это уже другой вопрос.

IT>ORM сегодня уже вообще никого не должен волновать. Всё уже мильён раз жёвано пережёвано.

Меня-то он уже давно не волнует.. )

IT>В принципе нет. У этих библиотек абсолютно разный API.

Но мой-то код будет работать не с этим API, а с моим собственным, который будет транслировать все вызовы в API конкретной системы.

IT>BL в большинстве приложений на 90% вообще должен умереть. Должна остаться модель данных, отображённая на БД и запросы к этой модели. В общем, что-то похожее на хибернейт, только развернуть эту избушку надо к лесу задом, а не так как сейчас.

Велкам то Entity Framework и LINQ 2 Entity.. =)

IT>Ты попробуй сначала, потом обсудим.

Ну яж говорю, для веб и вин пробовал, тоже малопохожие конструкции, но получилось довольно не плохо...

IT>Это я понял. Я не согласен с тобой в том, что гвозди и библиотеки — это зло. От этого никуда не денешься.

Хорошо. Если ближе к теме — мне конкретно не нравятся гвозди гибернейта.
... << RSDN@Home 1.2.0 alpha rev. 673>>
Мы уже победили, просто это еще не так заметно...
Re[13]: Нужен ли DAO для Hibernate ORM
От: IB Австрия http://rsdn.ru
Дата: 10.05.07 08:15
Оценка:
Здравствуйте, C0s, Вы писали:

C0s>я считаю, что лучше так, чем объяснять заказчику, что "мы не стали бороться со сбоями вообще, в угоду нашим представлениям о программировании, а также из-за общего пофигизма в ситуации, когда API к Legacy-системе не поддерживает транзакции"

Ну что опять за демагогия?

Разница в том, что в моем случае BL выглядит так:
begin_tran
Method1()
Method2()
commit

А в твоем :
if (Legacy1())
обрабатываем ситуацию с тем что L1 транзакцию не поддерживает

else if (Legacy2())
обрабатываем ситуацию с тем что L2 транзакцию поддерживает
но ни так как нам надо

else if (Native())
делаем просто вызов Native(), но опят-таки в явной транзакции

else — еще что-нибудь...

Я даже не буду подкалывать, что твой код якобы не заработает. Допустим, что и в том и в другом случае работать все будет одинаково... Только вот понять, чем собственно система занимается в конкретном случае и выкинуть обращение к легаси коду, когда он будет переписан, в первом случае, сдается мне, будет существенно проще.
... << RSDN@Home 1.2.0 alpha rev. 673>>
Мы уже победили, просто это еще не так заметно...
Re[17]: Нужен ли DAO для Hibernate ORM
От: IB Австрия http://rsdn.ru
Дата: 10.05.07 08:15
Оценка: +1
Здравствуйте, Cyberax, Вы писали:

C>То есть у тебя-таки бизнес-слой будет адаптирован для нетранзакционного DALа?

Да ну нет же. Связь в обратную сторону развернута — DAL будет адаптироваться под нужды BL.
... << RSDN@Home 1.2.0 alpha rev. 673>>
Мы уже победили, просто это еще не так заметно...
Re[18]: Нужен ли DAO для Hibernate ORM
От: IT Россия linq2db.com
Дата: 10.05.07 10:48
Оценка: 6 (1)
Здравствуйте, Дм.Григорьев, Вы писали:

ДГ>Можно ссылочку на "что это такое?"


http://en.wikipedia.org/wiki/Domain_Specific_Language
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[12]: Нужен ли DAO для Hibernate ORM
От: IT Россия linq2db.com
Дата: 10.05.07 10:54
Оценка:
Здравствуйте, IB, Вы писали:

IT>>BL в большинстве приложений на 90% вообще должен умереть. Должна остаться модель данных, отображённая на БД и запросы к этой модели. В общем, что-то похожее на хибернейт, только развернуть эту избушку надо к лесу задом, а не так как сейчас.

IB>Велкам то Entity Framework и LINQ 2 Entity.. =)

Ну да. Монстрик похлеще хибернейта.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[16]: Нужен ли DAO для Hibernate ORM
От: IT Россия linq2db.com
Дата: 10.05.07 10:54
Оценка:
Здравствуйте, Cyberax, Вы писали:

IT>>Потому что при желании большинство задач можно свести к интерфейсу к БД, а можно любую самую простую реализовать кучей непонятно что и зачем делающего кода.

C>Я бы сказал, что при желании большинство задач можно на 80%-90% свести к интерфейсу с БД.

Можно и так.

C>Так я не возражаю. Я только говорю, что обычно эта часть не представляет особого интереса. Там все по большей части достаточно просто и вполне хватает средств, которые существуют уже лет 10.


10 лет назад немеряно рулили двузвенки. Предлагаешь назад в будущее?

C>http://en.wikipedia.org/wiki/Business_Process_Management


И какие у нас тут особенные проблемы?
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[17]: Нужен ли DAO для Hibernate ORM
От: Cyberax Марс  
Дата: 10.05.07 12:42
Оценка:
Здравствуйте, IT, Вы писали:

C>>Так я не возражаю. Я только говорю, что обычно эта часть не представляет особого интереса. Там все по большей части достаточно просто и вполне хватает средств, которые существуют уже лет 10.

IT>10 лет назад немеряно рулили двузвенки. Предлагаешь назад в будущее?
Вообще говоря, для непосредственного показа данных "псевдодвухзвенки" и сейчас рулят.

C>>http://en.wikipedia.org/wiki/Business_Process_Management

IT>И какие у нас тут особенные проблемы?
Скажу так — без выделения сущностей (что-то тита ORM) там все очень плохо. Но это уже другой флейм.
Sapienti sat!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.