平均堆栈

Showcase, discuss, and inspire with creative America Data Set.
Post Reply
suchona.kani.z
Posts: 261
Joined: Sat Dec 21, 2024 5:23 am

平均堆栈

Post by suchona.kani.z »

MEAN Stack 是一个全栈 JavaScript Web 框架,用于轻松快速地开发 Web 应用程序。技术栈由面向文档的NoSQL数据库MongoDB、服务器端Web框架Express、客户端前端框架AngularJS和服务器端运行环境Node.js组成。 “MEAN”这个名字代表这四个组件的首字母,最初来自 MongoDB 开发人员 Valeri Karpov,他在 4 月份的博客文章“MEAN Stack:MongoDB、ExpressJS、AngularJS 和 Node”中描述了 MEAN 堆栈2013 年 2 月 29 日.js”,并于一天后在MongoDB 官方博客上向更多受众展示。

例如,与基于 LAMP 或 Java EE 堆栈的 Web 框架不同,在 MEAN 堆栈中,JavaScript 被用作整个前端、后端甚至数据库内的主要且唯一的编程语言,以简化和加速开发过程。公平地说,在客户端和服务器端一致使用 JavaScript 的想法并不新鲜。自 Node.js 开发以来,过去一直致力于建立全栈 JavaScript 框架。

适用于所有层的编程语言
适用于所有层的编程语言听起来不错,但实际上,MEAN 堆栈与层更改时发生的“范式中断”相关。在 MEAN 堆栈中,前端使用 AngularJS 以 MVVM 模式进行编程,后端使用 Express 进行管道和过滤器样式编程。因此,前端开发不能与后端开发相比较。一致的编程语言当然会使上下文切换更容易,但它仍然存在。

MEAN 堆栈的流行可能是由于各个组件的流行。另一方面,严格意义上的 MEAN 堆栈指定了各个组件,并且 MEAN 堆栈的应用场景对应于各个组件的应用场景的最小公分母。

这意味着:在 MEAN 堆栈中,文档在客户端和服务器之间以 JSON 格式 购买比特币电子邮件列表 交换,并保存在 NoSQL 数据库 MongoDB 中。当文档包含 Eric Evans (2003)“领域驱动设计”概念意义上的聚合时,这解决或至少减少了对象关系阻抗失配问题。在领域驱动设计中,聚合被定义为包含以下数据的子结构:

专业上属于一体,
必须保持一致并且
在交易中被改变。
当然,该框架并不能减轻我们对应用程序域进行建模和切割合适聚合的任务。然而,如果领域模型可以自然地转换为聚合,那么与经典的 RDBMS 相比,应用程序的开发就可以更容易、更快速。只要聚合是焦点并且数据的组织在大多数情况下不会改变,基于聚合的数据库就是有益的。

如果数据的组成频繁变化(例如用于报告),通常必须使用 Map-Reduce 批处理作业来计算新的聚合,这既耗时又复杂。然而,在 SQL 中,可以更轻松地重新组织数据。例如,您可以使用 JOIN 子句轻松集成不同类型的表。简而言之,NoSQL 以及 MEAN 堆栈并不能解决所有问题。

此外,借助 AngularJS,MEAN 堆栈还可以开发胖客户端应用程序。例如,这与ROCA架构风格形成鲜明对比,后者要求在客户端谨慎而谨慎地使用 JavaScript。在符合 ROCA 的客户端中,JavaScript 会不显眼地使用来逐步改进用户界面(渐进式增强)。该应用程序也应该在没有 JavaScript 的情况下运行。根据 ROCA 架构风格,胖客户端应用程序只能用于高度交互的用例(例如基于 Web 的编辑器或在线 CAD 系统)。

结论
总之,可以说 MEAN 堆栈为建立交互式 Web 应用程序架构时提供了良好的讨论基础。然而,MEAN 堆栈并不适合所有应用程序。

如果您发现安装和调整 MEAN 堆栈的各个组件太耗时,您应该仔细研究Meteor JavaScript 框架。 Meteor 也基于 Node.js 和 MongoDB,但从组件中抽象了很多,对于中小型应用程序非常有帮助。
Post Reply