0

我正在开始一个有点大的新项目。它将有两个以下两个组件(除其他外):API 和仪表板。客户将使用仪表板导入和组织他们的数据,并将使用 API 远程访问它。

本质上,这两个组件将使用相同的模型类和服务,但会在它们之上构建不同的访问点。我的问题如下:我应该(1)将这两个组件构建为同一个项目的一部分,共享一个存储库和一个目录,还是(2)在不同的项目中构建它们并将模型作为第三个组件共享?

  1. 应该更容易管理,因为一切都已经在一个地方。但是,我将不得不始终部署它们,并且实际上并没有很好地分离 API 服务器和仪表板服务器。
  2. 另一方面,我可以拥有具有不同职责的服务器,但我必须管理第三个组件。

解决此问题的最佳方法是什么?

如果您有使用 Laravel 框架的经验,您将如何实现不同的模块?

4

1 回答 1

1

好吧,我没有使用 laravel 的经验,但有一段时间使用 Zend Framework 2。对于开发,我使用领域驱动设计 + MVC 的方法。

我的建议是使用第一种方法。

1. 代码更好维护

如果你想改变一些东西,你只需要在一个地方改变一件事情,它就会完成。并非在您共享的所有副本中

2. 服务器

您担心需要第二台服务器,以便将任务专用于服务器。好吧,除非您有非常大的任务(例如每小时向客户发送数百万封邮件),否则您不必担心特定任务的专用服务器。

只需在服务器前面放置一个负载均衡器。这样,当有很多 api 调用进来但没有仪表板时,你仍然使用两个服务器,而不是 1 是放松的。

3.维护

如果会有第三个东西(仪表板、api、站点?),那么您可以轻松地使用当前代码库进行扩展,而无需进行大量更改。

tl;博士我推荐第一个

于 2013-06-05T12:18:12.307 回答