Показать сообщение отдельно
Старый 24.02.2004, 21:01   #1  
ushastik is offline
ushastik
Участник
 
88 / 12 (1) ++
Регистрация: 27.01.2004
Адрес: Южный Федеральный Округ
Извечный вопрос: кодить или параметризовать.
Уважаемый All, автоматизируем управление запасами. Имеется довольно много мелких бизнес-процессов, которые чуть-чуть не ложаться в стандартную функциональность. То есть берется группа журналов, например, "Прибыль-Убыток" и пишется ряд кастомизированных журналов, в каждом из которых создаются дополнительные удобства для пользователя, выводятся дополнительные отчеты, создаются ограничения, и т.д. Вопрос, как это программировать. Подхода вижу 2:

1. В таблице "InventJournalName(названия журналов управления запасами)" создается куча настроек, по одной на каждый кастомизированный журнал. Затем модифицируется код стандартного журнала "InventJournalLossProfit(прибыль/убыток)". При этом в соответствующих местах кода проверяется наличие той или иной настройки и в зависимости от этого скрываются контролы, запрещается редактирование, выводятся кнопки и т.д.

2. Под каждый бизнес-процесс создается новый журнал(форма), код которой во многом повторяет код стандартной формы, но при этом он уже максимально кастомизирован, и никаких настроек нет.

Первый путь очень заманчиво выглядит, если надо по быстренькому слабать что-то работающее. Но тут 2 проблемы:
- модифицируется стандартный код, кто знает, как это стрельнет при смене версии
- обилие настроек, обилие проверок и ветвлений одного алгоритма трудно понимается и отлаживается.
- поковырявшись в одном месте, можно затронуть другое, даже и не подозревая.
- очень трудно закрыть все дырки в пользовательском интерфейсе, запретить и разрешить только то, что надо запретить или разрешить.

Второй метод более надежный. Но тут тоже недостаток - надо много стандартного кода, включая алгоритмы проведения, писать много раз. Кроме того повторять во многом формы, контролы, короче, кода будет в несколько раз больше.

Хочу услышать мнение, с точки зрения стратегической. Как правильнее кастомизировать Аксапту. При этом надо учитывать именно качество решения с точки зрения смены версий, передачи проекта другой команде, разрастания объемов проекта. Должнен же быть паттерн на эту тему. Буду очень благодарен за коментарии