首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >开发只有很少访问DB的网站是个好主意吗?CRUD将通过调用由独立的内部后端系统提供的API来完成。

开发只有很少访问DB的网站是个好主意吗?CRUD将通过调用由独立的内部后端系统提供的API来完成。
EN

Software Engineering用户
提问于 2014-03-04 04:43:27
回答 2查看 340关注 0票数 4

我将在不久的将来开始开发一个应用程序。该应用程序包括:

  1. 后端系统。该系统提供了客户端使用的API。该系统连接到数据存储和第三方API。
  2. 数据存储:可以是关系数据存储,也可以是nosql数据存储。
  3. 客户端:客户端将是一个网站和移动应用程序。

我的理由如下:

  1. 我想防止重复的SQL查询和第三方API调用在网站应用程序端。应用程序和网站将由不同的开发人员开发。只有后端系统开发人员可以进行查询或调用第三方API。所有网站开发人员只应使用后端系统提供的API。
  2. 在我看来,网站也是一个客户端,就像移动应用程序一样。如果移动应用程序从后端系统API获取数据,为什么网站不应该是相同的。
  3. 我听说twitter也在使用类似的想法(但我可能错了)。其网站就像他们的移动应用程序一样使用twitter。

我对这个体系结构的主要关注是,与网站能够直接进行查询或第三方API调用相比,网站的性能会更低。

我还需要考虑其他的利弊吗?

EN

回答 2

Software Engineering用户

回答已采纳

发布于 2014-03-04 16:39:04

正如他们在“计算机科学”( Computer )中所说的那样,“一定程度的间接解决每一个问题”

您可以查看您正在开发的面向服务的体系结构。前端应用程序使用从后端应用程序检索的数据。他们一起组成了一项服务。(前端应用程序可能运行在用户的机器上,如果它是一个瘦客户机(例如JavaScript制造),或者它可能运行在您的计算机上,如果它是一个胖客户机,需要执行复杂的计算,或者需要访问用户机器上的其他资源)。

这个特定的“建立一个间接的层次”的主要优点是你正在抽象出你的核心数据模型。许多不同的客户端可能使用相同的API检索它:移动应用客户端、无法从互联网访问的管理站点或环绕月球的卫星上的嵌入式客户端。此外,您可以自由地交换这些核心数据的存储方式:对您来说,这些数据是从DB中检索的,但是这些客户端并不关心下周后端是否从平面文件或NoSQL键值存储中检索数据。

主要的缺点是,如果您正在构建一个内部网中使用的简单网站,这可能会造成过度的损失。

正如@RobertHarvey注意到的,你对表现的担忧是没有根据的。实际上,能够交换后端可能使您可以扩展到性能更好的硬件或软件,而客户却没有注意到。

其他优点和缺点:记住在前端和后端之间要有一个非常清晰的协议--以前包之间的接口已经变成了一个远程API。拥有返回版本或API功能的API调用是有用的。如果客户通过互联网打电话,记住要考虑到它们可能是伪造的--试着加密和签名,就像它们是从当地分支机构寄到你中央办公室的邮件一样。

票数 3
EN

Software Engineering用户

发布于 2014-03-04 16:23:30

你基本上是在描述一个服务层

你对表演的担忧似乎毫无根据。实际上,您的服务层只是将您的API转换为必要的第三方API或SQL调用;开销应该是最小的。

票数 2
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/231153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档