在现有体系结构中开发新的组件/子应用程序

时间:2016-04-05 11:35:10

标签: spring architecture

我有一个相当大的Spring MVC应用程序(80K loc),我管理。我们的团队将开发一个新的功能/子应用程序。

问题是,我们应该构建它/将其部署为自己的应用程序(一个全新的WAR),还是将其构建/部署为当前应用程序的一部分(现有WAR的一部分)?每个人都有利弊吗?

2 个答案:

答案 0 :(得分:0)

您没有提及现有应用的效果。但是我会假设它没有很好地维护,因为你提到它将被替换。因此最好使用新的应用程序。与将现有应用程序捆绑在一起相比,这种方法有许多优点:

  1. 由于多种兼容性和技术债务问题,您可以使用旧应用程序可能无法实现的最新和最好的技术(如微服务)。
  2. 您无需担心潜在的回归问题。
  3. 这是整个团队学习构建软件之美的好机会。
  4. 关注点分离。即使你的模块彼此之间不那么耦合。
  5. 这种方法也有一些缺点,但从长远来看,它会得到回报。

    1. 团队可能需要一段时间来学习新东西。
    2. 如果设计人员不熟悉软件的功能方面,那么实施可能会在稍后阶段受到影响。
    3. 如果你打算超灵活,需要一个像Docker这样强大的技术平台。

答案 1 :(得分:0)

这是对旧问题的重述:我应该就地修改此应用程序,还是废弃和重写。答案几乎总是,就地修改/升级。请阅读Joel's position,并将其铭记于心。我知道诱惑总是从头开始,但这几乎总是一个错误。

有许多方法可以使用遗留代码,但不能将其强烈耦合到新应用程序。我发现Working Effectively With Legacy Code是一个很好的资源。