首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于一个标准的CRUD应用程序来说,传统的“后端”架构有什么优势呢?

对于一个标准的CRUD应用程序来说,传统的“后端”架构有什么优势呢?
EN

Software Engineering用户
提问于 2015-11-14 13:36:25
回答 2查看 1.2K关注 0票数 2

在过去的几年里,“客户端”的web应用程序变得流行起来。如今,一种常见的方法是尽可能精简后端,主要是公开一个API,供客户端Javascript应用程序使用。

我感兴趣的不是这种方法的优点,因为这似乎是今天的预先处理方法,它的优点已经在这个网站上讨论过了。

我对更传统的、基于后端的方法的优势很感兴趣。页面的模板和路由发生在后端,而前端逻辑很薄弱。

请注意,这个问题指的是标准的“CRUD”应用程序,而不是专门的视频编辑软件或执行密集算法的程序(这种计算显然需要在后端进行)。

我指的是后端架构对于您的“典型web应用程序”的优势。

EN

回答 2

Software Engineering用户

发布于 2015-11-14 14:21:45

每次碰到客户端执行的约束时,都会出现好处。考虑三个案件:

  • 视频处理应用程序。什么是约束?对,在客户端机器上运行的浏览器的CPU和内存约束。您很快就会注意到,许多操作实际上是不可能运行的,或者需要几个小时而不是几秒钟。
  • 任何使用千兆字节数据的东西。当服务器完成搜索时,数据库中超过数十亿条记录的搜索可能需要几毫秒。如果由客户端完成,则需要几秒到几个小时,这取决于互联网的速度。
  • 一个聪明的算法,你想隐藏你的竞争对手。任何人都能读到JavaScript。通过将逻辑移动到服务器端,您将很难进行逆向工程。

当然,在服务器端拥有逻辑的另一个好处是,您可以精确地控制运行时环境。您可以选择操作系统、编程语言,甚至底层硬件。在客户端脚本世界中,您没有这种自由。您的代码最终可能会运行在带有Windows和IE7的旧PC上,或者是平板电脑,或者智能手机,或者是视觉残障人士使用的文本到语音和语音到文本接口的设备。

票数 1
EN

Software Engineering用户

发布于 2015-11-14 14:41:44

有些任务只能在服务器上完成,有些任务只能在客户机上完成。在其他情况下,在后端比前端实现某些东西有一些相当明显的好处:

  • 更好的缓存选项,例如清漆和类似技术
  • 通常,正如基准测试所显示的那样,典型的Java/C#代码仍然比JavaScript快。然而,在瓶颈是网络和计算的情况下,SPA获胜。
  • 一个平台的更简单的开发与针对不同的8+浏览器的开发,因此更简单的维护
  • “隐藏逻辑”与防作弊。例如,如果您正在构建一个在线游戏,您可能希望在服务器上完成一些部分,以通过修改客户端上的游戏逻辑来防止欺骗/黑客行为。另外,如果您想对用户隐藏一些算法,您也可以这样做。
  • 通常情况下,浏览器中缺少一些功能,或者这些功能效率低下。例如,使用各种数据聚合函数构建大量数据的报表可以在SQL中高效地完成,但不能在JavaScript中完成。
票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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