【问题标题】:SOA (ish) architecture, where to place common code?西班牙)架构,在哪里放置通用代码?
【发布时间】:2014-08-01 16:29:45
【问题描述】:

我们有一个像这样的 soa-ish 架构

frontend            ->domain A ->db 
frontend->business A->domain B ->db
frontend            ->domain C ->db
frontend            ->domain A ->db 
frontend->business B->domain B ->db
frontend            ->domain C ->db

other app A
other app B

我们还有其他不属于这个 soa 堆栈的应用程序。

我们不时有以下讨论/问题:

“我在域 A 中有代码,在域 B 中也很有用,但在业务服务中没有 - 我应该把这些东西和测试放在哪里”。

让我们假设代码非常抽象且与领域无关,这是非常通用的,也可以被 soa 之外的“其他”应用程序使用。

所以问题是:

a) 将它放在一个“generic-domain-stuff”模块中,所有域都通过 maven 依赖项继承。这可能最终会不断增长,直到变得一团糟……。

b) 创建一个可供 soa 和“其他”应用程序使用的模块“generic-stuff”。这可能会导致很多小型 maven 模块......

c) 复制代码直到你拥有三个用例,然后重构为 a) 或 b)。这屏幕很干(不要重复自己)

我身边有 10 年以上“企业”经验的人,但我们似乎从来没有为总是相同的问题找到合适的解决方案/答案 :)

我很想听听你的经历

【问题讨论】:

    标签: java maven architecture soa dependency-management


    【解决方案1】:

    (b) 应该是要走的路。如果代码/逻辑如此通用,那么它最适合库。需要此逻辑的应用程序应通过 maven(或任何其他依赖管理机制)使用该库。你不应该让一个图书馆成为“神图书馆”。随着时间的推移,将图书馆分成更小的有凝聚力的部分。这样你就可以防止它变得太大而变得一团糟。不必担心许多 maven 库 - 许多小型且有凝聚力的库比一个大型的“全能”库要好。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-20
    • 1970-01-01
    • 2015-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-19
    • 1970-01-01
    相关资源
    最近更新 更多