我正在开始一个有点大的新项目。它将包含以下两个组件(其中包括):API和仪表板。客户端将使用仪表板导入和组织其数据,并使用API远程访问它。
基本上这两个组件将使用相同的模型类和服务,但会在它们之上构建不同的访问点。我的问题如下: 我是否应该(1)将两个组件构建为共享存储库和目录的同一项目的一部分,或者(2)在不同项目中构建它们并将模型共享为第三个组件?
最好的方法是什么?
如果您有使用Laravel框架的经验,将如何实现不同的模块?
答案 0 :(得分:1)
嗯,我没有laravel的经验,但是从Zend Framework 2开始有一段时间了。对于开发我使用域驱动设计+ MVC的approuch。
我的建议是使用第一种方法。
<强> 1。代码最好维护
如果你想改变一些东西,你只需要在一个地方改变一件事就可以了。不是所有的共享副本
<强> 2。服务器强>
您担心需要第二台服务器,因此您可以专门向服务器发送故障。除非您有非常重要的任务(比如每小时向客户发送数百万封邮件),否则您不必担心特定任务的专用服务器。
只需将负载均衡器放在服务器前面即可。这种方式当很多api调用进来但没有仪表板时,你仍然使用两个服务器,而不是1放松。
第3。保持强>
如果有第三个东西(仪表板,api,网站?),那么您可以轻松地使用当前代码库进行扩展而无需进行大量更改。
tl; dr我推荐第一个