当前位置: 首页 > 后端技术 > Node.js

想成为网络开发人员?学习Node.js而不是PHP

时间:2023-04-03 14:27:55 Node.js

为了最大的可读性,本文使用意译而不是直译我的学生最常问的问题之一是“您如何在课程中教授Node.js而不是PHP?”;告诉他们,“相信我,我已经在这个行业工作多年了”,这还不够。所以,这就是为什么我在我的课程中包括Node.js,以及如果你想投资于你作为开发人员的未来,你应该放弃PHP的原因。虽然我使用这两个作为示例,但在本文中我将向您展示一个大框架,用于确定您在开发人员职业生涯中应该学习哪些工具、编程语言、框架和库。由于您作为开发人员的时间和资源是有限的,因此您必须决定投入时间以获得最大的投资回报。现在,您应该问自己一个问题:在知识、薪水和满意度方面,我可以在未来的开发人员职业中投入多少时间和精力来学习?这并不意味着选择最简单的路径。这意味着选择能够让您在未来许多年保持相关性和竞争力的工具,同时培养您作为高级开发人员的技能。在本文的结论中,如果你想成为一名Web开发人员,你将找到我在2019年推荐的所有技术,使用下面相同的分析。如果你不耐烦,你可以跳到最后。我们将在这篇文章中使用两种类型的分析:工作前景分析和技术分析。开始:1.Node.js与PHP-工作前景分析我们将使用Stackoverflow开发人员调查和LinkedIn进行此分析。我们也将只关注与Web开发相关的技术。受欢迎程度:JavaScript连续第五年成为最常用的编程语言。Python的使用率五年来首次超过PHP。Node.js在哪里?Node.js是一个javascript运行时。用非技术术语来说:Node.js是一种使用Javascript的方式,就像在服务器端使用PHP一样。现在,将Node.js视为Javascript。正如你所看到的,Node.js和Javascript排名靠前,而PHP并不是那么受欢迎。在Stackoverflow在其开发人员调查中收集数据的五年中,他们发现Javascript和Node.js等语言越来越受欢迎,而PHP等语言的使用量一直在下降:React是最受开发人员欢迎的语言,然而,Node.js是最受欢迎和最受欢迎的:薪酬和机会:使用下表中蓝线下方列出的语言(例如Go、Rust和Clojure)的开发人员将获得更多奖励。然而,使用像PHP这样蓝线以下语言的开发人员,即使有多年的经验,报酬也较低。此图中圆圈的大小表示与其他开发人员相比使用该语言的开发人员数量。PHP显然似乎越来越少地根据开发人员所拥有的经验来奖励他们。在LinkedInJobs上,您可以看到Node.js开发人员在全球范围内的职位发布数量远远超过PHP开发人员近10,000个。尽管Node.js是比PHP更年轻的技术,而且PHP被Wordpress大量使用,它为互联网上所有网站的30%提供支持。最后,您可以按地区查看每种技术的平均工资(我没有包括下面的全球选项卡,因为那里甚至没有PHP):同样,我们不是来抨击PHP的。我们只看数字来决定选择学习什么。显然,它的排名一直低于Javascript和Node.js等其他技术。stackoverflow得出了2018年的调查结果:PHP下降更多。结果:PHP的受欢迎程度正在下降,而Node.js的就业市场和受欢迎程度却在增长。总体而言,PHP开发人员的薪酬明显低于其他开发人员,而且这一趋势似乎还在扩大。2.Node.js与PHP-技术分析让我们看看每种技术的优缺点。Node.js优点:特别适用于需要客户端和服务器之间进行实时通信的应用。像socket.io这样的工具可以很容易地构建像聊天应用这样的东西这些相同的特性使得Node.js适用于处理来自IoT设备(物联网)和单页应用程序(SPA)数据的应用程序,这些应用程序现在非常普遍。使用JSON的本机序列化和反序列化,可以很好地处理Web上的AJAX请求。具有非阻塞输入/输出的事件驱动应用程序的理想选择(I/O是信息处理系统(如计算机)与外界之间的通信,可能是人或其他信息处理系统(如数据库)你学Javascript,你就学Node.js,不需要像PHP一样学习其他语言,这意味着你可以全力学习Javascript并掌握它,前后端代码只需要一个就可以写语言。许多流行的客户端框架,如React、Vue和Angular都是用现代浏览器的主要语言JavaScript编写的。在服务器端使用Node.js时,您可以在应用程序中获得一种脚本语言的所有好处开发堆栈。好处。在前端和后端使用相同的语言非常有利于可维护性:它使您的应用程序的所有团队成员之间的工作更容易,因为前端和后端开发人员使用相同的JavaScript数据结构、函数和语言约定。当一次处理来自客户端的大量请求时,单线程事件驱动系统非常快。NPM为客户端和服务器提供了对越来越多的第三方库和包的访问,以及用于Web开发的命令行工具。此外,其中大部分托管在GitHub上,您可以在其中报告问题,或者您可以自己fork代码来定制它。它已经成为运行Javascript相关工具和其他Web开发人员相关工具的标准环境,包括Taskrunners、minifiers、linters、formatters、preprocessors、bundlers和analyticsprocessors。许多新的API和服务(例如AWSLambda)都提供原生支持。我们获得了V8的所有性能提升,V8是构建在其之上的Node.jsGoogle的JavaScript解释器。得益于Google不断提高V8性能的工程设计,Node.js免费获得了这项开发的好处。Node.js缺点:上面提到的NPM包会使你的代码膨胀,可能不安全,而且很难找到哪些包是好的,因为有太多的选择(查看下载和GitHub统计是解决这个问题的一种方法).使用Node.js和npm包构建服务器的方法有很多种。这使得新开发人员很难上手。对于依赖大量CPU消耗代码(即图像处理或排序等繁重算法)的服务器来说并不理想。通常,任何不是I/O的代码都可以被认为是消耗CPU的代码。在这种情况下,通常多线程服务器环境比Node.js更好(解决方案:如果你愿意,你可以将代码中的CPU密集型部分卸载到用C编写的程序中。)Node不会使用所有内核底层系统或机器。您必须自己编写逻辑才能使用多核处理器。这可以通过多种方式实现,但它需要一些额外的工作(当您能够最大限度地提高系统的CPU使用率时,这就成为了专家)。Node.js对比结果:Node.js非常适合有大量并发连接的应用,每个请求只需要几个CPU周期。这使得它非常适合现在互联网上的很多应用,比如SPA和实时应用。使用JavaScript的内置异步处理,可以创建高度可扩展的服务器端代码,最大限度地利用单个CPU和内存,同时能够处理比传统多线程服务器更多的并发请求。Node.js几乎没有依赖项、规则和指南,允许开发人员自由和创造性地按照他们想要的方式开发他们的应用程序。开发人员可以为他们的项目选择最佳架构、设计模式、模块和功能,同时通过NPM从社区获得所有好处。PHP优点:由于年龄的原因,强大的社区。PHP拥有强大的代码库,包括用于构建网站的流行平台(即WordPress、Joomla、Drupal)。CMS(内容管理系统),例如WordPress,可以在几分钟内轻松部署博客或电子商务网站,并允许非开发人员轻松自定义它们。使用非开发人员工具更容易设置,更适合不需要了解SSH和Linux服务器的个人或小公司。许多PHP应用程序(即cPanel)由基础托管平台提供,可以一键安装。与其他通用编程语言不同,PHP是专门为网络设计的。PHP提供了一个出色的服务器端解决方案,因为所有页面都可以在服务器上轻松生成和呈现,因此浏览器中不需要JavaScript。如果您想避免在客户端发送过多代码,这将很有用。Node.js也可以做到这一点,但解决方案并不那么简单。PHP7和HHVM(由facebook支持)的开发已经在PHP性能方面取得了一些改进......但最近有一些关于HHVM的坏消息。PHP缺点:PHP仅用于后端。这意味着如果您想在客户端工作或被视为全栈开发人员,您仍然需要学习Javascript。对于PHP,繁重的服务器端渲染和对服务器生成和渲染页面的大量请求对于单页应用程序来说不是一个好的选择。每个活动客户端消耗一个服务器进程。不适用于具有许多客户端连接的应用程序。与Node.js相比,PHP对AWSLambda等新API和服务的原生支持有限。它遵循传统的客户端-服务器模型,其中每个页面请求都会启动一个应用程序、数据库连接和HTML呈现。与使用永远运行且只需要初始化一次的Node.js应用程序相比,这会使PHP在浏览网站时变慢。因此,Node.js更适合HTML5、AJAX、WebSockets等web发展的新方向。PHP总结:围绕PHP的社区使其易于学习。它是博客或新闻网站等标准化解决方案的不错选择。它具有最流行的CMS(内容管理系统)Wordpress的强大功能,无需太多编码即可创建可自定义的博客。然而,在这种情况下,更简单并不是一个好的质量。学习技术越容易,有人进入该领域并添加到供应池中就越容易,您需要为服务收取的费用就越少。结束语随着Wordpress的流行,PHP成为了Web1.0时代的顶级语言之一。Node.js于2009年推出,从技术上讲,它不是一种语言,而是Javascript的运行时环境。它是年轻Web开发的冠军,更适合构建基于事件、数据驱动、I/O密集型应用程序,您将在Web2.0时代遇到更多此类应用程序。特别是,Node.js的异步和基于事件的架构使其非常适合实时应用程序,例如消息传递和协作应用程序,在这些应用程序中,许多请求同时发生并且客户端和服务器之间有很多来回.没有WordPress就活不下去?好吧,Node.js有自己的CMS,称为Keystone.js,这很棒。总会有权衡取舍。永远不会有一种技术可以解决您所有的问题并使您免于工作过时。我们能做的最好的事情就是分析我们的选择并选择投资回报率最高的那个。看看上面的工作前景分析和技术分析,我们可以看到一个明显的赢家。我选择了Node.js。虽然所有技术如果以其特定的方式使用都会很棒,但我们生活在一个信息如此丰??富的世界,以至于我们必须限制我们可以集中注意力和深入学习的程度。如果你想在2018年成为一名全栈Web开发人员,我建议你学习:HTML5CSS3JavascriptReact.jsNode.js+Express.jsPostgreSQL和其他一些......