什么是技术堆栈?完整的 2022 初学者指南
您会在招聘广告或有关不同公司的对话中经常看到对技术堆栈的引用。
如果您正在考虑从事网络开发工作,那么了解什么是技术堆栈是件好事。
了解不同的技术栈也将帮助你决定哪个方向适合你,以及申请什么工作。
我们将介绍什么是技术栈,流行的技术栈,如 MERN、MEAN、LAMP 等,并回答有关该主题的一些常见问题。
1.什么是技术栈?
技术栈是技术栈的简称。它是用于构建和运行单个应用程序或网站的所有技术服务的列表。
我们将其称为堆栈,因为您可以将技术从前端到后端可视化地堆叠在一起以构建应用程序。
技术堆栈也可以称为解决方案堆栈、技术基础设施或 数据生态系统。
技术的确切组合将因产品、公司规模以及系统架构师的决策和偏好而异。也就是说,元素通常是相似的。
什么构成了技术堆栈?
对于 Web 应用程序,技术堆栈从前端开始:浏览器(在桌面和/或移动设备上)和与之交互的编程语言,即JavaScript。
从那里,您拥有了这些编程语言(React、Angular、Vue 等)的框架。此代码从数据库请求数据,可以是关系型或非关系型(您的 MongoDB、PostSQL 等)。服务器如何运行和提供这些数据取决于 Web 服务器及其自己的一组语言和框架。
最后,您拥有运行一切的操作系统。
由于要处理的数据量很大,现代技术栈可能涉及更多工具,具体取决于规模。从性能监控到商业智能,再到容器化以分解数据、微服务和分析,涉及很多难题!
2. 什么是网络堆栈?
Web 堆栈是相同的,但专门用于 Web 开发。这是实施您的网站、软件即服务产品等所需的一切。
顶部元素是用户与之交互的应用程序。底部元素是运行应用程序的操作系统。然后你拥有介于两者之间的所有东西,它们就像两者之间的翻译一样,帮助他们理解对方想要什么。
Web堆栈的基本要求是:
- 操作系统
- 网络服务器
- 数据库
- 编程语言
3. 程序员的流行技术栈
让我们介绍一些您作为程序员可能会遇到的流行技术栈。
MERN堆栈
MERN 堆栈是用于 Web 开发的基于 JavaScript 的技术堆栈。
它由MongoDB 、Express 、React和Node组成。MERN 堆栈旨在通过结合以下内容使开发过程变得顺畅和轻松:
- 一个 NoSQL 数据库
- 用于简化和组织后端代码的 Express 框架
- React组织前端
- Node作为在浏览器之外执行Javascript的运行环境
平均堆栈
MEAN堆栈代表MongoDB 、Express 、 Angular和Node 。
它类似于 MERN 堆栈,只是它使用 Angular 而不是 React。
那么 MEAN 与 MERN 有何不同?
虽然它们都基于 JavaScript,但 Angular 得到了 Google 的支持,而 React 得到了 Meta 的支持。Angular 也有一个更陡峭的学习曲线,尽管它处理抽象并管理文件。
虽然编码速度可能较慢,但对于企业级项目来说可能更好。Angular 还允许数据在两个方向上流动,而 React 只允许数据从父组件传递到子组件。
灯堆栈
LAMP 堆栈由Linux、 Apache、MySQL 和PHP / Perl / Python组成。
Apache 和 PHP 在前几十年非常流行,这使得这个堆栈流行起来。LAMP 专为具有高流量和日常数据传输的企业级应用程序而设计。
但是,它只能在运行Linux 操作系统的机器上使用。
它也不太适合要求更动态、响应更快(即跨不同设备使用)、跨平台和高度安全选项的现代网络技术。
无服务器栈
无服务器堆栈允许您构建应用程序而无需维护和管理服务器。相反,您的应用程序托管在云中。
无服务器堆栈中仍然涉及服务器,但它们是从开发人员的日常工作中抽象出来的。开发人员只需要将他们的代码打包到容器中并进行部署即可。无服务器堆栈将根据需要自动扩展和缩减。
无服务器堆栈支持 JavaScript、TypeScript、Python、Golang (GO) 和 C#。
对于不想花太多时间设计和维护其基础设施的小公司来说,这可能是一个不错的选择。
它也是按使用量付费的,这意味着当无服务器功能处于闲置状态时,它不会产生任何费用。
MEVN堆栈
MEVN 堆栈由MongoDB 、Express 、Vue和Node组成。
与 MERN 和 MEAN 堆栈类似,主要区别在于它使用 Vue 作为编写前端代码的框架。
Vue 和 React 都是轻量级的,使用虚拟 DOM,并且性能相似。
那么 MEVN 与 MERN 和 MEAN 有何不同?
主要区别在于 Vue 是一个框架(React 是一个库)。这意味着它更固执己见且更不灵活。
它带有开箱即用的插件系统、内置指令、转换等。Vue 核心团队还创建了用于路由和状态管理的配套库:Vue-router、用于状态管理的 Vuex 和 Vue CLI。
Vue 也有双向数据绑定,而不是像 React 那样是父子数据绑定。
Vue 易于学习,但它可能不是移动密集型应用程序或希望扩展的公司的最佳选择。
网页版 Flutter
Flutter 是 Google 的用户界面 (UI) 库和框架,最初是为了开发具有流畅性能的功能性移动应用程序而创建的。
从那时起,它得到了扩展,现在可以在桌面和网络应用程序上使用。
它的主要好处是您可以使用一种编程语言编写并维护一个代码库,以便在浏览器中为 iOS、Android 和 Web 应用程序创建应用程序。
要使用 Flutter 进行开发,您将使用一种名为Dart的编程语言。它是一种面向对象的编程语言,专注于前端开发。
这对于 MVP 来说是一个很好的选择,例如,当您想要跨平台启动整个应用程序以向投资者展示时。
Flutter 的缺点是它对SEO 不友好,并且应用程序性能和扩展能力较慢。
4. 程序员的技术堆栈常见问题解答
哪个技术堆栈的薪水最高?
根据求职网站 Glassdoor的数据,以下是世界上每个堆栈的开发人员平均工资:
- 均值:113,501 美元
- 默恩:92,949 美元
- 灯泡:98,904 美元
- 无服务器:49,454 美元,但“AWS 开发人员”的平均水平为120,063 美元
- MEVN(Vue 开发者):94,301 美元
- 颤振:97,254 美元
哪种技术栈最好学?
没有一个完美的技术栈,所以选择最好的一个来学习取决于你的兴趣和你附近的工作机会。
从上面的薪水可以看出,任何现代技术堆栈都不会出错。最好的选择是您将要学习的那个。
如果您不确定,可以使用术语“React”、“Angular”和“Vue”快速搜索工作。在撰写本文时,React 可能拥有最多的工作,所以如果您不确定,请从那里开始。
如果您有兴趣探索某些公司,那么值得查看他们的技术堆栈。您学习的技术堆栈可以确定您有资格为之工作的公司,因此请牢记这一点。
最后大多数会教你基本的编程概念,你可以用这些概念更快地学习其他框架。更重要的是你从某件事开始。
Python 是一个技术堆栈吗?
Python 本身并不是一个技术栈。相反,它是一种编程语言,可作为一种独立的编程语言用于 Web 开发、服务器编程、Web 应用程序。
它不包括数据库或运行时环境、操作系统等。因此它只是完整技术栈的一个组成部分。
如果您想了解更多使用方法,我们收集了13 个用于 Web 开发的 Python 示例。
Google 使用什么技术堆栈?
谷歌使用的一些技术和语言包括 Python、Java、Android SDK、Go、C++、Preact、Angular JS、Kubernetes、TensorFlow 和许多其他谷歌框架。
4. 总结
现在您已经了解什么是技术堆栈,以及用于 Web 开发的主要堆栈及其薪水。
在决定学习哪种技术堆栈时,请记住没有唯一的正确答案。你选择学哪一个可以决定你想去哪家公司工作,但最终你开始是最重要的。
在CareerFoundry 的全栈 Web 开发计划中,您将在专门的导师和指导者的帮助下学习 MERN 堆栈的每一步。您还将学习 Angular,因此 MEAN 堆栈也将成为您技能组合的一部分。
当您完成该计划时,我们的一位职业专家将与您会面,帮助您准备开发人员组合以及您自己,以适应您想要申请的公司和您希望走的道路。
评论