oo изменение программы и бизнес-правил

Я поддерживаю специально созданное приложение электронной коммерции с высоким уровнем объектно-ориентированного подхода. Первоначальный дизайнер сделал несколько предположений, таких как: - никогда не будет больше трех типов налога с продаж (государственного, национального и хамонизированного) - каждый тип налога с продаж может иметь только одну ставку. - каждому штату будет присвоен один из трех видов налогов.

Он должен был знать лучше, но я думаю, что в то время это казалось разумным ... Внезапно каждый штат устанавливает свою собственную «согласованную» налоговую ставку.

Проблема: на 3 уровня ниже по стеку объектов у меня есть метод расчета налога, который использует только сумму и тип налога. Теперь я столкнулся с задачей довольно большой реструктуризации приложения, которое у меня мало понимания или мало средств для изучения.

Я склонен вставлять код состояния в значение сеанса и выполнять на другом конце жестко запрограммированные вычисления. (1 день) вместо реструктуризации (1-2 недели ??)

Это мое воображение, или у объектно-ориентированных приложений более сложная кривая обучения, и их труднее поддерживать, когда бизнес-правила принимают неожиданный поворот?


person big ralph    schedule 13.07.2010    source источник


Ответы (1)


Это мое воображение или у OO-приложений больше времени на обучение ...

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

... и может быть труднее поддерживать, когда бизнес-правила принимают неожиданный оборот?

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

person Mike B    schedule 13.07.2010
comment
В некотором роде. Я считаю, что кривая круче, но намного короче, чем приложение, построенное на функциональном коде. Круче чего? - person big ralph; 14.07.2010
comment
Круче означает, что объектно-ориентированное приложение сложнее понять, но на это уходит меньше часов. Приложение функционального типа может потребовать небольших усилий, чтобы сразу понять, но может потребоваться гораздо больше часов, чтобы полностью принять его. Обе ситуации предполагают, что разработчик с самого начала ничего не знает о продукте. - person Mike B; 14.07.2010