1

我正在创建一个完整的网站,它将我成为一堆较小的网站的集合体。当然,它们都是相互关联的,但是不同的人会出于不同的原因登录到不同的部分。

我试图摆脱的一件事是单体架构,我喜欢将所有内容分解为子项目的想法,这样一个团队可以从事一个项目,一个团队可以从事另一个项目,等等。

我的问题:我听到越来越多的人通过 Restful API 进行项目间通信,而不是直接访问数据库。

例如:

                app 4 
                  |
app1 ----->   central core <------app2
                  |
                app 3

因此应用程序 1-4 将通过 API 与中央核心进行通信。他们将为自己的特定应用程序拥有自己的单独模型,但中央核心将包含大部分应用程序。

我的问题:进行这种设计是正确的实现,还是我应该坚持使用包含一个模型实现的传统单体项目?

我在哪里可以获得良好系统架构的示例?

谢谢

4

1 回答 1

1

毫无疑问,将功能抽象为 API 是减少维护开销的正确方法。你应该看到像 llvm 这样的项目。

将您的应用程序分解为“核心”和“驱动程序”所带来的问题是,软件升级有点棘手。因为现在您必须同时升级内核和驱动程序。这是将软件作为库发布的最大问题。如果核心是旧的并且驱动程序是新的,那么它将无法工作。

但我不认为这对你来说是个问题。

有很多关于软件设计的好书。

于 2012-06-04T06:19:27.667 回答