Node.js 知识体系(一)-说说你对Node的理解

这是我参与更文挑战的第二十一天,活动详情查看:更文挑战

Node.js 拥有广大的 JavaScript 程序员基础,并且完全开源!因此拥有一个强大的开发者社区!依靠繁荣的社区力量,已经发展出成熟的技术体系!以及庞大的生态!

Node 被广泛的应用在

  • web 服务
  • 开发工作流
  • 客户端应用
  • …等诸多领域

Node 在 web 服务领域接受程度是最高的,通常它被用来做一个 BFF 层,即 Backend For Frontend(服务于前端的后端) 。

20210622172155

BFF 层通俗点来讲就是,浏览器和后台的一个中间渲染层,这个中间层负责组装后台返回的各个微服务中的数据。并且组装成前端所需要的数据,再返回到浏览器, 即为了前端所服务的后台服务。

BFF 层的主要职责:

  • 对用户提供 HTTP 服务
  • 使用后端 RPC 服务

这类程序的特点是不需要太强的服务器运算能力,但对程序的灵活性有较高的要求!这两个特点正好和 Node.js 的优势吻合!

在 web 服务领域搭建一个 Node.js 的 BFF 层是有很大好处的:

  • 对于业务本身来说:

Node.js 是最适合做 BFF 层的一门技术,有一个 BFF 层能让前端有能力自由组装后台数据,这可以大量较少业务沟通成本,加快业务的迭代速度。同时,前端开发者能自主决定前端与后台的通信方式,也让前端开发者有更多能力着手 web 应用的性能优化

  • 对于后端和运维工程师来说:

Node.js BFF 层的搭建绝对不是一个光靠前端工程师就能完成的事情,在搭建过程中涉及到 RPC 调用,系统运维等场景,都需要后端和运维的紧密配合,通过搭建 BFF 层,除了后续能大幅较少自己在繁重业务的工作量之外,还可以大大提升自己在架构领域的知识经验

  • 对于前端工程师来说:

Node.js 虽然是一门非浏览器技术,但是它基于 JavaScript 环境,能让前端工程师快速上手。学习一门非浏览器技术,对于学习计算机领域的其他知识非常有好处,我们可以经由 Node.js 涉及 数据库,操作系统,人工智能等技术领域。让前端工程师不再因技术壁垒将眼光局限在浏览器环境内。

Node.js 有哪些难点

Node.js 除了 JavaScript 外,其他地方和浏览器技术几乎毫无交集!即使是数据结构,设计模式等程序员通用技巧,也都有侧重点不一样的地方

比如在使用 Node.js 的过程中,前端工程师需要了解 RPC 调用,进程管理等非浏览器知识,对一些基础薄弱的工程师会造成比较大的困扰

除此之外,在推广 Node.js 的过程中,可能还会遇到产品,后台,运维 等不同角色质疑。导致前端同学使用 Node.js 会碰上各种各样的阻力!

因此,除了补充必要的后台开发知识,和系统运维知识之外,还需要对 Node.js 的优缺点,它能给业务带来的价值,都有非常深入的理解。才能说服他人配合你完成从前端到后台的一整套项目开发

什么是 Node.js

官网的话

Node.js® 是一个基于 Chrome V8 引擎 的 JavaScript 运行时
Node.js 使用了事件驱动,非阻塞 I/O 的模型,使其轻量又高效

自由理解

  1. Node.js 运行 JavaScript, 和 Chrome 运行 JavaScript 几乎没有不同!用的是同样的 JavaScript 引擎和模型

  2. Node.js 主要针对服务端 没有浏览器某些 API,如 documentwindow…..加了许多 自身 API

  3. 对于开发者来说,在 Chrome 里写 JavaScript 控制浏览器
    Node.js 让我们用类似的方式,控制整台电脑

Node.js 可以用来做什么

服务端渲染

Node.js 被广泛得用在 web 服务领域

如:腾讯视频– 网页现在服务端渲染,最后返回浏览器端的(在浏览器中查看源代码,如果有对应的 dom 结构,就是服务端渲染)

服务端渲染的优点

  • 有利于 SEO
  • 有利于首屏渲染加速

服务端渲染渲染时需要考虑, 前后端代码复用的问题

前后端同构: 即同一套代码,既可以用在后端,也可以用在前端

构建工作流

  • gulp
  • webpack

游戏

  • wayward

客户端应用

  • 比如:最流行的开发工具-VSCode
  • 在已有网站的情况下需要新开发客户端应用
  • 用 Node.js 客户端技术(eletron) 实现,最大限度复用现有工程

最后

文章浅陋,欢迎各位看官评论区留下的你的见解!

觉得有收获的同学欢迎点赞,关注一波!

good

往期文章

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享