24.02.2004, 21:01 | #1 |
Участник
|
Извечный вопрос: кодить или параметризовать.
Уважаемый All, автоматизируем управление запасами. Имеется довольно много мелких бизнес-процессов, которые чуть-чуть не ложаться в стандартную функциональность. То есть берется группа журналов, например, "Прибыль-Убыток" и пишется ряд кастомизированных журналов, в каждом из которых создаются дополнительные удобства для пользователя, выводятся дополнительные отчеты, создаются ограничения, и т.д. Вопрос, как это программировать. Подхода вижу 2:
1. В таблице "InventJournalName(названия журналов управления запасами)" создается куча настроек, по одной на каждый кастомизированный журнал. Затем модифицируется код стандартного журнала "InventJournalLossProfit(прибыль/убыток)". При этом в соответствующих местах кода проверяется наличие той или иной настройки и в зависимости от этого скрываются контролы, запрещается редактирование, выводятся кнопки и т.д. 2. Под каждый бизнес-процесс создается новый журнал(форма), код которой во многом повторяет код стандартной формы, но при этом он уже максимально кастомизирован, и никаких настроек нет. Первый путь очень заманчиво выглядит, если надо по быстренькому слабать что-то работающее. Но тут 2 проблемы: - модифицируется стандартный код, кто знает, как это стрельнет при смене версии - обилие настроек, обилие проверок и ветвлений одного алгоритма трудно понимается и отлаживается. - поковырявшись в одном месте, можно затронуть другое, даже и не подозревая. - очень трудно закрыть все дырки в пользовательском интерфейсе, запретить и разрешить только то, что надо запретить или разрешить. Второй метод более надежный. Но тут тоже недостаток - надо много стандартного кода, включая алгоритмы проведения, писать много раз. Кроме того повторять во многом формы, контролы, короче, кода будет в несколько раз больше. Хочу услышать мнение, с точки зрения стратегической. Как правильнее кастомизировать Аксапту. При этом надо учитывать именно качество решения с точки зрения смены версий, передачи проекта другой команде, разрастания объемов проекта. Должнен же быть паттерн на эту тему. Буду очень благодарен за коментарии |
|