有没有 Node 的好书推荐? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
cl903254852
V2EX    程序员

有没有 Node 的好书推荐?

  •  
  •   cl903254852 2019-12-03 11:06:09 +08:00 3490 次点击
    这是一个创建于 2146 天前的主题,其中的信息可能已经有所发展或是发生改变。

    node 相关的书也太匮乏了,目前看过最好的就是朴灵的<深入浅出 node.js>还是 4 年前的作品,node 原理相关。 其它 node 相关的书不是讲的太浅就是平庸之作,大量的教你弄个聊天室教你弄个博客。 反观人家 java <java 并发编程>、<深入 java 虚拟机>、<java 编程思想>,你看看人家的书讲的都是啥?

    18 条回复    2019-12-04 01:05:05 +08:00
    carrywu
        1
    carrywu  
       2019-12-03 11:46:14 +08:00
    nianyu
        2
    nianyu  
       2019-12-03 11:48:10 +08:00
    node 没有好书, 只有讲 几个 api 和 express koa 等玩具框架的
    onfuns
        3
    onfuns  
       2019-12-03 13:18:06 +08:00
    写来写去都是写 api 的,没有系统实战的书籍
    jon
        4
    jon  
       2019-12-03 13:59:54 +08:00
    都去学 go 了把
    salamanderMH
        5
    salamanderMH  
       2019-12-03 14:03:40 +08:00
    这个人: https://xcoder.in/
    写了本《 Node.js:来一打 C++ 扩展》,你有兴趣不?
    szdubinbin
        6
    szdubinbin  
       2019-12-03 14:14:32 +08:00
    也说明市场决定一切吧,像 python 和 node 在纯后端市场一直不是主流,像很火的中间件,微服务之类都很难找到最佳实践那些东西的。
    wangyzj
        7
    wangyzj  
       2019-12-03 14:26:47 +08:00
    我用 node 替换了 php 因为效率和先进
    可能单线程单例的东西写书的都觉得简单把
    或者前端工程师都忙着造轮子没时间写书
    libook
        8
    libook  
       2019-12-03 14:27:30 +08:00
    官方 guide 看一遍,然后 API 文档看一遍,Web 框架看一看用一用,就行了,没必要看书,我自己带的实习生对 JS 栈 0 基础,看官方文档一个月上手。
    cl903254852
        9
    cl903254852  
    OP
       2019-12-03 15:06:15 +08:00
    @libook 这只是停留在会使用层面
    learnshare
        10
    learnshare  
       2019-12-03 15:08:43 +08:00
    只能去看流行库的源码了
    cl903254852
        11
    cl903254852  
    OP
       2019-12-03 15:13:26 +08:00
    @wangyzj 我觉得 node 真是好东西啊,擅长 I/O 密集型,对于单线程来说,node 也有 cluster worker_threads child_process。就算后端分层来说,java 或 go 做数据层,node 做中间层来招客都是非常好的架构,这也在很多厂里已经实践了。
    但现在很多 node 使用者,大部分也只是使用而已,对于内存、多线程多进程、并发等摸都摸不到。node 都出来 10 年了,居然没有几本像样的书,真的很可惜
    cl903254852
        12
    cl903254852  
    OP
       2019-12-03 15:15:46 +08:00
    @salamanderMH 哈哈,这本书立场会不会很尴尬,为啥不直接学 C++(仅从书名发表感想),轻喷
    wangyzj
        13
    wangyzj  
       2019-12-03 15:45:41 +08:00
    @cl903254852 其实我也只是使用,没深究过,很多多进程啥的都用其他体系结构去解决,就像我说的替换 php,只是写 web 的小东西,其他的功能有更好的选择,体系结构上他比 php 更好更先进
    想深究看 v8 吧
    libook
        14
    libook  
       2019-12-03 17:13:52 +08:00
    @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 本身的东西真的没多少,后端相关的知识里绝大部分是设计模式、系统架构、数据库、中间件,但这些都是与语言、引擎无关的。
    jerrry
        15
    jerrry  
       2019-12-03 17:54:23 +08:00 via Android
    @libook 一直好奇,部署 node 项目的正常流程,是带一大堆 node_modules 吗?还是说打包成单文件再部署上去。
    libook
        16
    libook  
       2019-12-03 17:59:46 +08:00
    @jerrry 如果是容器的话,就是在线下或者 CI 里安装好 node_modules 再打包成镜像推倒线上 registry ;如果不用容器的话就是在服务器上下载代码然后用 npm ci(这个指令可以参照 package-lock.json 来安装,确保和开发、测试环境安装的依赖版本一致),安装完再启动,一般 npm 本地都有 cache,所以速度也都还能接受,而且如果是分布式部署的话,只需要在主节点上 npm ci,安装完后从节点直接 scp/rsync 主节点的文件就行了。
    cl903254852
        17
    cl903254852  
    OP
       2019-12-03 19:23:27 +08:00
    @libook 码字辛苦了。你说的这些确实是我想知道的,其实说白了就是想有那么几本书能包含这些东西,并伴有 node demo (也可以说我懒)。

    你们的 node 是用容器部署的吗?还是其他方式?
    libook
        18
    libook  
       2019-12-04 01:05:05 +08:00
    @cl903254852 我们有些服务在 K8s 里,有些是在云主机上直接部署,用容器主要是想尝试用 K8s 的 DevOps 和 SRE 相关的功能,对于 Node 本身来说,容器能发挥的价值极其有限,不像 Java 那样能用容器来解决大量头痛的环境和配置的问题。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     874 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 21:30 PVG 05:30 LAX 14:30 JFK17:30
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86