|
|
|
Как выбрать из базы коллекцию объектов?
|
|||
|---|---|---|---|
|
#18+
FuzzyПохоже, у Фаулера действительно полезная книга. Скажите, пожалуйста, в ней жёстко си-шарп рассматривается, или в общем? А есть где-нибудь на сети, чтоб скачать? В сети по-моему в свободном доступе есть на английском, на сайте автора. Рассматривается все "в общем", примеров на java даже больше по-моему. Роман, а зачем я должен буду повторно мапить записи на объекты? Можно пример, чтоб я понял? я так понял по следующему: Fuzzyи сразу на ходу создаём объекты Потом, как вы тогда будете синхронизовать recordset c объектами? Держать и рекордсет и глобальную кеш-коллекцию... зачем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2007, 16:21 |
|
||
|
Как выбрать из базы коллекцию объектов?
|
|||
|---|---|---|---|
|
#18+
Роман, наверное, я лучше сперва почитаю Фаулера... потом вернёмся к обсуждению, ок? Потому что пока даже вопроса не могу понять: вот у меня данные в базе, возникла необходимость выбрать на клиента все документы по определённому критерию. Вот я их и выбрал, у меня есть их коллекция, а рекордсеты я бросил после загрузки, зачем они мне? Понятно, что "один и тот же" объект я не буду несколько раз создавать -- если он уже загружался, буду использовать имеющийся инстанс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2007, 16:27 |
|
||
|
Как выбрать из базы коллекцию объектов?
|
|||
|---|---|---|---|
|
#18+
SeVaТебе здесь не раз объясняли, что в БД объекты не хранятся. Есть паттерн проектирования Memento - хранитель. Он позволяет отчуждать состояние объекта Originator в объект Memento и помещать его в БД для последующего восстановления состояния исходного объекта Originator. Объект Originator не хранится в БД. Там хранится объект Memento или, если угодно, его копия. Современные СУБД и API позволяют сосредодочиться на проектировании класса Originator. Класс Memento и соответственно тип записей в таблице БД можно получить почти автоматически из спецификации класса Originator. Механизмы получения объекта Memento из объекта Originator, сохранения его в БД, и обратная процедура реализованы на уровне библиотек, так что проектировщик может отождествлять классы Memento и Originator даже на очень низком уровне абстракции. В данном случае автор опустился ниже этого уровня. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2007, 15:28 |
|
||
|
Как выбрать из базы коллекцию объектов?
|
|||
|---|---|---|---|
|
#18+
mcureenab, непонятно, но здорово!!!Использование паттерна Momento в подобном контексте я нигде не видел.Какие механизмы, какие API, какие обратные процедуры?Если они тождественны, то зачем нужны эти усложнения?С нетерпением жду продолжения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2007, 18:39 |
|
||
|
Как выбрать из базы коллекцию объектов?
|
|||
|---|---|---|---|
|
#18+
SeVamcureenab, непонятно, но здорово!!!Использование паттерна Momento в подобном контексте я нигде не видел.Какие механизмы, какие API, какие обратные процедуры?Если они тождественны, то зачем нужны эти усложнения?С нетерпением жду продолжения. Не Momento, Memento, от memory (или наоборот). Механизмы системы проектирования. Тот же самый MS Visio в UML моделях позволяет тэгировать атрибуты класса приложения (класс Originator в паттерне Memento) признаком persistent, так что генератору схемы БД ясно, какие таблицы и поля (класс Memento в одноимённом паттерне) нужно унаследовать из диаграммы статической структуры и нет надобности моделировать БД руками. API для доступа к БД, который обеспечивает постоянство (persistence) объекта, т.е. сохранение состояния объекта в БД в процессе сброса кэш и восстановление этого состояния из БД в кэше в процессе разъименовывания объектной ссылки. Усложнения возникают, когда мы проектируем БД и классы приложения руками. Современный подход позволяет думать о постоянстве объекта приложения не вникая в механизмы, которые это постоянство обеспечивают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2007, 19:29 |
|
||
|
Как выбрать из базы коллекцию объектов?
|
|||
|---|---|---|---|
|
#18+
Ну, ты уж совсем буквоед."Банда четырех" -настольная книга.Палец не там застрял. Сразу становится неинтересно.На мой взгляд, трудности возникают, как раз при таких методах проектирования.Уж слишком много в них ограничений, а когда на запросы посмотришь, совсем дурно становиться.Флейм на эту тему поднимать не будем, это моя точка зрения и я ее никому не навязываю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2007, 22:23 |
|
||
|
Как выбрать из базы коллекцию объектов?
|
|||
|---|---|---|---|
|
#18+
Область молодая, потому косяков вней встречается изрядное количество, сособенно при попытках скрестить бульдога с носорогом. Чтобы от запросов не было дурно, СУБД должна поддерживать объектное расширение SQL. Проектировать классы нужно с учётом возможностей платформы. И т.д. и т.п. Скажем так, от повсеместного применения этого подхода в коммерческих приложениях БД я пока воздержусь. Для разработки экранных форм объектные навороты явно лишние (кроме тех объектов-компонентов, что встроены в среду разработки/выполнения). В приложениях со сложной пакетной обработкой данных они могут быть полезными, хотя бы для правильного кэширования данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2007, 23:08 |
|
||
|
Как выбрать из базы коллекцию объектов?
|
|||
|---|---|---|---|
|
#18+
mcureenabУсложнения возникают, когда мы проектируем БД и классы приложения руками. Это смотря с чьей точки зрения "усложнения". С т.з. низкоквалифицированного ООП кодера отдельное проектирование базы - безусловно "усложнение", он в этом все равно ничего не понимает. С т.з. нормального архитектора - база и "классы приложения" могут и должны рассматриваться отдельно хотя бы потому, что с базой зачастую работает не одно приложение mcureenabСовременный подход позволяет думать о постоянстве объекта приложения не вникая в механизмы, которые это постоянство обеспечивают. опоздали вы с "современным подходом" Мода на MDA уже прошла. Сейчас SOA модно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2007, 13:40 |
|
||
|
Как выбрать из базы коллекцию объектов?
|
|||
|---|---|---|---|
|
#18+
Alexey KudinovМода на MDA уже прошла. Сейчас SOA модно. MDA и SOA НЕ являются взаимозаменяющими подходами, скорее они могут дополнять друг друга. SOA - взаимодействие. MDA - разработка приложений, управляемых моделью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2007, 14:23 |
|
||
|
Как выбрать из базы коллекцию объектов?
|
|||
|---|---|---|---|
|
#18+
Роман ДынникSOA - взаимодействие. MDA - разработка приложений, управляемых моделью. И да и нет. В случае MDA разработка идет "от модели", в случае SOA [в значительной части] "от сервисов". Т.е. SOA - это взаимодействие конечно, но взаимодействие весьма значительно влияющее на архитектуру приложения. Я их сравнивал в плане новизны тенденций в проектировании. Не в плане взаимозаменяемости. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2007, 14:36 |
|
||
|
Как выбрать из базы коллекцию объектов?
|
|||
|---|---|---|---|
|
#18+
Alexey KudinovС т.з. нормального архитектора - база и "классы приложения" могут и должны рассматриваться отдельно хотя бы потому, что с базой зачастую работает не одно приложение Полагаю, тут речь идёт о разделении класса спецификации и класса реализации. Чтобы объект оставался целостным его методы должны работать одинаково независимо от места развёртывания этого объекта. В идеальном случае класс реализуется только в одном компоненте системы, поэтому работает одинаково во всех её приложениях. Усложнять классы постоянных объектов нет смысла. Как правило такие классы моделируют сущности, а сущности по определению не имеют поведения. Поведение определяют классы-агенты, которые реализуют бизнес-правила и службы системы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2007, 15:00 |
|
||
|
Как выбрать из базы коллекцию объектов?
|
|||
|---|---|---|---|
|
#18+
Alexey Kudinov Роман ДынникSOA - взаимодействие. MDA - разработка приложений, управляемых моделью. И да и нет. В случае MDA разработка идет "от модели", в случае SOA [в значительной части] "от сервисов". Т.е. SOA - это взаимодействие конечно, но взаимодействие весьма значительно влияющее на архитектуру приложения. Так SOA, это и есть архитектура, точнее принцип построения. Только SOA это архитектура самой системы, а MDA архитектура разработки системы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2007, 15:14 |
|
||
|
Как выбрать из базы коллекцию объектов?
|
|||
|---|---|---|---|
|
#18+
SOA - архитектура взаимодействия, MDA - чистое проектирование предметной области и создание приложения по модели. Так или иначе, опираясь или не опираясь на SOA, нужна модель предметной области, для управления которой по большому счету и существует MDA. С сообщениями/контрактами SOA напрямую (по-хорошему) приложения не должны работать. Бизнес-логика работает с объектами предметной области, объекты предметной области передаются слою ServiceAgents, которые обращаются к соответствующим сервисами, транслируя объекты в сообщения, DataContract... Т.о. если разработка идет от сервисов, все равно необходим двусторонний маппинг сообщений сервисов на объекты предметной области. Работать напрямую с сервисами, это все равно что использовать запись recordset-а в качестве бизнес-объекта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2007, 15:14 |
|
||
|
Как выбрать из базы коллекцию объектов?
|
|||
|---|---|---|---|
|
#18+
mcureenabТолько SOA это архитектура самой системы, а MDA архитектура разработки системы. Это уже более реальное утверждение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2007, 15:19 |
|
||
|
Как выбрать из базы коллекцию объектов?
|
|||
|---|---|---|---|
|
#18+
Ребята, с удовольствием читаю данный топик!!! Много модных и умных слов, но за частоколом терминологии не понятно, что скрывается.То Originator тождественен Memento, то в БД живут объекты, то разработка ведется от сервисов и тд. Перечитываю по три раза,ничего не понимаю, еще читаю, но эффект тот же. Продолжайте в том же духе. С интересом буду наблюдать продолжение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2007, 11:36 |
|
||
|
|

start [/forum/topic.php?fid=32&gotonew=1&tid=1544757]: |
0ms |
get settings: |
9ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
149ms |
get topic data: |
7ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 237ms |
| total: | 462ms |

| 0 / 0 |
