我公司的产品是根据其中一家客户银行提供的规格定制的。现在,由于该产品取得了成功,另一家银行接近了同样的情况,我们不得不进行一些代码更改,以便为他们提供银行所需的自定义。现在,参议员是接近我们的银行数量每天都在增加,我的团队期待某种推广,以便在交付时配置产品,只需最少的代码更改。现在我的问题如下: -
注意:我们使用Spring3主要是MVC模块来构建解决方案,并期待某种工业产品可以定制,并且可以轻松交付,甚至过程应该快速,没有陡峭的学习曲线。 / p>
答案 0 :(得分:0)
没有简单的(一刀切)解决方案。自定义范围从化妆UI样式,到数据模型级别的新字段/关系的添加,业务逻辑的更改等,工作流的更改。
处理这个问题的好方法是弄清楚不同实现中的常量以及需要更改的内容。返回并进行必要的更改,以便通过添加新代码而不是修改现有代码(开放式原则)来更轻松地自定义这些内容。选择性地使用工作流引擎,业务规则引擎可以使某种定制变得更容易。
目标应该是努力建立一个具有70-80%核心功能的公共代码库,然后进行额外的15-20%实现特定定制。
通过使用一些拖放UI甚至XML / db配置来构建可以动态配置的东西的方法通常比你有一个设计良好的核心模块钩子的方法复杂几个数量级。允许通过编写新代码进行自定义。
您可以查看OFBiz,OpenERP等内容,了解如何操作以及它们往往会变得多么复杂。
您还可以查看现代代码生成框架,例如Spring Roo,Sculptor等,这些框架可以帮助您构建可通过编写其他代码轻松自定义的基础产品。