| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Базы данных и репортинг > Объектный подход при работе с БД |
| Автор: Delphist 2.3.2009, 15:37 |
| Всем, привет! Хочется поднять дисскусию по поводу T*DataSet'a и DBGrid*. Текущее положение дел: На сегодняшний состояние программистов Delphi я бы сказал плачевное, да да именно плачевное. Это вызвано двумя проблемами. 1) Не секрет, что IDE Delphi является интерфейсно ориентированной средой. Генерит код таким образом что интерфейс( формочка, кнопочки, их обработчики) увязываются с кодом данных, которые нужно обработать. Граммотный подход заключается в использовании системы MVC (model view controller), которая позволяет разделить классы интерфейса и классы обработки данных. MVC широко используется в таких средах как JBuilder, Eclipse (для языка Java, да и сама Java использует технологию MVC), также фундаментом крутой кросплатформенная библиотеки QT является MVC. 2) К Дельфи не применим подход ВСЕ ЕСТЬ ОБЪЕКТ 1 и 2 пункт кодеры на Delphi могут конечно же реализовывать сами, но многие Delphi-программеры не используют эти подходы, а пользуются тем что навивает нам сама IDE. К чему все я это рассказываю, для работы с БД мы часто используем готовые T*DataSet'ы (TpFibDataSet, TIBDataSet и т.п.) и готовые гриды, в итоге у нас данные завязываются за интерфейсом. У меня БОЛЬШОЙ вопрос, дорогие форумчане, поделитесь, пожалуйста, своими наработками по использованию средст которые позволяли работать с БД с использованием подхода MVC, мож есть какие-то НЕ TDataSet'ы а другие подходы. |
| Автор: Akella 2.3.2009, 20:54 |
| И что же ты молчишь? Продолжай. |
| Автор: Delphist 3.3.2009, 10:25 |
Akella, так это вопрос был |
| Автор: Akella 3.3.2009, 10:48 |
| Есть, конечно. Изучай API соответствующих СУБД. Добавлено через 38 секунд Ну так поднимай, в чём же дело. |
| Автор: Delphist 3.3.2009, 10:52 |
эт зависит от форумчан. если им тема интересна, то дисскусия возникнет сама собой |
| Автор: Kbl4AH 3.3.2009, 11:39 |
| Я мало сведущ в таких высоких сферах, но с датасетами работаю... Delphist, у меня сложилось впечатление, что тебя не устраивают реализации готовых T*DataSet'ов... Так какие проблемы? Бери TDataSet за основу и пиши свой TDelphistDataSet и делай в нем все так, как тебе хочется... Может популярный коммерческий продукт сделаешь... |
| Автор: Akella 3.3.2009, 12:34 | ||
так в том то и дело, что не хочеццо ему работать через датасет |
| Автор: cemick 3.3.2009, 12:54 |
Я так понял, что не нравится изолированность данных и отображения.. только ни как не могу понять причемс тут TDataSet и TDBGrid. ИМХО это надуманная проблема В сложный проектах всегда используются патерны, когда нужна масштабируемость, расширяемость, а в простых могут быть совершенно другие цели, где можно обойтись без всяких MVC Если внимательно узучишь компоненты от DevExpress, то там как раз твой MVC и реализован. Думаю и обычный TDBGrid построен на тех же принципах(сто лет его уже не трогал). |
| Автор: Akella 3.3.2009, 14:33 |
| но в Dev тоже все на датасетах |
| Автор: cemick 3.3.2009, 15:10 |
Датасет выступает только как хранилище данных, в TcxGrid есть на него сслыка, а интерфейс реализуется в TcxGridView, а связывает TcxGridView и TdataSet контроллер TcxCustomDataController. То есть интерфейс ничего не знает о дата сторадже с его заморочками, у него есть лишь набор строк которые надо отображать |
| Автор: Bose 4.3.2009, 10:56 | ||
Не понимаю, чем вам датасет не угодил.
Типа наработка. Смотри на это дело так: Dataset - модель. Форма - View. DataModule - контроллер. Все датасеты - держать только на DataModule. Весь код не имеющий отношения к отображению - только на DataModule. Форма должна уметь только показывать данные, а в обработчикаъ вызывать только соответствующие методы DataModule-я. Вот и будет MVC. Другое дело, что создавать прокси-классы обычно лень, вот и пишем логику прямо в форме. Да и код вроде как понятнее становится. А из минусов "обычного программирования" - для подобного кода становится очень сложно писать юнит-тесты. |
| Автор: Delphist 4.3.2009, 11:26 |
| Да уж, вижу что никто не пытается применять что-то особенное. Стандартная схема эт, конечно, как говориться как ВСЕ так и я. Хм.. в определенных случаях это избавляет от некоторого гемора, но существующий подход не позволяет легко реализоавть MVC. Тему я затеял, чтобы узнать чем дышит народ. А то DataSet да DataSet мож что нового появилось, но похоже ничего... |
| Автор: vladimir74 4.3.2009, 11:54 | ||
хм.. не всегда стоит повторно изобретать велосипед. Ткм более когда задачей является станок для мотороллеров.... да и Bose, привел ИМХО практически стандартный MVC. То что им не часто пользуются, мое ИМХО это уже сработаная привычка, в малых проектах на которое отводится мало времени - это лишнии затраты, часто более код более наглядный. С большими проектами которые ведутся уже более 10 лет - тоже не будешь весь переписывать, а менять модель посередине проекта глупо, потом вообще концов не найдешь. Да и вообще, MVC - это хорошо, но не панацея. Всегда надо смотреть на поставленную задачу. |
| Автор: jsa 4.3.2009, 12:35 |
| Delphist, http://rsdn.ru/article/patterns/patterns.xml, может найдешь для себя че нить интересное |
| Автор: Delphist 4.3.2009, 14:15 |
| jsa, спасибо за статейку, должна быть интересной. Сейчас немного занят, но вечерком обязательно прочитаю Добавлено через 7 минут и 49 секунд Не останавливаемся на достигнутом. P.S. Ведь можем же если захочем |
| Автор: Akella 4.3.2009, 18:12 | ||
мне наоборот угодил, это вон автору тему не угодил, чем не угодил, спроси у него Добавлено через 2 минуты и 55 секунд что? что можем, типо потрындеть без дела? |
| Автор: Kbl4AH 4.3.2009, 18:32 |
| можем |
| Автор: Delphist 4.3.2009, 20:07 | ||
Akella, как что? - находить умные статьи, jsa спасибо. Ждем еще.. Добавлено @ 20:08 Без дела не нано, надо по делу.
Я не говорю, что он мне не угодил. Я говорю что подходы нужно менять, а не сидеть из-за дня в день одно и то же. Новые технологии тогда будет прогресс, а иначе регресс |
| Автор: jsa 4.3.2009, 20:15 | ||||||
Delphist, как уже говорили
я с этим полностью согласен, так и верно то, что
почему в делфи не используется MVC? я бы сказал потому что скорее всего нет нет такой ярко выраженной необходимости, потому что реализовывать МВЦ - слишком дорогостоящая операция, по сравнению с теми задачами(с большинством) которые решаются на делфи, и прежде всего опять же идет позиционирование на RAD еще один фактор - ведь что такое МВЦ в корне, как не попытка облегчить себе жизнь - свести программирование как таковое к минимуму + разделение труда, Теперь если взглянуть на иерахическую струтуру классов (основу тех же датасетов и гридов) - все очень четко и предельно ясно разделено, причем сразу возникает вопрос - зачем изобретать велосипед, когда можно воспользоваться услугами RAD - т.е. мы отдельно берем Model(БД) + отдельно берем View(Grid) + отдельно берем Controller(элементарный навигатор), связываем их вместе без единой строки кода(практически), често говоря не совсем понятен вопрос, что же ты хочешь получить в качестве
что такое |
| Автор: Kbl4AH 4.3.2009, 21:03 |
не, иначе - стояк |
| Автор: Bose 5.3.2009, 00:29 | ||||
Зачем тебе MVC? Только ради MVC? Или потому что buzzword понравился? Можно конечно извратиться и реализовать MVC без датасетов, отказавшись от DB-контролов(ололол!!!!11адинадин), на своих классах(забивая на классы Tfield и TDbXXX контролы). Да в принципе, можно даже взять какой-нибудь готовый фреймворк(есть несколько), который это делает. Но ведь Delphi, в первую очередь, ориентирован на быструю разработку. А изобретая этот велосипед, процесс разработки затянется, к тому же потеряется масса удобств, которые любой Delphi-программист воспринимает как нечто само собой разумеющееся. А если без фанатизма - то Delphi спроектирован настолько удачно, что реализует кучу паттернов уже внутри VCL, делая работу программиста с ними настолько прозрачной, что некоторые программисты даже не догадываются об этом.
В этой статье приводится пример, как реализовать на Delphi паттерн Model View Presentier, не совсем MVC, но общее направление мысли задать может. http://www.danieleteti.it/?p=67 А также ресурс http://delphixtreme.com/ - хотя в чистом виде, там инфы по MVC я сейчас не нашёл, но что-то мне подсказывает, что информация размещённая там может быть полезна. =) Ну и для ленивых - MVC фреймворк на Torry.net http://www.torry.net/quicksearchd.php?String=MVC&Title=Yes Сам не смотрел - мне очень лень. =))
ну-ну. Технологии - это одно, а костыли - совсем другое. Добавлено через 3 минуты и 14 секунд + ещё ссылочки http://www.carterconsulting.org.uk/MVP.htm http://sourceforge.net/projects/emvc http://www.experts-exchange.com/Programming/Languages/Pascal/Delphi/Q_23365012.html (промотай далеко вниз) |
| Автор: Delphist 5.3.2009, 10:34 | ||
Что-то здесь ничего не нашел, мотал аж до конца Добавлено через 1 минуту и 30 секунд Странно все статьи англоязычнае, неужели отечественных нет. Столько русских программистов... |
| Автор: Kbl4AH 5.3.2009, 11:05 | ||
Нужны пионеры |
| Автор: Delphist 5.3.2009, 12:16 |
| Нужны патриоты Добавлено через 4 минуты и 49 секунд Вообще я думаю, не стандартные темы нужно по чаще подымать на этому форуме. Это заставляет делиться нас своими впечатлениями, опытом, общаться. Когда программист постоянно живет только своими мыслями, это к хорошому не приводит. |
| Автор: vladimir74 5.3.2009, 12:23 |
патриоты чего? русского языка, Delphi, MVC? |
| Автор: Delphist 5.3.2009, 13:30 |
русского языка, почему статей на русском по MVC для Delphi не встретишь? Кругом одни буржуи |
| Автор: Akella 5.3.2009, 21:00 |
| Delphist, у тебя есть вакантное место |
| Автор: Bose 6.3.2009, 02:19 | ||
Хочешь - будь первым или В принципе, можно исследовать вопрос и написать. Но за чей счёт банкет? |
| Автор: Delphist 6.3.2009, 10:13 |
| И все же мы отходим от темы, ну неужели никто не пытается применять технологию отличающаяся от стандартной |
| Автор: Bose 6.3.2009, 18:55 | ||
конечно пытаются. Я вот, например, на днях исправлял ошибки в чужом коде при работе с Firebird-ом из потоков(!). Так вот, программист, который писал тот код отказался от использования стандартных Delphi компонентов IBX, и работал с базой через IBApi. Добавлено через 1 минуту и 47 секунд И я так и не понял зачем там использовались прямые вызовы. |
| Автор: Delphist 10.3.2009, 13:27 | ||
ну не надо х.. с пальцем путать |
| Автор: Delphist 12.3.2009, 11:35 |
| Да вижу тема не пошла |
| Автор: Bose 12.3.2009, 13:08 |
Толкай сам ;-) Расскажи, что именно тебя не устраивает в стандартном подходе, какие альтернативные наработки ты уже нашёл, какие планируешь сделать... ;) И вообще, что значит не пошла? Мы свою позицию высказали и даже пришли к консенсусу. В Delphi уже есть всё что нужно для использования MVC. Более того, Model и View уже реализованы. Программисту остаётся только сделать контроллер. |
| Автор: Delphist 12.3.2009, 19:28 |
| Сталкнулся как-то раз я с кросплатформенной библиотекой QT. По сути на ней базировался когда-то существовавщий Kylix. Так вот при изучении этой библиотеки, выяснилось что она полностью придерживается технологии MVC. Так вот этот MVC совсем иной по сравнению с делфийским MVC. Они совершенно разные. И при программировании с использованием QT ты реально чувствуешь этот MVC. Да, конечно, если вести официальный разговор, то можно говорить, да ты че, делфя эта самый, что не на есть MVC вот те модель, вот те View, вот те Controller. Нефига. Как я не стараюсь вручную разделять представление от модели вручную, но делфи волей не волей все равно меня подстигает к тому, что эти две вещи начинают переплетаться в между собой (например в контексте класса интерфейсной формы). Да можете сказать Delphist, да ты клоун и прогер ты хреновый, на что могу с 100% уверенностью сказать на делфи сделать реальный MVC вручную можно, но это такой гемор, это все равно что копать яму лопатой и экскаватором. Если для обычных классов это еще так себе, но если вопрос касается БД то сделать MVC похожий на кутовский вручную задолюаешься. Вот я и решил поинтересоваться мож что уже предумали для Делфи, какие-нить классы или внешние библиотеки или еще какую-нить бодягу |
| Автор: Kbl4AH 12.3.2009, 22:26 | ||||||||
Сорри, но возмущен до глубины души
Так программируй на QT и сотрясай воздух в соответствущей ветке форума...
ну так копай руками или силой мысли, если можешь...
Ты бы лучше БД лучше (сорри за тавтологию) изучал...
Ты уже поинтересовался 2 страницы назад... Может ты эксгибиционист интернетный? Тебе посты ради постов нужны? |
| Автор: Delphist 13.3.2009, 00:57 | ||
ну а если серьезно все таки пытал надежды на то, что в Delphi началось что-то появляться подобное. Чувствую что нет, т.к. в противном случае народ бы уже знал и дал бы ответ на мой нелегкий вопрос |
| Автор: Bose 13.3.2009, 01:08 | ||||||
Я лично не в курсе. Я только на Delphi работал нормально, а о MVC только читал.
А вот это уже интереснее. Можно с этого места поподробнее? Про QT слышал много хорошего. Что такого есть в QT, что нельзя реализовать в Delphi? И кстати, разве QT нельзя использовать вместе с Delphi? Не в смысле приложений для Kylix, а в смысле, поставить последнюю версию QT и использовать её вместе с кодом Delphi.
|
| Автор: Kbl4AH 13.3.2009, 01:13 | ||||
для меня тайна - ты гуру в БД или, наоборот, слабоват? что ты такое делаешь, что тебя не устраивает стандартные возможности? я не участвоал в дискуссии, т.к. не подкован в терминологии и данной области знаний... но с БД я работаю... поэтому... какая вообще разница - с датамодулем, без датамодуля? смысл один просто код в другом юните, а компоненты на другой закладке... при чем здесь MVC?... ЗЫ. прошу сильно не ругать, т.к. профан в столь высоких сферах... Добавлено через 7 минут и 8 секунд
слышал только отголоски, но поделюсь... мой лучший друг программировал на Делфи примерно с 12 по 22 года... а потом стал работать и работать на QT... ну там дали ему время на изучение... но щас он говорит... "Я понял, что Делфи меня тормозило и ограничивало в возможностях программирования"... что он имел ввиду я так и не понял... лично у меня сложилось мнение, что он заворожен просто интерфейсом сделанных программ, что там все очень красиво и т.п. но не более... |
| Автор: Delphist 13.3.2009, 13:34 | ||
КУТ прикрутить к Delphi не получиьтся он поставляется в открытых кодах на C++ и JAVA ну насчет слабоват - эт вряд ли. они вполне VERY GOOD, если писать проекты не большие одноразовые проекты (без дальнейшего развития выпустил версию 1.0 и забал про прогу). Если же проект большой и требуется постоянное развитие, то для его граммотного сопровождения стандратная технология не очень подходит. Объясню почему, дело в том что труд прогера можно в целом разделить на три момента: проектирование модуля (т.е. до момента кодирования прогер продумывает логику того модуля ( под модулем имеется ввиду не unit, а подзадачка базового проекта) который ему предстоит писать); собственно кодирование и наконец отладка, unit-тестирование, иправление текущих багов. Кто-то может сказать на хрена козе баян - зачем нам нужно это unit-тестирование, мы и так быстро находим ошибка и исправляем и патчим - я скажу да, но это справедливо для небольших проектов, для больших проектов написанных без MVC исправлении бага в одном месте может повлечь за собой ошибки в другом, и в ручную большой и сложный проект про скандировать весь не получиться, поэтому объязательно нужно unit-тестирования. Но опять же написание нормальных unit-тестов возможно лишь в том случае, если проект сделан по принципу MVC, в противном случае, можно задолбаться писать эти unit-тесты. Так вот стандартная технология БД далека от истинного MVC, а это в свою очередь затрудняет нам написание нормального интерфейсно не зависимого проекта ну и как следствие граммотное написание unit-тестов. |
| Автор: X-Vlad 13.3.2009, 15:05 | ||||||
почитал тему - бардак, базар ни очем.
попробовал бы поискать на оф сайте, по конфиренциям. Реально выглядит так.. пришел "дельфист" и задал вопрос "ребята, а неподскажите есть чтото новое для работы с БД, не стандартное, мне влом работать со стандартными компонентами...хочу выпендриится перед сотрудниками... " Привел бы свой пример (как ты работаешь с использованием MVC), может другие тоже покажут.
Маразм. Работаю девелопером.. проект наш длится уже больше 10 лет (более 5 млн строчек кода). БД MS SQL 2005, архитектура 3-ех звенная (client, application server, database) UnitTest пишется перед тем как ты начинаешь писать функционал (почитай умные книги), потом начинаешь кодить функционал, постоянно проверяя написанный код UnitTest-ами.
|
| Автор: Delphist 13.3.2009, 15:23 | ||
не согласен |
| Автор: X-Vlad 13.3.2009, 15:58 | ||||
конечно есть случаи (а их очень много в больших проектах) когда нельзя покрыть код юнит тестами, но это иногда говорит о плохой архитектуре проекта. Я знаю что фраза
на досуге читаем: - "Рефакторинг. Улучшение существующего кода.", Мартин Фауер - Beck, Kent. Test-Driven Development: By Example. Boston, MA: Addison-Wesley, 2003 - "Совершенный код", С. Макконнелл |
| Автор: Delphist 13.3.2009, 20:45 |
это уже читал, много бреда |
| Автор: X-Vlad 14.3.2009, 15:12 | ||
там еще две книги |
| Автор: Bose 14.3.2009, 15:54 | ||||||
+500 Писать юнит-тесты для проекта сделанного по принципу: накидали компонентов, настроили связи, подключили всё это к контролам, без выделения функционала в логичные классы - это рельный 3,14здец!
X-Vlad, скажи пожалуйста ты реально пишешь unit-тесты на delphi в этом db-приложении? Особенно интересует область тестирования application server-a. Я веду два проекта с таким же преклонным возрастом(одному более 10 лет, второй помоложе), и при попытке сообразить как покрыть тестами этот код, у меня мозг скукоживается. Я могу понять как протестировать вспомогательные классы, но как создать mock-объекты для датасетов, я пока не могу сообразить. =( Проекты состоят из клиента и бд на firebird-e, сервера приложений просто нет, а большая часть бизнес логики реализована в БД в хранимых процедурах/триггерах.
Дико это звучит пока не попробуешь. А когда попробуешь, то понимаешь, что при таком подходе, классы получаются более цельными и логичными. |
| Автор: X-Vlad 15.3.2009, 14:08 | ||||||
ну честно говоря жарптица плохая в ипользовании... разве что в маленьких компаниях и при малых обьемах данных.
У нас нетолько юниттестами покрыт код дельфи, .Net но еще и сторед процедуры. Юзаем как я писал выше MS SQL Server 2005, 2008, базы в стаблицамы в которых несколько миллионов рекордов. Насчет мокапа данных для тестирования - в ДевЕкспресах есть МемориДатасет, вот в него взаганяешь данные и работаешь с ним, или пишем коллекции и т.д. На проекте более 5000 юниттестов, несколько сотен юниттестов на сторед процы.
бывает такой код который физически невозмождно покрыть юниттестами, мы в таких случаяхъ не напрягаемся |
| Автор: Bose 16.3.2009, 14:17 | ||||
Это не имеет отношения к теме. =)
А много людей на проекте? |
| Автор: Delphist 16.3.2009, 14:35 | ||||||
mock-объекты, это что?
А насколько сильно он отличается от rxlib'овского МемориДатасета?
А вы реально пишите юнит-тесты перед тем как писать объетк? |
| Автор: X-Vlad 18.3.2009, 15:14 | ||||||||
Добавлено @ 15:15
если это необходимо. Добавлено @ 15:16
если ты пишешь юниттест на логику которой нужен набор данных например из БД, а у тебя еще не готовы ДБ изменения (таблицы, логика, данные). Вот в этом случае ты создаешь мокап данных и стравливаешь их юниттесту Добавлено через 5 минут и 40 секунд
не знаю не иследовал. |
| Автор: Delphist 18.3.2009, 15:44 |
| X-Vlad, спасибо за ответы. Добавлено @ 15:46 Тема все еще актуальна!, так что высказываемся, не стесняемся Добавлено @ 15:48 Почитал стайтеку (http://rsdn.ru/article/patterns/patterns.xml) делаю вывод, что народ все правильно понимает, что я хочу, только вот все это бы к БД, с каким-нить инструментов созданным специально для любителей БД по MVC. |
| Автор: Bose 19.3.2009, 02:13 | ||
народ понимает, что я хочу... какой-нибудь инструмент... |
| Автор: Delphist 19.3.2009, 10:11 |
под иснструментом я имел ввиду |
| Автор: Delphist 24.3.2009, 12:17 |
| Все исчепали мы себя? |
| Автор: pseud 24.3.2009, 12:57 |
Bose, X-Vlad, остальные, поживее-поживее, крутите извилинами, работа-то стоит, работу-то надо работать, а мы из-за вас пролетаем, весь воронеж ждет. я разочарован. |
| Автор: Lazin 24.3.2009, 13:03 | ||||
это называется "объектно ориентированное программирование"(с)
послушайте умных людей у этого автора есть еще одна книга: "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-ом? По моему, даже на дельфи эти уровни можно разделить и сделать независимыми. |
| Автор: Bose 24.3.2009, 13:26 | ||||
lol
Мне тоже так кажется, но по-мойму, автор хочет, чтобы ему дали готовый набор компонент "для реализации MVC" |
| Автор: Delphist 24.3.2009, 16:22 | ||||
Скажи, пожалуйста, этот букварь на русском существует или аналогичный книжки на русском |
| Автор: Kbl4AH 24.3.2009, 16:25 |
существует ЗЫ. Delphist, харош уже заниматься массажем деревянной ноги... |
| Автор: vladimir74 24.3.2009, 16:35 | ||
тебя что интересует? MVC в Delphi или руссая документация? 1. тебе кажется уже многие сказали что есть 2. я не искал, если так волнует - поищи, ненайдешь - напиши сам. Заодно и сам разберешься и может другим поможешь. А если хорошо напишешь то и книгу выпустишь и денег заработаешь |
| Автор: X-Vlad 24.3.2009, 16:48 | ||
)))) На дата модуль бросаем DbConnection, TDataSet, TQuery - вот и появился у нас Data Access Layer на форму набросали контролов, грид, батоны - вот и presentation layer ну а Bussiness logic layer можна реализовать по разному в зависимости от Бд которую используешь (например засунуть в Stored Procedures (SQL Server, Interbase, Oracle)) ну или в отдельный юнит в котором реализуешь обработку полученных данных с Data Access Layer. Вот тебе и MVC |
| Автор: Delphist 24.3.2009, 17:00 |
Ссылочку не дашь. Добавлено через 3 минуты и 7 секунд Круто, надо подумать. Delphist уже оставил метку о себе везде даже тут: http://files.rsdn.ru/26841/Delphist.jpg А вот книгу еще не написал, надо подумать |
| Автор: Kbl4AH 24.3.2009, 17:15 |
ссылок полно... очень меня порадовал http://www.tv-club.ru/collection/item419/ (Букварь для малышей от двух до пяти, 117 страниц, Издательство ООО "ШКОЛА ГЕНИЕВ", Цена: 599 руб.), но как видишь он денюжек стоит а http://lugarus.com/books/15693-bukvar.html качай на халяву |
| Автор: former 24.3.2009, 17:33 |
| Kbl4AH, жжешь. |
| Автор: Lazin 24.3.2009, 21:19 |
да, вот http://www.ozon.ru/context/detail/id/3621465/... я не понимаю, что вы тут за детский сад устроили, вместо того, что-бы обсуждать архитектуру приложений |
| Автор: Kbl4AH 24.3.2009, 22:42 | ||
так Delphist'a не поймешь, то ему про MVC ссылки нужны, то зачем-то букварь |
| Автор: Bose 25.3.2009, 01:40 |
| Kbl4AH, риальне жжошь! |
| Автор: jsa 25.3.2009, 05:22 |
| Kbl4AH, падсталом, жесть |
| Автор: Delphist 25.3.2009, 10:15 | ||
Kbl4AH , не хочешь по существу отвечать, то и нечего здесь топик керней всякой засорять. |
| Автор: pseud 25.3.2009, 10:35 | ||
офф нуууу судя по оценкам постов... |
| Автор: Frees 25.3.2009, 10:46 | ||
как спросил так и отвечают http://www.chtivo.webhost.ru/articles/mvc.php |
| Автор: tricky 25.3.2009, 16:54 |
| Что Вы на человека напали. Я считаю, что Delphist правильно сделал, что поднял такую тему. Мне, кажется, мы должны быть благодарны всем тем ребятам, которые подымают подобные дискуссии. В противном случае каждый бы из нас варился в собственном соку - и какое тогда развитие? |
| Автор: Frees 26.3.2009, 07:27 | ||
вообщето в собственном соку тут не получилось бы варится MVC это для больших проектов а большой проект это как правило работа в команде, а командой можно решить такую задачу не создавая новую тему а просто читая умные книги и интернет. в нашей команде мы так и делали и в итоге получилось некое подобие MVC упростившее нам жизнь конкретных реализации MVC сложно найти т.к. это всетаки плод чьейто не простой работы и врядли кто то будет раздовать это бесплатно зы имхо: MVC не для делфи |
| Автор: Bose 26.3.2009, 13:15 |
| Вот пример фреймворка, декларирующего реализацию MVC: http://sourceforge.net/projects/emvc p.s. Дальше описания не заглядывал. |
| Автор: yumata 1.4.2009, 16:20 |
| Есть еще такая технология - MDA (model driven architecture). Ее продвигала компания Bold, до сих пор есть набор компонент Bold For Delphi, из этого постепенно выросло ECO. К сожалению, русскоязычный форум по Bold сейчас не работает. Я сам занимаюсь разработкой ИС именно на этой технологии. |
| Автор: Delphist 1.4.2009, 19:12 | ||
Да, о Bold слышал, смотрел даже видеоролики. Интересно, конечно, но Bold помоему на стадии вымирания или я ошибаюсь? |
| Автор: yumata 2.4.2009, 08:28 |
| То, что в России он не приобрел популярности, не говорит о том, что продукт плохой. Тут есть несколько причин: 1. Продукт достаточно сложный и требует времени и достаточных базовых знаний для освоения. 2. На русском языке есть только одна книжка, был сайт "на энтузизме" в течении 3-4 лет, потом его просто забросил владелец. 2. Народ привык по старинке клепать "клиент-сервер" на SQL запросах. В двух словах: Bold - это набор компонентов, позволяющий внести классы БД в объектное пространство приложения. И вместо MyDataSet.FieldByName('FAMILY') можно просто писать: var Person: TPerson; NewPerson: TPerson; OrderList: TOrderList; begin Person := TPerson.Create; //Будет создана запись в БД NewPerson := Person; //В памяти будет создана копия объекта Person.Family := 'Delphist'; //Поле получит значение OrderList := Person.FindOrders(Now); //Будет выполнен метод объекта TPerson То есть с объектами БД работаешь как с обычными объектами Delphi. И самое главное - базу данных создаешь с помощью UML-диаграм, и после этого система САМА генерит БД и код для классов БД. Скорость разработки приложения возрастает в десятки раз! Ну и соответственно, наследование классов БД, методы классов, перекрытие методов - полностью объектная работа с БД! Более того - Bold и MDA позволяют применить совсем другой подход к созданию приложений, то, о чем и зашла речь в этой ветке форума - создать реальное MVC-приложение. Пример - www.fast-base.ru |
| Автор: Delphist 2.4.2009, 09:31 | ||||
Да вещь интересная, но почему же тогда, она не получила распространения. Если, ты хочешь сказать вот из-за этого:
Мне русские программисты не совсем тупые, и поэтому пункт 1 - это не аргумент, если вещь интересная и полезная, то она тут же получит распространение пункт 2 - почему только одна, вот не понятно почему выпустили только одну книжку пункт 3 - возможно, но это определение больше подходит для начинающих (junior) программистов И если это технология действительно супер, почему тогда западная фирма такая Borland, а теперь Embarcadero не внедрили ее в IDE Delphi? Ты можешь, Delphist почему же?, а ECO, но это тоже фигня какая-то ECO III резко отличается от ECO IV, ну так разве можно? |
| Автор: pseud 2.4.2009, 10:57 |
| Delphist, почему, почему, почему. 1: мне нужен гиперболоидный параллелокуб 2: на тебе гиперболоидный параллелокуб 1: а какого хрена твой гиперболоидный параллелокуб не признан мировым сообществом и не пользуется повсеместно? ты мне фуфло хочешь втюхать? Delphist, тебе вообще эта тема интересна? или чисто побеседовать? |
| Автор: Delphist 2.4.2009, 11:41 |
Если не была бы интересна, то я за ней так четко не следил. |
| Автор: yumata 2.4.2009, 17:58 | ||
| Так Вам "шашечки" как на такси, или ехать? Данная технология позволяет то, что Вам требуется. Но есть недостатки (правда, преодолимые). Скорость. Так как запросы к БД выполняются на клиенте, иногда требуется загружать МНОГО из БД. Пути предоления - можно использовать не родной язык OCL, а SQL, но тогда доступна не вся информация (например, RTTY). Либо использовать специальный набор компонентов для SQL-зации...
Вот как раз для начинающих программистов - очень хорошо в учебных целях! Позволяет "пощупать руками" UML - результат виден почти сразу! |
| Автор: Bose 3.4.2009, 00:02 |
Расскажи тогда пожалуйста, ты уже пощупал http://sourceforge.net/projects/emvc ? И как оно? |
| Автор: Delphist 3.4.2009, 09:43 | ||
Пока не щупал. С удовольствием бы посмотрел - но есть проблема, дело в том, что-то к этому проекту нет ни видеороликов, ни русской документации - это тормозит. Добавлено через 2 минуты и 4 секунды Мож кто может рассказать или сказать где можно посмотреть русскую документацию или видеосюжеты демонстрирующие работу по этой технологии. |
| Автор: Delphist 4.4.2009, 12:53 |
| Ну вот, сутки прошли, а никто не может подсказать русскоязычные ресурсы на технологию http://sourceforge.net/projects/emvc |
| Автор: pseud 6.4.2009, 09:23 | ||
Ну вот, сутки прошли, a Delphist так и не нашел времени покопать интернет, надеясь, что кто-то найдет время и сделает это за него. Обидно. Добавлено через 1 минуту и 50 секунд Rodman, Girder - просьба закрыть тему, ибо она распухла и завалена флудом. |