![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
куча query,table и т.д.
zdm © (2006-08-10 10:11:00)Всем привет, как Вы думаете, что лучше взять один компонент(ну допустим query или table) и во всем коде проги пытатсься работать только с ним(что в принципе можно ,,, не считая ситуаций если какие-то компоненты отображения инфы БД явно подвязаны), или лучше не напрягаться , и на каждую таблицу или процедуру, функцию, вьювер,,,создать отдельные компоненты, привязать их к элементам отображения и жить спокойно(понятное дело ОЗУ очень ценная вещь), но насколько это рентабильно.....?
Ega23 (2006-08-11 18:36:00) [1]
> Вот прийдёт новичёк, посадишь его за машину и пущай изучает
> проэкт, можно засекать время...
Проект закрыт, если чё.
Собственно, там одих Action-ов штук 100. Их куда прикажете выносить? В dll?
Neo Trinitron (2006-08-11 18:34:00) [2]> И что? У меня модуль главной формы на 8000 строк кода. Там на 3 экрана только описание компонентов. И ничё, нормально работает.
Вот прийдёт новичёк, посадишь его за машину и пущай изучает проэкт, можно засекать время...А если там ещё и датасеты есть, то вообще полный алес среди этой шелухи. Имхо 8000 строк кода в одной форме - ненормальный случай. У меня была такая форма, всё что мог вынес в отдельный модуль в виде процедур, функций, объектов, чтобы под ногами не путалось. Датасеты и всю их начинку, естественно в датамодуль...Остались в модуле формы те же преславутые три-четыре экрана. И когда я уходил с работы я обучал парнишу, обучение заняло 30 минут. Описание всех функций и процедур успешно он изучил сам и систему понял довольно таки быстро...Результаты, однако.
Ega23 (2006-08-11 18:08:00) [3]
> В модуле формы стало кода всего на три экрана, до модернизации
> было 7 (!) экранов.
И что? У меня модуль главной формы на 8000 строк кода. Там на 3 экрана только описание компонентов. И ничё, нормально работает.
Neo Trinitron (2006-08-11 17:57:00) [4]Ega23,
>а нахрена создавать дата-модуль, если можно на форму положить???
Если до сих пор не понадобилось, то уже и не понадобится...
evvcom,
>За 10 лет ни разу? Интересно, что ж ваш отдел (группа) пишет, "Hello World"?
Очевидно не то что пишете Вы, но это не значит что я пишу "Hello Word". Если такой умный и опытный, зачем делать такие глупые предположения? Попытка рассказать что у меня дурацкий стиль программирования? А ещё не терпите обезъянью работу, но похоже обезъяньи развлечения рулят, я угадал?
Я тоже мог бы рассказывать что кидать на форму датасеты, обработчики событий датасетов и прочий прилегающий код - дилетанство, потому что мне так не удобно, но я же не делаю так! Зато приходилось разгребать код где на формах валяются датасетов куча. Вынес всё в датамодули, стало реально видно логику самой формы. В модуле формы стало кода всего на три экрана, до модернизации было 7 (!) экранов. Извините, но меня никто не переубедит что так как Вы предлагаете удобнее. Я датамодули строю по принципу классов: выделяю общности, включаю датамодули с общностями в датамодули реализации отдельной подсистемы. Кажется что всё сложно, на самом деле к датамодулям общим я практически никогда не обращаюсь при разработке: один раз сделал там всё и открываю редко, по мере необходимости, а к датамодулям подсистем я обращаюсь чаще, но там отсутствует куча датасетов, которые являются общими и которые меня мало интересуют. Это же обыкновенный принцип ООП... Не понятны затруднения...
evvcom (2006-08-11 17:18:00) [5]> Я, например, с такой ситуацией не сталкивался
За 10 лет ни разу? Интересно, что ж ваш отдел (группа) пишет, "Hello World"?
> [35] Ega23 © (11.08.06 17:13)
И я о том же... Все, ушел...
ANB (2006-08-11 17:18:00) [6]Я обычно делаю так - статику в дата-модуль. Динамику - на форму или вообще в воздухе оставляю (главное - не забыть грохнуть).
Если сама форма динамическая, то проще на нее все и покидать. Хотя все равно придется вязать к статической сессии в дата-модуле.
Ega23 (2006-08-11 17:13:00) [7]Вопрос: а нахрена создавать дата-модуль, если можно на форму положить???
Neo Trinitron (2006-08-11 17:02:00) [8]>А в коде формы ты к датамодулю как обращаешься?
Можно сделать типа этого: в форме локальная переменная
MyDataModule: TMyDataModule;
...
procedure TForm1.Create...;
begin
MyDataModule: TMyDataModule.Create...
...
end;
Не лучший вариант, многое зависит от задач и способов реализации. Я, например, с такой ситуацией не сталкивался, но если прийдётся, не проблема.
evvcom (2006-08-11 16:52:00) [9]> Кто Вам мешает создать динамически второй датамодуль для
> второй формы?
А в коде формы ты к датамодулю как обращаешься?
Ega23 (2006-08-11 16:43:00) [10]
>
> По поводу форм. Кто Вам мешает создать динамически второй
> датамодуль для второй формы? Или я не понимаю о чём речь.
> ..
>
Речь о повторном использовании кода.
Neo Trinitron (2006-08-11 15:59:00) [11]evvcom,
Это Ваш стиль программирования, а то мой, спорить имхо глупо.
>Вот обезьянью
>работу я и пытаюсь избегать по возможности
А я наоборот пытаюсь всю работу разложить на такие простые кусочки чтобы даже дресированная обезъяна могла разобрать мои каракули. Не буду спорить, программируйте как Вам нравится, а новички пускай попробуют так и так и выбирут что им ближе.
По поводу форм. Кто Вам мешает создать динамически второй датамодуль для второй формы? Или я не понимаю о чём речь...
Lexiy (2006-08-11 13:47:00) [12]угу понял ... спасибо :)
evvcom (2006-08-11 13:25:00) [13]> [28] Lexiy (11.08.06 13:15)
> грубо говоря такая байда куда можно
правильно
> а доступ в юнитах
стандартно через объект-наследник от TDataModule
Lexiy (2006-08-11 13:15:00) [14]ммм ... грубо говоря такая байда куда можно свалить все компоненты что бы не мешались на формах ??? я правильно понял ??? .... а доступ в юнитах как реализуется стандартно или нет ???
Lexiy (2006-08-11 13:13:00) [15]evvcom
а материалы по работе ??? или в примерах поискать ?
evvcom (2006-08-11 12:54:00) [16]> [23] Neo Trinitron © (11.08.06 10:15)
> 1. Совершенно не понял что такое форма конкретного класса...
Очень странно, учитывая 10 летний стаж. Например, создаем форму-справочник TMyForm, которая связана с датасетом на датамодуле. Открываем в приложении этот справочник: TMyForm.Create(Application).Show;. Создаем какую-то 2-ую форму TForm2, которая использует справочник класса TMyForm, но используя дополнительно какой-то фильтр данных. Каково будет решение? Создать еще один объект этого конкретного классаTMyForm, наложив нужные фильтры или использовать уже созданный объект-форму, испортив своими фильтрами прежний вид формы? И что в этом случае делать с НД?
2. Подсистемы разные бывают...
3. Заметь есть разница между "трудно найти" и "еще нужно найти". Кроме того, я упомянул про D7, где переключаться для этого вовсе необязательно.
> смотрю Uses
> Ctrl+клик мышей
+ клик на датасете
> Что тут сложного? Уровень дрессированной обезьяны
Вот обезьянью
работу я и пытаюсь избегать по возможности. В моем же случае только "клик на датасете". Я уже писал, что форму я не перегружаю подобными компонентами, потому искать их ну очень просто.
> Попробуйте так, не пожалеете.
Пробовал когда-то. Кажется во 2-ой или 3-ей версии они появились. Но даже 10-15 пар dataset-datasource на одном датамодуле меня раздражали сложностью визуального поиска нужного компонента. Сейчас у меня есть один датамодуль, на котором лежат DBSession, ConnectDialog, ImageList и 4 общих глобальных датасета. Все.
> [24] Lexiy (11.08.06 12:14)
> помогите не просвещеному все понял кроме понятия дата модуль
> ... что за зверь
Файл - New - Data Module
Lexiy (2006-08-11 12:16:00) [17]кстати хочется добавить к 16 ... вариант рисовки запросов в Query чреват долгим поиском его по форме ... сам не любил пока их в программе не стало больше 30 :)
Lexiy (2006-08-11 12:14:00) [18]ммм помогите не просвещеному все понял кроме понятия дата модуль ... что за зверь ... а то интересно .... по вашим рассуждениям очень красивая штука выходит :)
Neo Trinitron (2006-08-11 10:15:00) [19]evvcom,
1. Совершенно не понял что такое форма конкретного класса...
2. Поскольку для каждой подсистемы свой датамодуль, то датасетов на нём не так уж и много и каждый из них кстати подписан. Ещё скажи что на обычной форме один датасет чем-то визуально отличается от другого...
3. Трудно найти? Странно! Мне легко! Открываю нужную форму, смотрю Uses, там находится обычно модуль типа UDM... Это и есть датамодуль, Ctrl+клик мышей по этому модулю и нужный датамодуль открыт. Что тут сложного? Уровень дрессированной обезьяны. :) Кроме того, куча неинтересного кода работающего с базой реализовано в датамодуле, что даёт вполне понятные преимущества, скрывая его от разработчика.
Могу с полной уверенностью сказать что от этой методы не отойду ни за что. За 10 лет мытарств дошёл до этого, чему очень рад. Попробуйте так, не пожалеете.
Sergey13 (2006-08-11 09:38:00) [20]> [21] evvcom © (11.08.06 09:29)
Большие и сложные проекты вообще труднее писАть, чем маленькие и простые. (из личного опыта)
8-)