** Harold |
Отправлено: 21.11.2005, 22:41 |
|
Не зарегистрирован
|
Имеем — переменный набор "железок" контролируемых прогой (задания, показания, состояния и решения, принимаемые на вышеперечисленной основе) с выводом всей этой "пурги" на "красивую" и понятную user'у Форму(ы) и анализируемые с помощью этой же Формы лог'и.
"Железки" "разбиты" на соответствующие классы (ну, уже, практически, уже компоненты)
Больное место — меняется количество (иногда и "качество" — новый класс) "железок" и алгоритм принятия решений на основе "задания, показания, состояния" "железок".
Как-то меня "пугает" разнообразное количество версий базовой проги — пока успеваю отследить — но это не "жизнь"! (Проблема гибкого назначения "входов-выходов и преобразования данных" уже не проблема...).
То ли на классы "разбил" неверно (да, вроде и правильно...), то ли
не владею "системным" подходом к таким "глобальным" проблемам... (ну, радиоинженер я, а не специально обученный "программер" ...)
Отправьте куда-нибудь почитать или совет дельный дайте, пожалуйста... Кризис, блин! Затраты времени на "масштабирование" проги не лезут в удобоваримые рамки... ;(! Жить-то когда!!!
Спасибо за внимание...
|
|
Rius |
Отправлено: 22.11.2005, 06:48 |
|
Мастер участка
Группа: Участник
Сообщений: 321
|
плагины (plugins) на основе dll и одинаковых функций в них, либо даже классов в dll
все что зависит от конкретной железки — вынести в библиотеку
|
|
** Harold |
Отправлено: 22.11.2005, 18:14 |
|
Не зарегистрирован
|
Тогда и "думатель" и обработчик поведения формы тоже надо выносить в отдельные классы, а оставлить только "пустышку"-форму, от которой можно только получить сообшение, что нажали "кнопку" или послать ей сообщение о смене "надписи"... Т.е. в форме не должно быть ни одной собственной сколько-нибудь серьезной функции... Так?
А можно ли разные формы подключать/отключать от проекта в таком случае? |
|
Rius |
Отправлено: 23.11.2005, 06:49 |
|
Мастер участка
Группа: Участник
Сообщений: 321
|
форму можно брать из dll
только в свете QUOTE | Тогда и "думатель" и обработчик поведения формы тоже надо выносить в отдельные классы, а оставлить только "пустышку"-форму, от которой можно только получить сообшение | непонятно, насколько эти программы должны быть похожи
|
|
Asher |
Отправлено: 23.11.2005, 09:18 |
|
Мастер участка
Группа: Модератор
Сообщений: 550
|
Привет.
Я тут подумал, но стесняюсь спросить
Вы изучали книги вроде
Э.Гамма, Р.Хелм, Р.Джонсон, Дж.Влиссидес.
Приемы объектно-ориентированного проектирования.
Паттерны проектирования (это базовая)
и
Алан Шаллоуей, Джеймс Р. Тротт
Шаблоны проектирования.
Новый подход к объектно-ориентированному анализу и проектированию (это хм... разъяснение)
Во второй подробно расписано, как опираясь на паттерны из первой эффективно решать задачи подобные Вашей.
P.S. Стесняюсь уже потому, что задашь простой уточняющий вопрос — а народ обижается, типа "...за кого ты меня держишь???"
|
|
** Harold |
Отправлено: 23.11.2005, 09:26 |
|
Не зарегистрирован
|
Программы похожи — управление с помощью мелких "железок" одной большой "мегажелезкой". Просто требования иногда отличаются — кнопок управления может быть больше/меньше, "лампочек" (дискр. индикатор) больше/меньше, показаний от приборов (аналог. сигнал)больше/меньше/разных, задание (в аналог. виде) и т.д.
Т.е. можно как в детском (и не только ) конструкторе из этих элементов чего-нибудь соорудить — соответственно формы (иногда слегка, а иногда и нет) разные, "думатели" тоже могут отличаться... да еще про "аварийные" ситуации на "мегажелезке" оно "голосом" приспособлено рассказывать — что случилось и где чинить...
"Железки " в dll, "думатель" в dll, звук в dll...
Осталась "голая" Форма? Так получается? |
|
** Harold |
Отправлено: 23.11.2005, 09:38 |
|
Не зарегистрирован
|
"на обиженых воду возят" — говорила моя бабушка...
Нет не читал — только недавно понял, что можно ,конечно, через if-else можно написать (и написал), но через пол-года "это" превращается в монолит — где копать-то не сразу вспомнишь, если что... Переписываю на ООП — нравится, только знаний и мозгов "маловато будет..."
Страуструпа уже купил |
|
poland |
Отправлено: 23.11.2005, 14:27 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 16
|
QUOTE (** Harold @ 23/11/2005, 09:26) | требования иногда отличаются — кнопок управления может быть больше/меньше, "лампочек" (дискр. индикатор) больше/меньше, показаний от приборов (аналог. сигнал)больше/меньше/разных, задание (в аналог. виде) и т.д. |
ИМХО ваша прога из АСУшной шелобушки разрастается до ГИСа. Писать самому ГИС гиблое дело — их уже немеряно и это работа не для одного (но есть демо-версии). Как устроены ГИСы можно понять из их описания.
Обычно это сборка из
1)БД (SQL) , где лежат описания всех элементов системы, их связей, способов отрисовки, команд им соотв. и т.п.;
2)Viewera, обычно с интерактивностью;
3)целой охапки софт-УСО (плагины или интерфейсы под каждую железку, м.б. с наследованием, агрегированием и т.п.);
4)средств конфигурирования (Настройка) всего хлама;
5) м.б. чего забыл
ГИС задает жесткий каркас — новая железка обычно требует вмешательства во все элементы, но структура софта не изменяется.
Очередная Программа — это прописывание какой-то пользовательской конфигурации в БД и иных конфигур. файлах. |
|
Asher |
Отправлено: 23.11.2005, 19:06 |
|
Мастер участка
Группа: Модератор
Сообщений: 550
|
Привет.
Первую можно скачать здесь Anatolix
Вторую в электроноом виде пока не встречал.
ИМХО лучше купить обе. ~300-350 рублей в сумме будет.
|
|
** Harold |
Отправлено: 23.11.2005, 22:09 |
|
Не зарегистрирован
|
Спасибо всем за участие. Почитаю книжек умных, может, полегчает .
Наверное, ГИС — хорошо и правильно, но что уже есть, то есть...
Пока у меня более навязчивой идеи, что на каждый новый логический элемент системы нужно создавать свой класс и под новую конфигурацию свой класс "думателя" нет...
Ашер, спасибо за ссылку — пойду знакомиться с инструкцией для "изобретателей велосипедов" |
|