首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >web应用程序的通用模块化设计

web应用程序的通用模块化设计
EN

Stack Overflow用户
提问于 2010-10-17 21:39:24
回答 1查看 923关注 0票数 4

从每个设计了模块化企业应用程序的人中,我很想知道您是如何看待模块化的,您到底是什么参数?

  1. 是基于层的模块化(如控制器/web模块、服务模块、域模块)是一种更好的方法吗?
  2. 还是基于特征的模块化更好?为什么?
  3. 在基于特征的模块化情况下,如何防止/解决依赖于彼此服务的各个功能模块之间的循环依赖关系?

这更像是一个基于经验的设计问题,因此涉及到基于经验的各种意见的混合。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-10-18 12:35:00

您应该采用基于特性的方法,因为基于层的模块化带来的好处很少。当然,这并不意味着您应该完全忽略(软件)层。

如果您认为模块是可部署的组件(例如Maven构件、JARs),那么主要的动机之一是将应用程序分解为可以为某些客户/部署打开或关闭的部分。在这种情况下,基于特征的模块化是显而易见的方法。

即使您确信不需要这样的部署,我仍然建议采用基于特性的模块化。与层之间的接口相比,功能模块之间的接口往往要小得多(因此更容易管理)。而且,在两个相邻的层上工作的人员通常是相同的,因此执行模块分离很难,而且常常会阻碍隔离带来的任何好处。

除非您正在考虑“大层”(UI、业务逻辑、数据库),否则它是可行的。在这种情况下,我建议“矩阵模块化”(即特性和层模块化),但采用基于特性的团队/个人职责,为困难部分提供一些专家角色。例如,一个GUI设计器和几个程序员各自工作不同的特性模块,其中包括GUI。

至于问题3:试着更多地分解这两个模块。它们通常太粗糙了。如果他们不是经过一些思考/讨论,你应该人为地分裂他们只是为了避免循环。如果觉得不对,(尤指)。如果你以非常小的模块结束,把它们合并成一个模块。只是不要尝试将合并作为第一步。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3955427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档