开发人员需要做的决策有很多。当 Web 应用程序的需求确定下来之后,就该选择效率最高的 Web 技术栈了。Web 技术栈是用于创建 Web 应用程序的技术工具集。一套 Web 技术栈由 OS(操作系统)、Web 服务器、数据库软件以及编程语言(通常前端和后端都需要自己的语言)组成。一些常见的编程语言 / 框架包括 PHP、JavaScript、Node.js、Java、 ASP.NET 和 Python 等。对于构建网站或 Web 应用程序的场景而言,最常用的 Web 技术栈是 LAMP、MEAN 或 JAMStack 等。那么在 JAMStack、MEAN 与 LAMP 之间,你该如何做出选择呢?
JAMstack、MEAN 和 LAMP 都是用于构建应用程序的 Web 技术栈,各自都有独特的功能和优势。关键在于搞清楚哪个技术栈最适合你的 Web 应用程序需求。
JAMStack 的 JAM 是 JavaScript、API 和 Markup 的首字母组合。这个技术栈可以说是所有技术栈中最轻量级的,因为它不需要真正与数据库交互,并且主要依赖第三方 API。
我们可以将其定义为基于上述三大技术组件的现代 Web 开发架构。JAMStack 非常适合开发静态网站,因为它几乎没有 DevOps 开销,并且可以由程序员轻松管理。
总而言之,JAMStack 非常适合构建你的第一个博客网站,甚至可以用来创建一些更复杂的网站,其中依赖第三方 SaaS 软件来执行某些更复杂的功能。
LAMP 被认为是最古老的,也是市场上最常用的 Web 技术栈。如果你在大学期间(React.js 和 Node.js 时代之前)上过 Web 开发 101 课程,那它可能就是你用来开发第一个网站的方法。
LAMP 的组件中,Linux 作为操作系统,Apache 是 Web 服务器,MySQL 是数据库软件,PHP 是编程语言。对某些人来说,这些组件每一个看起来似乎都像化石一样古老。但这些组件都是很可靠的,并且得到了很好的支持。
有人可能没有听说过 Apache Web Server 之类的组件,可它实际上占据了互联网一半的地盘。它充当一种导向器,可帮助将 HTTP 请求从前端路由到其对应的后端函数和控制器上。另外,尽管它的名称中包含“服务器”一词,但这并不意味着 Apache Web Server 是一个物理对象,它只是可以在服务器甚至笔记本电脑上运行的一种软件。
MySQL 是传统的关系型数据库,允许你对其包含的数据发出 SQL 请求。这使你可以轻松存储用户数据和交易。
最后,PHP 是一种服务端脚本语言。这意味着你可以用它从 MySQL 表中获取数据并将其推送到前端。如果你已经在程序设计领域工作了几年时间,你可能很熟悉 PHP 的许多缺点。但是你最喜欢的许多网站都运行在 PHP 上,其中包括所有的 Wordpress 网站。
MEAN 的组件中,MongoDB 作为数据库层,Express.js 作为服务端应用程序框架,Angular.js 作为客户端应用程序框架,而 Node.js 作为服务端环境。它的最大优势是所有这些组件都是开源的,并且都基于 JavaScript。MongoDB、Express 和 Node 等组件在各自的领域中都是近年来的热门话题,因为它们都为 Web 开发工作提供了非常独特的优势。例如,MongoDB 是一个非常独特的数据库,因为它不像传统的关系型数据库那样通常需要 SQL 来与基础数据通信。MongoDB 使用的是 JavaScript(如一组调用)来提取数据并将数据存储在 JSON 与表中。如果你的网站像博客那样有大量文档需要处理,那么这种方法尤其合适。
JavaScript 通常只能在浏览器中运行。Node.js 则是一套基于 JavaScript 的运行时环境,使你可以在浏览器之外运行代码。这使开发人员能够从后端到前端全部使用 JavaScript 编程。
Express.js 在 Node.js 中的角色与 Flask 在 Python 中的相似。Express 帮助管理路由和传入的 HTTP 请求。这使开发 Web 应用程序变得更加容易,并且简化了你的项目中前后端之间的开发工作。
在 JAMStack、MEAN 和 LAMP 之间做选择时,选择正确的 Web 技术栈来构建 Web 应用程序是一个挑战,因为每个 Web 技术栈都提供了自己的很多好处。一般来说,LAMP 在易用性和可靠性方面的优势使其成为最常用的 Web 技术栈,这也得到了多年来无数开发人员的证明。
尽管选择 Web 技术栈是一个艰难的决定,但这主要取决于你希望开发的内容和你的经验水平。下面给出的是在为 Web 应用程序选择正确的 Web 技术栈时应考虑的因素。
总而言之,想要选择完美的技术工具来构建 Web 应用程序,就应该提前仔细考虑并作出计划。完美的 Web 技术栈需要与网站的使用场景、团队的技术知识、资源和整体预算相适应。这样一来,无论你选择哪种 Web 技术栈都不会妨碍你的业务需求和增长。
原文链接: https://buttercms.com/blog/jamstack-vs-mean-vs-lamp-your-guide-to-picking-one