【发布时间】:2015-09-16 17:16:27
【问题描述】:
我正在为在传统后端(比如说管理一切的 Django 实例)和面向服务的架构(类似于 LinkedIn)的 Web 应用程序之间做出选择而苦苦挣扎。我对 SOA 的意思是有一个完全独立的数据访问接口——比如说 Ruby + Sinatra——查询数据库,一个独立的聊天应用程序——Twisted——通过它的 API 使用,一个 Django Web 服务器使用这些 API 为内容等。
我可以看到将项目中的所有内容模块化并仅通过 API 访问的优势:可扩展性、测试等。但是,这不会损害网站性能吗?我想所有模块都将通过 HTTP 请求进行通信,所以 这种架构不会给网站中的所有内容增加很多延迟?有比 HTTP 更好的替代方案吗?
其次,关于开发的便利性,这真的会给我们的开发人员增加很多复杂性吗?尤其是在我们获得 MVP 之前的第一阶段。
编辑:我们是一个由两名开发人员和一名设计师组成的小型团队,但我们没有最后期限,因此如果能带来更多技术价值,我们可以处理一些额外的工作
【问题讨论】:
-
另一种方法是将您的代码模块化,您将在不同的存储库中添加一个 RESTful 接口,然后使用您的包管理器将其引入。这迫使您考虑如何在没有真正基于网络的 API 的延迟的情况下与之交互。这样做的好处是,如果您以后确实希望向其添加 API,这样做很容易,因为您还没有将应用程序和模块焊接在一起。
标签: django web architecture flask soa