|
Iclude в NHibernate
|
|||
---|---|---|---|
#18+
Алексей КПо сравнению с сетевым пингом затратами на ORM как правило можно принебречь. я вас не очень понял, т.е. создание объектов ORM, маппинг это фигня, а создать экземпляр класса и преобразовать к интерфейсу - это долго? Алексей КНормальный кодогенератор + ORM уже сам по себе является универсальным репозитарием на все случаи жизни. Лепить поверх этого ещё одну абстракцию глупо глупо дублировать код, глупо полагатся на пафосные экстрасенсорные способности (предвидеть абсолютно все ситуации), глупо ставить себя в зависимость от некоторой конкретной реализации, которую в будущем возможно придется заменить более современным/надежным/подходящим средством, и покажите мне человека, который знает (т.е. сталкивался на практике) абсолютно все плюсы и минусы, возможности основых используемых ORM, это же ведь ему позволит сделать правильный выбор ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2012, 11:07 |
|
Iclude в NHibernate
|
|||
---|---|---|---|
#18+
17-77глупо дублировать код, глупо полагатся на пафосные экстрасенсорные способности (предвидеть абсолютно все ситуации), 90% кода по работе с бд используется один раз. Остальное можно запихнуть в QueryObject. 17-77 глупо ставить себя в зависимость от некоторой конкретной реализации, которую в будущем возможно придется заменить более современным/надежным/подходящим средством С нетерпением жду вашего рассказа, как вы легко и просто, потратив полдня замените свою реализацию на MongoDB. 17-77 и покажите мне человека, который знает (т.е. сталкивался на практике) абсолютно все плюсы и минусы, возможности основых используемых ORM, это же ведь ему позволит сделать правильный выбор Это называется опыт. Предвидеть необходимость постраничной выборки ( и ограничений на размер выборки в общем) - не ахти какое знание. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2012, 11:20 |
|
Iclude в NHibernate
|
|||
---|---|---|---|
#18+
17-77я вас не очень понял, т.е. создание объектов ORM, маппинг это фигня, а создать экземпляр класса и преобразовать к интерфейсу - это долго?Это к тому, что сам факт использования ORM мало влияет на производительность. Вопрос в том как он используется. 17-77Алексей КНормальный кодогенератор + ORM уже сам по себе является универсальным репозитарием на все случаи жизни. Лепить поверх этого ещё одну абстракцию глупо глупо дублировать кодГде я предлагал дублировать код? 17-77глупо полагатся на пафосные экстрасенсорные способности (предвидеть абсолютно все ситуации)Если вернуться к Вашему примеру, можно было найти выход и с имеющейся архитектурой. Было бы желание. Если там у вас кто-то чего-то не смог - это не значит что это невозможно. "Береженого Бог бережет - бормотала монашка, одевая на свечку второй презер...в" (с) Намерено идти по пути "N+1 запрос" ( или городить кэш второго уровня ) из-за лишней абстракции ради какой-то неуверенности в завтрашнем дне на мой взгляд нерационально. 17-77глупо ставить себя в зависимость от некоторой конкретной реализации, которую в будущем возможно придется заменить более современным/надежным/подходящим средствомГлупо иметь инструмент и не использовать все имеющиеся возможности. 17-77и покажите мне человека, который знает (т.е. сталкивался на практике) абсолютно все плюсы и минусы, возможности основых используемых ORM это же ведь ему позволит сделать правильный выборПросто надо иметь некоторый кругозор, не более того. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2012, 11:24 |
|
Iclude в NHibernate
|
|||
---|---|---|---|
#18+
SolYUtor90% кода по работе с бд используется один раз. Остальное можно запихнуть в QueryObject. Алексей КГде я предлагал дублировать код? собственно предлагали в том месте, где надо избавиться от абстракции с репозиторием что насчет выборки с джоинами, в двух местах программы, с разными условями where что насчет сохранения объектов из двух мест с какой-то пред-обработкой SolYUtorС нетерпением жду вашего рассказа, как вы легко и просто, потратив полдня замените свою реализацию на MongoDB. как нибудь посмотрю что это SolYUtorЭто называется опыт. Предвидеть необходимость постраничной выборки ( и ограничений на размер выборки в общем) - не ахти какое знание. вы умеете абстрагироваться? это был элементарный пример, а ситуаций бывают разные Алексей КЭто к тому, что сам факт использования ORM мало влияет на производительность. Вопрос в том как он используется. все равно не очень понятно, использовать ORM напрямую, либо создать класс/интерфейс обертку и обращаться к ORM внутри - где здесь заметное уменьшение производительности, создание экземпляра? преобразование к интерфейсу? лишний уровень в стеке вызовов? это все становиться заметным по сравнению с сетевым пингом? можно пример? Алексей КНамерено идти по пути "N+1 запрос хм, не знаю как в MongoDB, в EF есть Include, а в гибернейте Fetch, все спокойно достается заранее и то что требуется, отсоединяется и возвращается, интересно стало как в сервисной архитектуре вы будете через xml передавать отслеживаемые сущности с кэшем второго уровня тоже не понятно, насколько я понял у вас был какой-то дикий пример, который вы забыть не можете, это относится к сетевому пингу? SolYUtorЭто называется опыт. Алексей КПросто надо иметь некоторый кругозор, не более того. кругозора мало, чтобы не ударить в грязь лицом в любой ситуации, нужны глубокие знания, вплоть до того, что EF упадет при обработке 32561 записи в одной транзакции с опытом приходит только часть, прикиньте самостоятельно сколько проектов надо сделать, чтобы всесторонне попробовать каждую возможность хотя бы одного инструмента, и сколько времени надо на это потратить, экстрасенсом быть выгодней ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2012, 12:58 |
|
Iclude в NHibernate
|
|||
---|---|---|---|
#18+
17-77кругозора мало, чтобы не ударить в грязь лицом в любой ситуации, нужны глубокие знания, вплоть до того, что EF упадет при обработке 32561 записи в одной транзакции с опытом приходит только часть, прикиньте самостоятельно сколько проектов надо сделать, чтобы всесторонне попробовать каждую возможность хотя бы одного инструмента, и сколько времени надо на это потратить, экстрасенсом быть выгодней не опыта, ни кругозора у них нет гуглисты они ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2012, 13:36 |
|
Iclude в NHibernate
|
|||
---|---|---|---|
#18+
17-77, могу вас лишь поздравить с началом долго пути. :) Вы уже пришли к шаблонам, теперь осталось встань на вторую ступень - понимание, что контекст применения шаблонов и принципов весьма ограничен. И зачастую они противоречат друг-друг. Скажем, вам приходилось сталкиваться с проблемой SRP vs DRY? А это действительно проблема, и увы, ее часто разрешают в пользу DRY. В общем, как говорил Грег Янг: Greg YoungDeveloper have mental disorder. They have a tendency to attempt to solve specific problems with general solutions. This leads to coupling and complexity. Instead of being general, code should be specific. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2012, 15:28 |
|
Iclude в NHibernate
|
|||
---|---|---|---|
#18+
SolYUtor17-77, могу вас лишь поздравить с началом долго пути. :) Вы уже пришли к шаблонам, теперь осталось встань на вторую ступень - понимание, что контекст применения шаблонов и принципов весьма ограничен. И зачастую они противоречат друг-друг. Скажем, вам приходилось сталкиваться с проблемой SRP vs DRY? А это действительно проблема, и увы, ее часто разрешают в пользу DRY. В общем, как говорил Грег Янг: Greg YoungDeveloper have mental disorder. They have a tendency to attempt to solve specific problems with general solutions. This leads to coupling and complexity. Instead of being general, code should be specific. тупой твой янг у кого есть опыт тот видит общее решение спецрешения делаются при неустранимых ограничениях (финансы, время, жадность,...) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2012, 15:56 |
|
Iclude в NHibernate
|
|||
---|---|---|---|
#18+
17-77SolYUtor90% кода по работе с бд используется один раз. Остальное можно запихнуть в QueryObject. Алексей КГде я предлагал дублировать код? собственно предлагали в том месте, где надо избавиться от абстракции с репозиторием что насчет выборки с джоинами, в двух местах программы, с разными условями whereСвойство IQueryable<> + запросы с разными where из него? 17-77что насчет сохранения объектов из двух мест с какой-то пред-обработкойВо всех уважающих себя ормах есть механизм валидации объектов перед физическим сохранением в БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.05.2012, 05:58 |
|
Iclude в NHibernate
|
|||
---|---|---|---|
#18+
17-77Алексей КЭто к тому, что сам факт использования ORM мало влияет на производительность. Вопрос в том как он используется. все равно не очень понятно, использовать ORM напрямую, либо создать класс/интерфейс обертку и обращаться к ORM внутри - где здесь заметное уменьшение производительности, создание экземпляра? преобразование к интерфейсу? лишний уровень в стеке вызовов? это все становиться заметным по сравнению с сетевым пингом? можно пример?Говорю же, обилие мелких запросов. 17-77Алексей КНамерено идти по пути "N+1 запрос хм, не знаю как в MongoDB, в EF есть Include, а в гибернейте Fetch, все спокойно достается заранее и то что требуется, отсоединяется и возвращается,Придётся или тянуть всех "детей", или репозитарий распухнет от обилия методов и логики фильтрации детей, которой не должно быть в репозитарии по определению. 17-77интересно стало как в сервисной архитектуре вы будете через xml передавать отслеживаемые сущностиА никак :-) Традиционно, в сессии сохранения делается Attach сущностям, требующим сохранения/удаления. Ну или "лишний" запрос на выбор этой сущности из БД + изменение её свойств. Потом сохранение. Хотя, есть LINQ-Over-WCF, может там что для этого есть. 17-77кругозора мало, чтобы не ударить в грязь лицом в любой ситуации, нужны глубокие знания, вплоть до того, что EF упадет при обработке 32561 записи в одной транзакцииУ меня он падал на ~5000 записей. :-) 17-77с опытом приходит только часть, прикиньте самостоятельно сколько проектов надо сделать, чтобы всесторонне попробовать каждую возможность хотя бы одного инструмента, и сколько времени надо на это потратить, экстрасенсом быть выгоднейНу что поделать, такова нелёгкая судьба архитекторов. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.05.2012, 06:19 |
|
Iclude в NHibernate
|
|||
---|---|---|---|
#18+
Горячая ветка :D Быть может кто знает ответ на этот вопрос ? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2012, 20:47 |
|
|
start [/forum/topic.php?fid=17&gotonew=1&tid=1350360]: |
0ms |
get settings: |
12ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
11ms |
get first new msg: |
9ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
others: | 314ms |
total: | 466ms |
0 / 0 |