开发人员需要做的决策有很多。当 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
由于安全性和可用性问题,不建议使用 Buffer()和 new Buffer()构造函数,请改用 new Buffer.alloc()、Buffer.allocUnsafe()或 Buffer.from()构造方法。
在ES5中,咱们合并对象通常使用Lodash的_.extend(target, [sources]) 方法,在ES6中咱们使用 Object.assign(target, [sources])来合并对象,当然现在最常用应该是使用 Rest/Spread(展开运算符与剩余操作符)。
闭包就是指 能够访问另一个函数作用域的变量的函数 ,闭包就是一个函数,能够访问其他函数的作用域中的变量,js有一个全局对象,在浏览器下是window,node下是global,所有的函数都在这个对象下
一切都从对象开始。对象,即我们相互交流的一个载体,有其属性和方法。对象是面向对象编程的核心,不仅用于JavaScript,而且还适用于Java、C语言、C++等。
WebAssembly(Wasm)是 Web 浏览器中相对较新的功能,但它地扩展了把 Web 作为服务应用平台的功能潜力。对于 Web 开发人员来说,学习使用 WebAssembly 可能会有一个艰难的过程
很多接触过程序员的人,都有一种体会:程序员=聊天终结者。经常用简短有力的几个字结束掉你苦心经营的聊天氛围,比如:你现在忙不忙?忙。那我真的是打扰了
SVG,即可缩放矢量图形(Scalable Vector Graphics),是一种 XML 应用,可以以一种简洁、可移植的形式表示图形信息。目前,人们对 SVG 越来越感兴趣。大多数现代浏览器都能显示 SVG 图形,并且大多数矢量绘图软件都能导出 SVG 图形
JavaScript 使用原型继承:每个对象都从其原型对象继承属性和方法。在 JavaScript 中不存在 Java 或 Swift 等语言中所使用的作为创建对象 蓝图的传统类,原型继承仅处理对象。
很多时候 <textarea> 并不能满足我们对文本输入的需求,当我们需要为输入的文本添加格式时,我们需要使用像 quill 这样的富文本编辑器来完成富文本的输入。本文将会详细的讲解如何使用 quill 定制一个自己的富文本编辑器。
RxJS 是 Reactive Extensions for JavaScript 的缩写,起源于 Reactive Extensions,是一个基于可观测数据流 Stream 结合观察者模式和迭代器模式的一种异步编程的应用库。RxJS 是 Reactive Extensions 在 JavaScript 上的实现
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!