Node.js 作 Web 后端优点为何这么大?

传统的Node.js作web开发优点不明显可是在Serverless时代Node.js作web开发将来会成为行业主流而且目前的发展趋势来看将来会成为中小公司的偏前台应用开发场景取代php/java的首选解决方案。为何?php

  1. 传统的Node.js作web开发优点不明显。虽然咱们能够用前端擅长的JS去写后端逻辑而且让先后端开发语言统一掉,这是很是美好的事情。可是你们会发现实际传统的NodeJS开发在中大型项目上成功案例很少,即便在阿里大厂也仅仅是作中间层或者一些长尾应用上使用而已。其根本缘由在于:NodeJS的后端开发群众基础和生态太弱,远没有php和java群众基础和生态强大,在php和java主导的后端项目中硬插入一个NodeJS开发不三不四很鸡肋。其次传统的后端开发追求DevOps而NodeJS仅仅是Dev而对于Ops而言缺乏php和java成熟的运维体系坑点不少。这两点的严重制约致使传统的NodeJS的web开发只能是小众开发。
  2. Serverless的出现尤为是FaaS的出现颠覆了咱们对后端的开发理解一会儿让咱们部分后端开发场景直接从DevOps时代进入到OnlyDev&NoOps时代,在全部的开发语言中目前现有的技术体系只有NodeJS的运行环境与FaaS的底层运维模型完美匹配度最好,这也是为何FaaS场景下NodeJS已经成为第一开发语言的背后的深层技术缘由之一。我的与阿里云FaaS团队关系很好常常进行一些技术交流,今年2月份曾经与他们交流的时候很是好奇到底第一到什么程度,当时我获得的数据是80.34%的阿里云FaaS函数都是NodeJS写的函数。曾经与腾讯云FaaS团队的同窗也交流过,他们给的经验数据也是差很少的。因此,Serverless的出现尤为是FaaS云产品的逐渐普及,使得NodeJS的web后端开发的运维问题完全根除掉了,推进了NodeJS在web后端开发领域的普及率的提升。
  3. FaaS虽然必定程度上解决了NodeJS的运维问题,可是FaaS的周边配套目前业界不成熟离真正的业务上指望的NoOPS还有必定距离。国外诸如zeit等团队,国内阿里云和腾讯云等大厂都在布局相似的工做,预计两三年内NodeJS的FaaS运维开发体验几乎能作到平民化小白都能玩得转,进一步推进NodeJS的服务端开发普及度。
  4. Web后端开发行业历史已经有20年之久了,Web后端开发要解决的业务问题抽象20年了并未发生多大本质性的变化,若是咱们要解决的问题域是不变的20多年的前人不断地总结相互借鉴必定会造成对特定领域问题的广泛共识的最佳实践解法而基于这些解法所获得的软件框架应该都是大同小异的。事实上,你们很容易发现各类语言的java、php等优秀的web开发框架的设计都是趋同类似的主要是语法表达和语言特色上的差别性而已,尤为是偏前台的后端开发场景各类语言web后端开发框架设计的同质性最高。传统的NodeJS的后端web开发框架仍是比较弱的远不如java和php功能强大,可是你会欣喜的发现前端界开发群体的创造力真的很赞,有人模仿java的hibernate作出了typeorm这样的数据库orm方案,有人模仿优秀的php开发框架laravel作出了相似的nodejs开发框架adonisjs,在阿里内部见过有人模仿spring-boot作出类java风格的nodejs新框架,按照这种趋势发展下去相信不出三五年左右时间NodeJS领域也会诞生出相似php和java的强大web应用开发框架,进而弥补目前NodeJS在web开发场景缺失强大应用框架的问题,这又会进一步推进NodeJS在web后端开发领域的流行度。
  5. NodeJS作web后端开发相比与其余语言的显著优点就是先后端一套语言技术栈是统一的,在加上目前Serverless的流行度,这最终致使的是作一样的事情企业用人成本的显著下降尤为是小企业小项目研发。曾经参加过一次腾讯云的serverless分享上提到,startup企业serverless云产品使用是惟一最正确的技术选型,若是这个结论是正确的再结合上面的80%数据结论,这意味着将来80%的小企业项目都会是使用serverless nodejs开发模式,这是一次不小的市场机遇。另外,你们也能够从招聘网站上php职位日趋降低而nodejs职位日趋上涨,这也能够间接感觉到这种将来技术趋势的变化。过去一年我曾经工做关系帮助阿里云的一个5人左右研发规模的小客户组建serverless开发团队而且试点基于阿里云serverless架构作业务,后端与运维研发成本相比与以前别人给他们推荐的php研发成本总体下降大约40%左右,平均每个月人力成本节省2万左右,一年合做下来研发人力成本节省将近30万,而他们的服务器费用由于流量不大一直保持在1000元每个月左右。因而可知,Serverless上NodeJS作web后端开发的显著价值。
  6. 尽管如今NodeJS的web后端开发周边生态仍然不如php和java强大,可是你们要知道商业社会都是逐利的,Serverless上NodeJS作web后端开发带给企业显著的研发人力成本下降会让技术决策者在更多的项目上去使用,有更多的人去用了有付费需求了天然而然会有更多的周边配套产品或开源项目产生,逐渐丰富配套的周边生态产生正向反馈循环,Serverless NodeJS的web后端开发流行度会更高。微软战略布局收购github,创新typescript,发力vscode,布局azure云上开发生态,很明显能够看出微软这样的曾经的windows开发者企业霸主指望在前端领域从新恢复霸主地位并经过NodeJS去抢占被Java和PHP抢去的开发者,有微软这样的巨头在背后给JS生态圈撑腰,何愁将来NodeJS的web开发生态不会繁荣呢!!!
  7. 任何技术都不是万能的都有场景适用性,NodeJS作web后端开发仅仅只是适合作业务应用维度的偏web前台开发的后端工做,理论上能够取代全部php现有功能,可是没法取代复杂场景的java web后端开发20年经验沉淀积累的各类分布式高并发搜索和大数据等领域的关键技术实现,一样的也没法取代高性能分布式网络go/c++等场景的后端开发,一样也没法取代大数据和人工智能和运维相关的python后端开发,...。在serverless时代的研发模式,伯克利大学Serverless学者曾经给Serverless给出一个很是有趣的定义Serverless = FaaS + BaaS,将来传统web后端开发语言会承担BaaS维度的各类服务开发并造成一个相似npmjs的服务市场,将来绝大多数的web应用开发都是用NodeJS上web开发并将应用部署到各类云厂商的FaaS上,之前咱们的先后端分界点在前端页面开发仍是后端http接口开发,将来咱们的先后端的分界点是写一个web应用仍是开发一个BaaS服务,将来不会再有纯粹的前端程序员而是职场升级为web应用开发工程师,大量市场上的php程序员和部分java web开发程序员都会被淘汰转行成为web应用开发工程师提高前端界的总体后端能力水平。
  8. NodeJS作web后端开发将来的终极发展形态到底会是咋样?下面的内容仅供你们参考不必定正确,这仅是我的从事Serverless NodeJS web开发工做研究的一点对于将来技术趋势的猜测。过去20年web应用开发得益于html与browser的web开发标准的存在让咱们以为现有的开发模式很好,可是serverless的出现就好像就是一个新的browser技术,阿里云和腾讯云等云厂商都是serverless超级browser实现商,将来咱们的大部分的web应用都是跑在各类云厂商云端serverless"浏览器"上,而JS借助于Node实现了先后端一体化应用语言,FaaS与微前端等概念的出现彷佛都是在暗示着web应用开发方法将会迎来一次新的技术变革,而NodeJS web后端开发将来如何更好的与现有的前端开发模式融合的实践,将来可能会催生出相似html的新一代serverless时代的web应用开发标准。将来可期,各位同窗,若是将来有志于从事这个新型领域的创新研究,成为serverless时代的NodeJS web全栈应用开发探索者,欢迎一块儿加入阿里。简历投递邮箱:jinghui.cjh@alibaba-inc.com
相关文章
相关标签/搜索