@
cl903254852 可以说一下具体希望了解哪些层面。
如果希望了解语言层面的特性和原理,可以研究 ECMAScript 的规范,TC39 在 Github 上有 Organization,除了看已有特性的规范,还可以看 Proposal。另外看看 WTFJS 项目也可以加深理解语言方面的特性和引擎原理。
如果希望了解 V8 的原理可以去看 V8 的开发文档,甚至是源代码;另外
https://v8.dev/blog 上面也经常会有 V8 的一些特性原理介绍,比如 V8 是如何优化内存的消耗的。不过说实话,V8 的主张是不要去关心底层问题(印象很深地在 cache 管理介绍的文章里三令五申不要根据当前的缓存管理机制优化),因为 V8 在每个版本中会力求对已知的使用场景进行性能调优,所以版本更新的时候也经常会调整一些性能策略,你会发现你对旧版本做的性能优化在新版本不起作用了,而且真正遇到性能问题了应该考虑其他技术选型,比如 Webassembly(或 Node 的 N-API)。
操作系统、网络知识、数据结构与算法、设计模式、架构思想,这些应该都是语言无关的吧,Java 的相关书籍也只是讲解如何用 Java 实现这些,实际上只要了解了关键原理,就可以在任何语言上应用。
高并发是 Node 骨子里的东西,只要搞懂 Node 的异步机制和事件循环就可以了,其余的 Node 都帮你设计好了,不像 Java 那样还需要费很大劲去实现。
DevOps 方面,Node 的部署是超级简洁,拉代码、npm install、pm2 start 就搞定了,0 配置,配置在容器里也只是相当于套个壳子让 K8s 自动化管理。
Node 本身的东西真的没多少,后端相关的知识里绝大部分是设计模式、系统架构、数据库、中间件,但这些都是与语言、引擎无关的。