深入剖析 Node.js 底层原理--掘金小册课程推荐/优惠
版权声明
本站非掘金小册官网,与官方无任何关系。我们不提供课程下载或详细内容,仅作为课程分享和推荐平台。我们鼓励大家支持正版,尊重创作者的劳动成果,这样不仅能帮助创作者持续产出优质内容,也能让自己获得更好的学习体验。请通过官方渠道购买和学习课程,感谢您的理解与支持。
课程详情
课程介绍
你将获得
-
夯实基础,深入学习操作系统、网络、V8 知识;
-
全面提升,掌握基础原理与核心模块的实现;
-
动手实操,从 0 实现一个简单的 JS 运行时;
-
触类旁通,能独立研究源码,解决业务问题。
作者简介
theanarkh,字节跳动 Node.js 工程师,目前主要负责 Node.js APM 方向的工作,曾在腾讯云 / IMWeb / WebInfra 等团队工作。Node.js Collaborator 和 Libuv Contributor,业余写过玩具 JS 运行时 No.js 和 Deer,个人公众号《编程杂技》。
小册介绍
Node.js 从诞生到现在,已经走过了十几个年头。随着全栈工程师、微服务、前后端架构分离的火热,从开发工具到 Web 应用,从客户端到服务端,越来越多的使用场景中都能看到 Node.js 的身影。与此同时,各个公司对 Node.js 开发者的要求也越来越高。比如会要求我们对进程 / 线程、网络、流和异步等概念有深刻理解,精通 Node.js,熟悉 TCP、HTTP 等网络协议,学习能力和解决问题的能力强。
作为一名 Node.js 工程师,如果我们只是面向文档 黑盒 编程,显然已经不能满足这些要求了。文档只是 Node.js 的一部分,想要提升自己的核心竞争力,我们一定要深入理解 Node.js 底层原理。理解底层原理不仅可以帮助我们解决日常工作中碰到的各种问题,更好地完成工作中各种需求,还可以帮助我们更快地学习其他技术,因为技术都是相通的。
但是,大部分同学在阅读源码或深入学习 Node.js 时,可能会遇到很多问题。
-
项目逻辑复杂,代码庞大,不知道如何看或者看哪些代码。比如:看完 JS 模块的源码后,不知道如何进一步阅读 C、C++ 层的代码。
-
Node.js 涉及知识比较广,很多地方看不懂,比如会涉及 V8、事件驱动、非阻塞 IO、进程间通信等知识。
-
无法建立完整的知识体系,实际工作中运用不好。比如:知道文件操作是基于线程池的,但是不知道具体原理;知道 net 模块如何使用,但是不知道它是如何基于事件驱动模块工作的。
基于此,本小册将围绕以下 3 条原则来设计。
-
庖丁解牛:小册梳理了 Node.js 核心的内容,按照架构、基础、核心模块循序渐进的讲解,让大家对 Node.js 有一个全面、清晰、深入的认识。
-
纸上得来终觉浅,绝知此事要躬行:小册除了讲解 Node.js 的实现原理,还会提供一些实践的代码,最后还会教大家实现一个简单的 JS 运行时,来加深认识。
-
授人以渔:小册还会讲到很多底层通用的基础知识,如:V8、操作系统、网络等等。学无止境,希望你通过小册学会的不仅仅是 Node.js 本身,更是独立阅读源码,深入探索的能力。
具体的课程内容如下:
适宜人群
-
能看懂 C、C++ 代码,了解常用的语法;
-
了解 Node.js 的一些基础和核心概念,常用模块和 API 的使用;
-
希望深入理解 Node.js 或 JS 运行时的底层原理,更好地解决工作中碰到的问题;
-
希望为 Node.js 社区做贡献,让自己的代码被成千上万的开发者使用。
课程目录(更新中)
- Node.js 基础架构
- Libuv 数据结构和通用逻辑
- Libuv 的功能是如何引入 JS 的
- Libuv 的流机制
- Libuv 事件循环
- Libuv 线程池和线程间通信
- Node.js 中 JS 和 C++对象的内存管理机制
- Node.js 的启动过程
- 多线程和线程间通信的实现
- 模块加载的实现
- TCP 基础和客户端 / 服务器的实现
- 详解文件模块的同步、异步、Promise 化、流式操作 API
- UDP 客户端 / 服务器的实现和特性
- 从 Libuv 和 cares 的角度,理解 DNS 模块的实现
- Unix 域和文件描述符传递
- 服务器技术的演进和 Cluster 模块的实现
- 进程和进程间通信的实现
- Node.js 中 HTTP 模块的实现和使用
- 总结:阅读源码的意义
- 从 0 到 1 实现一个简单的 JS 运行时
- setImmediate、nextTick 和 setTimeout 的实现
- 开篇:深入剖析 Node.js 底层原理
- TCP 的数据通信的实现和特性
- Node.js 中两套文件监听机制的实现