架构设计:通过API分离应用程序和交互

时间:2012-06-04 06:11:45

标签: architecture

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

我试图摆脱的一件事是一个单一的架构,我喜欢将所有东西分解成子项目的想法,这样一个团队可以在一个项目上工作,一个团队可以在另一个项目上工作,等等。

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

例如:

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

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

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

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

由于

1 个答案:

答案 0 :(得分:1)

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

将应用程序分解为“核心”和“驱动程序”所带来的问题是,软件升级变得有点棘手。因为现在你必须同时升级核心和驱动程序。这是运输软件作为图书馆的最大问题。如果核心是旧的,驱动程序是新的,那么它将无法工作。

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

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