大型企业 Java 应用程序 - 模块化

2024-01-09

我在一家全国性的公司工作,所以我们开发的软件规模很大。

我们的核心系统是基于网络的,包括webservices。我们目前正在重新设计整个项目,现在是开始项目结构的时候了。

我们有大约 7 个 Web 模块,包括基于Struts2 and Spring 3.1. A Webservice核心基于JAX-WS and Spring 3.1

我的问题是为这样的项目设计项目结构和模块化的最佳实践是什么:

我们一定会使用Maven and OSGi如果需要的话。我在想类似的事情

WebProject.war
   |---Web.xml
   |--- Libs
   |
   |--- Web Module1.jar
   |--- Web Module2.jar
   |--- Web Module3.jar
   |--- Web Module4.jar
   |--- Web Module5.jar
   |--- Web Module6.jar

 WebService.war
   |---Web.xml
   |--- Libs
   |
   |--- Service.jar
   |--- Service2.jar

 EJBProject.jar
   |
   |--- module.jar
   |--- module2.jar

这是我个人的想法,但我们正在寻找更好的模块化的东西,以便我们可以工作和部署WebModule1.jar不影响其他模块和主项目WebProject.war。此外,我们希望专业团队只拥有他们项目的代码,所以如果一个团队必须只与Service2.jar在他们的IDE他们只会有代码Service2.jar以及一个已编译其他项目的资源项目。

Thanks


模块化的关键方面是您的模块知道尽可能少的信息,以便它可以在许多不同的上下文中重用。错误仅在违反假设时才会出现,最小化假设是最大的错误杀手。 OSGi 提供了像 µservices 这样的工具,它们非常适合允许假设保持本地化。

您的布局看起来非常像一个 Web 项目,恕我直言,这是错误的,因为我们必须自己开发的大多数代码应该独立于用于呈现它的技术。所有这些技术都可能在不久的将来发生变化,因为网络应用程序正在迅速转移到浏览器,浏览器再次成为胖客户端。 IE。如果您看到纯消息传递正在做什么,那么非常现代的 REST 界面已经感觉非常过时了。所有这些波动性意味着您希望使模块尽可能解耦。

因此,我永远不会将任何域代码与任何与 Web 技术相关的库相耦合。这些传递依赖将在(不久的)将来伤害你。构建小型内聚的非耦合模块,然后将它们用作乐高积木来构建您的应用程序。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

大型企业 Java 应用程序 - 模块化 的相关文章

随机推荐