Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Объектный подход при работе с БД, у кого какие наработки 
:(
    Опции темы
Bose
Дата 14.3.2009, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1458
Регистрация: 5.3.2005
Где: Riga, Latvia

Репутация: 9
Всего: 51



Цитата(Delphist @  13.3.2009,  12:34 Найти цитируемый пост)
Но 
опять же написание нормальных unit-тестов возможно лишь в том случае, если проект сделан по принципу MVC, 
в противном случае, можно задолбаться писать эти unit-тесты. 

+500
Писать юнит-тесты для проекта сделанного по принципу: накидали компонентов, настроили связи, подключили всё это к контролам, без выделения функционала в логичные классы - это рельный 3,14здецsmile 

Цитата(X-Vlad @  13.3.2009,  14:05 Найти цитируемый пост)
Маразм. Работаю девелопером.. проект наш длится уже больше 10 лет (более 5 млн строчек кода). БД MS SQL 2005, архитектура 3-ех звенная (client, application server, database)
UnitTest пишется перед тем как ты начинаешь писать функционал (почитай умные книги), потом начинаешь кодить функционал, постоянно проверяя написанный код UnitTest-ами. 

X-Vlad, скажи пожалуйста ты реально пишешь unit-тесты на delphi в этом db-приложении? Особенно интересует область тестирования application server-a. 
Я веду два проекта с таким же преклонным возрастом(одному более 10 лет, второй помоложе), и при попытке сообразить как покрыть тестами этот код, у меня мозг скукоживается.  Я могу понять как протестировать вспомогательные классы, но как создать mock-объекты для датасетов, я пока не могу сообразить. =( 

Проекты состоят из клиента и бд на firebird-e, сервера приложений просто нет, а большая часть бизнес логики реализована в БД в хранимых процедурах/триггерах.

Цитата(X-Vlad @  13.3.2009,  14:58 Найти цитируемый пост)
звучит дико... но юниттесты действительно в идеале должны писатся сначала ("разработка через тестирование" - подход, предусматривающий первоначальное создание тестов и последующее написание кода, удовлетворяющего тестам.) 

Дико это звучит пока не попробуешь. А когда попробуешь, то понимаешь, что при таком подходе, классы получаются более цельными и логичными.
PM MAIL WWW Skype   Вверх
X-Vlad
Дата 15.3.2009, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 570
Регистрация: 10.4.2002
Где: Украина, Львов

Репутация: 3
Всего: 5



Цитата

Проекты состоят из клиента и бд на firebird-e, сервера приложений просто нет, а большая часть бизнес логики реализована в БД в хранимых процедурах/триггерах


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


Цитата

X-Vlad, скажи пожалуйста ты реально пишешь unit-тесты на delphi в этом db-приложении? Особенно интересует область тестирования application server-a. 
Я веду два проекта с таким же преклонным возрастом(одному более 10 лет, второй помоложе), и при попытке сообразить как покрыть тестами этот код, у меня мозг скукоживается.  Я могу понять как протестировать вспомогательные классы, но как создать mock-объекты для датасетов, я пока не могу сообразить. =( 


У нас нетолько юниттестами покрыт код дельфи, .Net но еще и сторед процедуры. Юзаем как я писал выше MS SQL Server 2005, 2008, базы в стаблицамы в которых несколько миллионов рекордов.
Насчет мокапа данных для тестирования - в ДевЕкспресах есть МемориДатасет, вот в него взаганяешь данные и работаешь с ним, или пишем коллекции и т.д. На проекте более 5000 юниттестов, несколько сотен юниттестов на сторед процы.


Цитата

при попытке сообразить как покрыть тестами этот код, у меня мозг скукоживается


бывает такой код который физически невозмождно покрыть юниттестами, мы в таких случаяхъ не напрягаемся smile



Это сообщение отредактировал(а) X-Vlad - 15.3.2009, 14:09


--------------------
Хорошая штука - комп..:)
www.x-vlad.com
PM MAIL WWW ICQ   Вверх
Bose
Дата 16.3.2009, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1458
Регистрация: 5.3.2005
Где: Riga, Latvia

Репутация: 9
Всего: 51



Цитата(X-Vlad @  15.3.2009,  13:08 Найти цитируемый пост)
ну честно говоря жарптица плохая в ипользовании... разве что в маленьких компаниях и при малых обьемах данных.

Это не имеет отношения к теме. =)

Цитата(X-Vlad @  15.3.2009,  13:08 Найти цитируемый пост)
У нас нетолько юниттестами покрыт код дельфи, .Net но еще и сторед процедуры. Юзаем как я писал выше MS SQL Server 2005, 2008, базы в стаблицамы в которых несколько миллионов рекордов.
Насчет мокапа данных для тестирования - в ДевЕкспресах есть МемориДатасет, вот в него взаганяешь данные и работаешь с ним, или пишем коллекции и т.д. На проекте более 5000 юниттестов, несколько сотен юниттестов на сторед процы.

А много людей на проекте?
PM MAIL WWW Skype   Вверх
Delphist
  Дата 16.3.2009, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphist Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2145
Регистрация: 3.2.2004
Где: всегда в сети

Репутация: 1
Всего: 3



Цитата(Bose @  14.3.2009,  16:54 Найти цитируемый пост)
Я могу понять как протестировать вспомогательные классы, но как создать mock-объекты для датасетов, я пока не могу сообразить. =( 

mock-объекты, это что?
Цитата(X-Vlad @  15.3.2009,  15:08 Найти цитируемый пост)
Насчет мокапа данных для тестирования - в ДевЕкспресах есть МемориДатасет, 

А насколько сильно он отличается от rxlib'овского МемориДатасета?
Цитата(X-Vlad @  15.3.2009,  15:08 Найти цитируемый пост)
На проекте более 5000 юниттестов, несколько сотен юниттестов на сторед процы

А вы реально пишите юнит-тесты перед тем как писать объетк?

Это сообщение отредактировал(а) Delphist - 16.3.2009, 14:35


--------------------
ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др).
Когда-то давным-давно использовал это...
PM MAIL ICQ   Вверх
X-Vlad
Дата 18.3.2009, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 570
Регистрация: 10.4.2002
Где: Украина, Львов

Репутация: 3
Всего: 5



Цитата

А много людей на проекте? 
 более 70-ти

Добавлено @ 15:15
Цитата

А вы реально пишите юнит-тесты перед тем как писать объетк?


если это необходимо. smile

Добавлено @ 15:16
Цитата

mock-объекты, это что?


если ты пишешь юниттест на логику которой нужен набор данных например из БД, а у тебя еще не готовы ДБ изменения (таблицы, логика, данные). Вот в этом случае ты создаешь мокап данных и стравливаешь их юниттесту

Добавлено через 5 минут и 40 секунд
Цитата

А насколько сильно он отличается от rxlib'овского МемориДатасета?


не знаю не иследовал. smile

Это сообщение отредактировал(а) X-Vlad - 18.3.2009, 15:17


--------------------
Хорошая штука - комп..:)
www.x-vlad.com
PM MAIL WWW ICQ   Вверх
Delphist
Дата 18.3.2009, 15:44 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphist Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2145
Регистрация: 3.2.2004
Где: всегда в сети

Репутация: 1
Всего: 3



X-Vlad, спасибо за ответы.

Добавлено @ 15:46
Тема все еще актуальна!, так что высказываемся,  не стесняемся smile

Добавлено @ 15:48
Цитата(jsa @  4.3.2009,  13:35 Найти цитируемый пост)
Delphist, почитай, может найдешь для себя че нить интересное 


Почитал стайтеку (http://rsdn.ru/article/patterns/patterns.xml) делаю вывод, что народ все правильно понимает, что я хочу, только вот все это бы к БД, с каким-нить инструментов созданным специально для любителей БД по MVC.

Это сообщение отредактировал(а) Delphist - 18.3.2009, 15:49


--------------------
ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др).
Когда-то давным-давно использовал это...
PM MAIL ICQ   Вверх
Bose
Дата 19.3.2009, 02:13 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1458
Регистрация: 5.3.2005
Где: Riga, Latvia

Репутация: 9
Всего: 51



Цитата(Delphist @  18.3.2009,  14:44 Найти цитируемый пост)
что народ все правильно понимает, что я хочу, только вот все это бы к БД, с каким-нить инструментов созданным специально для любителей БД по MVC.

народ понимает, что я хочу... какой-нибудь инструмент... smile 
PM MAIL WWW Skype   Вверх
Delphist
  Дата 19.3.2009, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphist Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2145
Регистрация: 3.2.2004
Где: всегда в сети

Репутация: 1
Всего: 3



Цитата(Bose @  19.3.2009,  03:13 Найти цитируемый пост)
народ понимает, что я хочу... какой-нибудь инструмент... 

под иснструментом я имел ввиду smile какую-нить библиотеку или фигню типо ECO - только более продивнутую...


--------------------
ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др).
Когда-то давным-давно использовал это...
PM MAIL ICQ   Вверх
Delphist
  Дата 24.3.2009, 12:17 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphist Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2145
Регистрация: 3.2.2004
Где: всегда в сети

Репутация: 1
Всего: 3



Все исчепали мы себя?


--------------------
ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др).
Когда-то давным-давно использовал это...
PM MAIL ICQ   Вверх
pseud
Дата 24.3.2009, 12:57 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 16
Всего: 40



Цитата(Delphist @  24.3.2009,  12:17 Найти цитируемый пост)
Все исчепали мы себя?

BoseX-Vladостальные, поживее-поживее, крутите извилинами, работа-то стоит, работу-то надо работать, а мы из-за вас пролетаем, весь воронеж ждет. я разочарован.



--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
Lazin
Дата 24.3.2009, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: нет
Всего: 154



Цитата(Delphist @  12.3.2009,  19:28 Найти цитируемый пост)
Так вот этот MVC совсем иной по сравнению с делфийским MVC. Они совершенно разные. И при программировании с использованием QT ты реально чувствуешь этот MVC.

это называется "объектно ориентированное программирование"(с) smile 

Цитата(X-Vlad @  13.3.2009,  15:05 Найти цитируемый пост)
UnitTest пишется перед тем как ты начинаешь писать функционал (почитай умные книги), потом начинаешь кодить функционал, постоянно проверяя написанный код UnitTest-ами. 

послушайте умных людей smile

Цитата(X-Vlad @  13.3.2009,  15:58 Найти цитируемый пост)
 "Рефакторинг. Улучшение существующего кода.", Мартин Фауер

у этого автора есть еще одна книга: "Patterns of Enterprise Application Architecture", там описаны паттерны проектирования для работы с БД
основная проблема при работе с БД - постоянное преобразование данных из системы типов БД, в систему типов языка программирования, MVC и TDataset этой проблемы не решают. 
Для этого используют различные ORM(object relational mapping) паттерны, которые описаны в этой книге, например Active Record. Существует множество различных ORM библиотек для .NET и для динамических языков, насчет дельфи, я не в курсе.

Добавлено через 1 минуту и 4 секунды
для .NET есть Entity Framework, NHibernate, возможно что-то еще

Добавлено через 14 минут и 35 секунд
Вообще, я не понял, причем тут Dataset-ы и почему они не вписываются в MVC паттерн, согласно MVC, у нас есть data access layer, business logic layer, presentation layer. TDataset, он какбэ часть data access layer, то что он содержит нужно отобразить в набор объектов бизнес логики приложения, которые могут взаимодействовать с presentation layer-ом? По моему, даже на дельфи эти уровни можно разделить и сделать независимыми. 
PM MAIL Skype GTalk   Вверх
Bose
Дата 24.3.2009, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1458
Регистрация: 5.3.2005
Где: Riga, Latvia

Репутация: 9
Всего: 51



Цитата(pseud @  24.3.2009,  11:57 Найти цитируемый пост)
Bose, X-Vlad, остальные, поживее-поживее, крутите извилинами, работа-то стоит, работу-то надо работать, а мы из-за вас пролетаем, весь воронеж ждет. я разочарован.

lol

Цитата(Lazin @  24.3.2009,  12:03 Найти цитируемый пост)
Вообще, я не понял, причем тут Dataset-ы и почему они не вписываются в MVC паттерн, согласно MVC, у нас есть data access layer, business logic layer, presentation layer. TDataset, он какбэ часть data access layer, то что он содержит нужно отобразить в набор объектов бизнес логики приложения, которые могут взаимодействовать с presentation layer-ом? По моему, даже на дельфи эти уровни можно разделить и сделать независимыми.  

Мне тоже так кажется, но по-мойму, автор хочет, чтобы ему дали готовый набор компонент "для реализации MVC" smile
PM MAIL WWW Skype   Вверх
Delphist
Дата 24.3.2009, 16:22 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphist Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2145
Регистрация: 3.2.2004
Где: всегда в сети

Репутация: 1
Всего: 3



Цитата(Bose @  24.3.2009,  14:26 Найти цитируемый пост)
Мне тоже так кажется, но по-мойму, автор хочет, чтобы ему дали готовый набор компонент "для реализации MVC"  

 smile расмешил
Цитата(Lazin @  24.3.2009,  14:03 Найти цитируемый пост)
у этого автора есть еще одна книга: "Patterns of Enterprise Application Architecture", там описаны паттерны проектирования для работы с БД
основная проблема при работе с БД - постоянное преобразование данных из системы типов БД, в систему типов языка программирования, MVC и TDataset этой проблемы не решают. 

Скажи, пожалуйста, этот букварь на русском существует или аналогичный книжки на русском



--------------------
ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др).
Когда-то давным-давно использовал это...
PM MAIL ICQ   Вверх
Kbl4AH
Дата 24.3.2009, 16:25 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 6
Всего: 15



Цитата(Delphist @  24.3.2009,  16:22 Найти цитируемый пост)
Скажи, пожалуйста, этот букварь на русском существует

существует smile 
ЗЫ. Delphist, харош уже заниматься массажем деревянной ноги...
PM MAIL ICQ   Вверх
vladimir74
Дата 24.3.2009, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 241
Регистрация: 28.11.2006

Репутация: 2
Всего: 3



Цитата(Delphist @  24.3.2009,  14:22 Найти цитируемый пост)
Скажи, пожалуйста, этот букварь на русском существует или аналогичный книжки на русском

тебя что интересует? MVC в Delphi или руссая документация?
1. тебе кажется уже многие сказали что есть
2. я не искал, если так волнует - поищи, ненайдешь - напиши сам. Заодно и сам разберешься и может другим поможешь. 
А если хорошо напишешь то и книгу выпустишь и денег заработаешь  smile представляешь MVC в Delphi автор Delphist  звучит  smile   smile 
--------------------
* В доме помешанного не говорят о миксере.* На любой Ваш вопрос у меня есть любой мой ответ.
PM MAIL   Вверх
Страницы: (6) Все « Первая ... 2 3 [4] 5 6 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0616 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.