将大型应用拆分为更小的模块 - maven

时间:2017-10-26 03:28:58

标签: java maven architecture web-deployment

我们将庞大的项目分成更小的模块。

例如:A,B模块在一个应用程序中,我们希望使它们独立,独立编译。有许多相互参照。

分割依赖项的最佳方法是什么? 我们期待编写一个接口并将其作为服务公开给每个接口。 AImpl(一些需要由B调用的类)然后B使用class.forName和typecasts到AImpl。在运行时,它可以工作。

需要大量的返工。这是正确的做法吗?

感谢。

1 个答案:

答案 0 :(得分:0)

我至少会考虑直叉。这允许您的各个项目独立发展。您可以清理他们不会使用的位,如果您确实需要共享库,请确定它们的后缀,并重构以根据需要使用它们。

我在过去发现,当我以这种方式完成时,我发现了"依赖"并不像我想象的那样普遍,而且多年来我把它们变成了相同的形状。

例如,在模块A中(让我们称之为结算)我会有一个客户,其中包含信用条件,未结余额等。在模块B中(称之为支持)我&# 39; ll拥有相同的客户,但他们将拥有完全不同的属性,如软件版本或支持历史记录。

除了被叫"用户"以及具有共同的ID值之外,它们彼此无关,并且不属于同一类。一旦模块A从模块B分叉,用户对象变得更小,更集中。

这与人们在微服务中所做的一样。他们认为需要分享的东西并不需要真正分享,事实上,它们可以从分解它们中获益。它并不是万灵药,因为有时确实存在真正共享的复杂对象,但它并不像你想象的那么普遍。通常它只是两个不同的事物具有相同的名称",因此被放入相同的类/模块中。