slot deposit pulsa slot mahjong slot gacor slot gacor slot gacor resmi slot gacor 2025 slot gacor terpercaya slot gacor 2025 slot gacor hari ini slot gacor hari ini slot gacor hari ini
LAMP vs. MEAN:哪个技术栈更适合你
17611538698
webmaster@21cto.com

LAMP vs. MEAN:哪个技术栈更适合你

资讯 0 5915 2019-05-13 12:03:32
5.13_.8_.1_.png

 
Web技术栈是用于构建Web应用程序的软件或技术的集合。它有很多种产品供我们选择,但最终去选择其中一个可能会比较困难。
 
在与同事,开发者或客户交流时,对使用哪种技术和堆栈的建议不会有太大的不同。当我开始作为Web开发人员时,我当时采用了通常的方式:学习HTML和CSS,使用PHP开发 - 当然还有MySQL。
 
如果你还没有用Java或ASP.NET这些技术栈。不论是想要托管博客,论坛还是成为图像托管平台,您都会经常需要这些东西:Linux,Apache/nginx,MySQL和PHP(LAMP)。
 
以下是LAMP和相对较新的MEAN技术栈的详细概述,这些堆栈是目前最流行的开源
Web技术栈和其他技术栈的简要概述。
 
无论你选择哪种技术栈,Bitbucket都可以与它们协作。
 
LAMP技术栈
 
LAMP为开发和托管大型高性能Web应用程序提供了强大的平台。拥有最大和最古老的社区,无数的库和工具,你将获得很大的支持,并且很容易找到开发人员。
 
它的组成部分包括:
 
L inux(OS)
A pache(Webserver)
M ySQL(数据持久性)
P HP(编程语言)
 
这个堆栈也有一些衍生品:
 
LAMP(用Perl或Python代替PHP)
LAMP(使用MongoDB而不是MySQL)
WAMP(Windows作为操作系统)
MAMP(Mac OS X as OS)
XAMPP(任何OS + Perl或PHP + FTP服务器)
LAPP(PostgreSQL作为数据库)
 
LAMP已经是web开发的一种恐龙,已被成千上万的网站所使用,因此得到了很好的维护和支持。通过很多开源的模块,库和附件,还可以根据公司需求进行调整。
 
以Linux为基础,我们可以在大型开源社区中找到任何主题的帮助。MySQL是一种非常可靠和可扩展的解决方案。PHP目前版本为7,并且也受到成熟且大型社区的支持。PHP速度也非常快,并且与技术栈的其余部分很好地集成。
 
你可以控制服务器并确定安装的版本和软件,不必依赖客户端的浏览器。如果你有许多服务器端的任务,它最有效。
 
因为它易于学习,所以有很多开发人员没有遵循最佳实践去构建了一些垃圾应用程序。PHP的入门很容易,但掌握它很难。对于这些PHP应用程序中的安全性也是如此。有些人还会将PHP描述为脚本语言而不是真正的编程语言,因为它不是强类型的,也不是预编译的。我建议你深入研究PHP,Python和Perl的优缺点。
 
至于MySQL,其他类似的数据库也正变得越来越成熟。像MongoDB这样的NoSQL数据库,由于其可扩展性在当今企业中大受欢迎。此外,像MEAN这样的纯JavaScript技术栈每年都会获得很大的吸引力,新开发人员可能对学习LAMP兴趣不大。
 
MEAN
 
与LAMP相比,MEAN技术栈是相当新的。其最大的区别之一是MEAN不依赖于特定的操作系统 - 用Node.js负责服务器端的执行。
 
MEAN Stack特别推荐给JavaScript爱好者 - 因为它在所有层别都使用JavaScript。这也使它成为新开发人员的首选。
 
与MySQL的关系型数据库系统相比,MongoDB是一种流行且灵活的基于文档的NoSQL数据库。
 
而Angular有助于构建渐进和现代的Web应用程序。
 
其组成部分包括:
 
M ongoDB(数据持久性)
E xpress.js(服务器端应用程序框架)
一个 ngular(客户端应用程序框架)
N ode.js(服务器端环境)
 
这个技术栈也有一些衍生物:
 
MERN(React而不是Angular)
MEEN(Ember.js代替Angular)
 
使用JavaScript作为主要编程语言是MEAN技术栈的一个巨大优势。一切都可以在JS中快速设置并完成,这使招聘开发人员变得更加容易,而LAMP开发人员通常也了解JavaScript。MongoDB因其简单的无模式数据持久性而非常受欢迎,如果有大量读取请求,它比MySQL速度更快。
 
Angular由Google维护的事实也是一个很大的优势。它不断发布新版本和功能。另一个巨大优势是能够轻松构建移动或桌面应用程序,例如使用Ionic,可以轻松地重用或添加代码与组件。
 
像所有新技术一样,MEAN的魅力在于创造一些流行技术。开发人员倾向于这种流行并用JavaScript构建他们的应用,它变得很时髦。其中许多库和框架都很新,新版本不断快速发布,因此维护应用程序可能会变得非常麻烦。
 
由于许多技术在几年后会消失,可持续性可能成为MEAN的一个问题。随着应用程序的增长,维护干净的代码库并遵循最佳实践也更加困难。此外,我们必须依赖客户端和客户端的可用技术,例如,如果目标是IE用户,嵌入式系统或低端PC,则可能存在兼容性和可用性问题。
 
我们要考虑的,还有其他几个技术栈:
 
WISA
 
Windows Server / IIS / Microsoft SQL Server / ASP.NET
非开源,但所有组件都来自Microsoft,所以它应该无缝地工作。
lamp(使用MongoDB)
Linux,Apache,MongoDB,PHP
像MongoDB这样的NoSQL数据库也可以在经典的LAMP环境中使用。
 
Ruby Stack
 
Ruby / Ruby on Rails / RVM(Ruby虚拟机)/ SQLite
这个堆栈正在失掉人气。Ruby on Rails曾经是一个经常使用的框架,因此也是整个一个技术栈。
 
Java+Spring
 
Spring提供了一个用Java编写的完整的全栈框架,这是大型企业的首选,并且因独立开发人员的复杂性而有所逃避。
 
Django Stack
 
Python / Django / Apache / MySQL
Django框架深受Python开发人员的喜爱,提供了性能,通常被称为易于学习的堆栈。
 
用哪个技术栈最常见?
 
很难比较堆栈的受欢迎程度,但您可以使用Google趋势来比较编程语言,并了解人们搜索的内容。如下图所示,JavaScript现在搜索的不仅仅是PHP。
 
我建议不时使用Google的趋势工具检查开发趋势。
 

5.13_.8_.2_.jpg

 
 
谷歌趋势:PHP,JS,Ruby
 
我还建议深入研究数据库(SQL与NoSQL)以获得对这两个概念的基本理解并做出选择。
 
那么,你如何选择一个技术栈?
 
挑选技术栈取决于许多因素。如果您是开发人员或项目所有者,这里有几个问题要问自己。
 
我打算开发什么样的Web应用?
它的预计生命周期是多少?
我的客户/客户/猫/ ...基础设施提供哪些技术?
找到开发人员维护应用程序有多容易?
 
让我举个例子。假设你有一个二手车网站,它是在不久前用LAMP技术栈开发的。但是您的网站缺乏二手车经销商的后端,他们可以在您的网站上管理他们的列表。根据您公司的规模,时间和预算,您必须自问上述所有问题。如果您有一个小团队,将现有应用程序扩展到LAMP环境可能是有意义的。由于您的开发人员了解生态系统并且速度会快得多。如果您有足够的时间和资源,您可以采用另一种方法并使用API扩展现有的LAMP应用程序。之后,您的团队可以专注于开发一个小型的独立(M)EAN应用程序,该应用程序可以轻松维护,使用新功能进行改进,并使用更快的周期进行发布。
 
另一个例子:你想建立一个时事通讯平台,人们可以在那里注册,上传邮件列表,撰写邮件等等。你当然可以使用MEAN,但你有大规模和高流量潜力。使用LAMP堆栈作为您的基础可能更有意义,因为Linux,MySQL和Apache提供了一个稳定,可扩展的环境,并为任何问题提供了大量社区支持。您还将拥有许多服务器端任务和cron作业,并将遇到SMTP等邮件主题。在这种情况下,我建议根据您的需求定制Linux环境。
 
以下是需要了解/考虑的事项的摘要。
 
node.js
lamp
单代码库(JavaScript)。
适用于现代网络应用和混合应用。
得到Google等大公司的支持。
对于在客户端发生大量逻辑的应用程序更好。
由于快速发展的javascript生态系统,更难以长期维护。
最适合渐进式网络应用。
更适合大型应用。
更成熟,更庞大的社区。
完善的应用程序框架,如Symfony,Zend,Laravel。
更容易遵循标准,更容易保持代码清洁。
如果您不熟悉编程和Web开发,请这样问自己:
 
您和您的团队最容易学到的是什么?
从长远来看,哪些技术趋势是什么?
如果是开源的,您能想象为项目做出贡献吗?
从长远来看,哪些技术可以为您提供服务?
 
StateOfJS项目 - https://stateofjs.com/是查找JavaScript技术答案的绝佳资源。这是一个每年进行调查的项目,要求成千上万的开发人员就当前的技术和薪水发表意见!


作者:克里斯托夫.海克
编译:老夏


评论