为什么我会在 git 上将我的 Java Web 应用程序分解为两个存储库



好吧,我只需要澄清,我不想刻薄,我不习惯这个想法。

我被要求与一个团队合作,并构建一个链接到多个API的java Web应用程序。为什么我不使用某种框架(Spring,MVC,JSP等)?相反,我被要求设计网页并将它们放入一个 Git 存储库中,然后设计应用程序的后端并将其添加到另一个存储库中。然后我们将整合两者(我不确定如何,可能是他们正在失去我)这正常吗/我们应该这样做吗?

后端与前端分开是完全有意义的,因为它们可以单独部署,甚至可以在不同的机器上部署,而且它们会产生 2 个不同的工件(一个 jar 文件和一堆 html 页面)。如果您使用的是Maven,则可以考虑拥有一个父项目,并将后端和前端拆分为2个不同的模块。关于 git,您可以探索子模块功能或在同一存储库中创建 2 个不同的文件夹。我更喜欢前者。关于集成,通常后端只是公开 REST 端点,前端执行 AJAX 调用进行交互。

如果他们后来决定保留你的前端,但用另一个实现替换后端,反之亦然。或者,如果他们想同时摆脱两者,但不能同时摆脱,他们可以折腾你,并雇用不同的人分别做前端和后端。

此方法为您提供了松散耦合和关注点分离。您将应用程序行为与用户界面/演示文稿完全分开。松耦合器具有以下优点:

  • 可以轻松地为应用程序构建不同类型的客户端,而不仅仅是基于 Web 的客户端。例如,构建移动客户端会容易得多,因为应用程序的接口仅通过其公共 API 进行。
  • 可以轻松使用不同的前端框架或完全切换到另一个框架。
  • 防止从后端到表示层的抽象泄漏。
  • 不会将前端的发布周期绑定到后端。

最新更新