Задать вопрос

Проектирование приложений в delphi?

Всем доброго времени суток!


Собсна вопрос — как грамотно спроектированть приложение с учётом возможностей среды Delphi?


Например:
Задача — занесение в базу данных списка программ с их описанием, возможна древовидная структура с разделами.

Размышления — допустим, работаем с базой firebird, для этого у delphi есть отличные компоненты + на вкладке «Data controls» имеем компоненты для отображения информации сразу из датасетов.

Вопрос где описывать логику работы программы? Прямо в форме писать всю логику, вроде как бы не по фен-шую, которая гласит что надо разделять представление и логику. Выносить всё в отдельный юнит, тогда становится не очень удобно работать с базой, если описывать все настройки датасетов вручную. Можно, кончено, делать на Data Module, но мне кажеться есть способ поизящнее… или нет?


Поделитесь мыслями кто как строит приложения? Какие паттерны или методики применяет.
  • Вопрос задан
  • 5931 просмотр
Подписаться 8 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 8
@YourChief
когда классы, используемые логикой программы вшиваются через её морду нормальный стиль ООП уже потерян. отчасти поэтому делфи и си++ билдер не используют для крупных и серьёзных проектов. вы можете либо разработать приложение быстро, сделав всё прямо в форме, либо создавать экземпляры этих контролов в отдельном модуле (да, такое тоже возможно). второе, конечно будет правильнее, но я бы уже не заморачивался особо.
Ответ написан
@korvindest
Самый минимум что должно быть это:
1. Слой работы с базой представляющий данные таблиц как объекты. (Чтение/Запись/Изменение/Удаление)
2. Слой бизнес логики работающий с этими объектами.
3. Слой обработчиков формы, который дергает бизнес логику.
4. Формочка.

Кроме этого бизнес логику еще могут дергать различные шедулеры, которые выполняют операции по расписанию.

Но реализуя все это на Delphi вы обрекаете себя на отсутствие приятных фреймворков и вам придется многие вещи переизобретать самому.

Преимущества легкой работы с базой и быстрого клепания формочек уже давно есть не только у Delphi, но и у многих других (например Java и C#).
Так что рекомендую рассмотреть вариант перехода, на более популярные и поддерживаемые языки.
Ответ написан
Комментировать
darked
@darked Автор вопроса
Перейти на другие языки не могу. Проект уже реализован, нужно дополнить функционал и поддерживать его… Поэтому Delphi!

Но писать тем путём, к которому подталкивает среда уже больше нету сил, кучу кода приходится писать из формы в форму… Да и что — то изменять уже становится проблемно… Поэтому и хочется «причесать» проект. Но вот как это сделать с минимальными потерями.
Ответ написан
Max_D
@Max_D
Не знаю насколько в этом плане хорош FireBird, но иногда хорошим подходом бывает переложить бизнес-логику в обработчики и исполняемые процедуры SQL-сервера. Тогда вся логика сидит на сервере, а приложения банально работают с базой через таблицы-запросы. Удобно, если планируются альтернативные клиенты (мобильный, PHP-веб и т. д.).
Ответ написан
Комментировать
@Pyatochkin
как вижу, реального обсуждения архитектурных вопросов не вышло… а жаль… ладно, еще раз хочется напомнить автору вопроса, что Delphi обладает массой возможностей для написания лаконичного и поддерживаемого кода с нормальной архитектурой. по архитектуре ПО (обычно именно это подразумевают под «проектированием приложения») во всех языках идеи почти одни и теже ;) — тут спасает чтение литературы по разработке ПО (паттерны это еще не все...), потом пробуем применить прочитанное, повторять предудыщие 2 действие до достижения просветления :)
Ответ написан
@Pyatochkin
сделал то, на что давно не мог решится ;) — наброcал пример к статье про MVC в delphi. в принципе, идея с фреймами должно быть ясна… про иерархию форм тема не раскрыта, но если будет интерес, можем продолжить.
Ответ написан
@luis
Решайте задачи инструментами, для этого предназначенными.
У FB замечательно работают триггеры и хранимые процедуры, у Delphi - скорость проектирования GUI и возможности давно проверенных фреймворков для различных применений. Для Вашего случая - классические древовидные структуры никак не связаны с языком программирования и БД.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы