从每个设计了模块化企业应用程序的人中,我很想知道您是如何看待模块化的,您到底是什么参数?
这更像是一个基于经验的设计问题,因此涉及到基于经验的各种意见的混合。
发布于 2010-10-18 12:35:00
您应该采用基于特性的方法,因为基于层的模块化带来的好处很少。当然,这并不意味着您应该完全忽略(软件)层。
如果您认为模块是可部署的组件(例如Maven构件、JARs),那么主要的动机之一是将应用程序分解为可以为某些客户/部署打开或关闭的部分。在这种情况下,基于特征的模块化是显而易见的方法。
即使您确信不需要这样的部署,我仍然建议采用基于特性的模块化。与层之间的接口相比,功能模块之间的接口往往要小得多(因此更容易管理)。而且,在两个相邻的层上工作的人员通常是相同的,因此执行模块分离很难,而且常常会阻碍隔离带来的任何好处。
除非您正在考虑“大层”(UI、业务逻辑、数据库),否则它是可行的。在这种情况下,我建议“矩阵模块化”(即特性和层模块化),但采用基于特性的团队/个人职责,为困难部分提供一些专家角色。例如,一个GUI设计器和几个程序员各自工作不同的特性模块,其中包括GUI。
至于问题3:试着更多地分解这两个模块。它们通常太粗糙了。如果他们不是经过一些思考/讨论,你应该人为地分裂他们只是为了避免循环。如果觉得不对,(尤指)。如果你以非常小的模块结束,把它们合并成一个模块。只是不要尝试将合并作为第一步。
https://stackoverflow.com/questions/3955427
复制相似问题