CNode

精通node.js需要学习C++吗?

问答
Ssunweiconfidence发布于8 年前最后回复3 年前26 回复9535 浏览0 收藏

想精通node.js,是否需要学习C++?

查看回复

回复 (25)

A
alwxkxk#1·8 年前

想精通node.js,先入门javascript与node.js,然后做几个项目,其它的都是想太多了。

S
sunweiconfidence#2·8 年前

那如果你遇到了底层的内存泄露问题,如何解决,C++抛出的错,如何能看懂?

Z
zy445566#3·8 年前
引用 sunweiconfidence那如果你遇到了底层的内存泄露问题,如何解决,C++抛出的错,如何能看懂?

@sunweiconfidence 解决内存泄露也不一定就要会C艹。会用工具就好了,heapdump和devtool结合用就好了。如果想全面一套来直接上alinode也很不错,现在还免费了。 之前有人通过换内存分配器到jemalloc解决内存泄露才亮瞎了我的眼,我挂了一天机硬是没复现。

来自酷炫的 CNodeMD

T
tomoya92#4·8 年前

除了node.js的开发者,其它有几个人敢说自己精通了node.js

同样的也适用于其它语言 :joy

P
phper-chen#5·8 年前

不需要 语言只是工具 真要出问题要用到c++时 只能说是那个c++模块太失败 或者nodejs底层的失败 不要用野生模块 比如很久不维护的 issue少的 作者不积极的 用这些是给自己找坑

L
libook#6·8 年前
引用 sunweiconfidence那如果你遇到了底层的内存泄露问题,如何解决,C++抛出的错,如何能看懂?

@sunweiconfidence Node存在的价值就是让你只需要关心业务和JS问题,不需要关注底层C++、操作系统、硬件等问题。所以像内存泄漏这种问题,你得看是业务层算法导致的还是底层BUG,算法导致的自己优化算法,底层BUG导致的给Node提Issue或自己尝试解决然后提Pull Request;C++错误直接提Issue就可以了。

Node支持C++模块,如果有CPU密集型需求可以写C++模块来解决,这时候就需要学C++。 但一般非CPU密集型业务,用JS足够了。

后端技术栈中,引擎、语言、框架只是冰山一角,更多的是架构问题,比如负载均衡、消息总线、缓存机制、信息安全等等,除非你真的十分感兴趣Node底层技术,否则建议还是多了解一下后端架构解决方案吧。

H
hyj1991#7·8 年前
引用 zy445566@sunweiconfidence 解决内存泄露也不一定就要会C艹。会用工具就好了,heapdump和devtool结合用就好了。如果想全面一套来直接上alinode也很不错,现在还免费了。 ...

@zy445566 google 的 tcmalloc 也可以这么干,不过 jemalloc 和 tcmalloc 本意都是做内存分配优化的,拿来查泄漏 hmmmmm

Z
zy445566#8·8 年前
引用 hyj1991@zy445566 google 的 tcmalloc 也可以这么干,不过 jemalloc 和 tcmalloc 本意都是做内存分配优化的,拿来查泄漏 hmmmmm

@hyj1991 之前看到别的论坛上发这个,说是node内存消耗不断增大直到挂掉,而且小机器必现,当时第一感觉认为这个情况是内存泄漏。 当时作者也说不是内存泄漏,但他本人也不知道原因。 但仔细想想也有可能是内存碎片过于零散,内存无法成整块,从而无法分配给下次内存使用,造成的不断堆积。但想想设计内存系统的人不至于出这种问题,加上当时怎么都复现不了(仅rss有波动,但都是可接受范围),目前事情多了,所以没继续证实了。

L
linxiaoziruo#9·8 年前

看你想精通到什么程度了,如果是想精通到Nodejs是怎么写出来的,实现原理,那么是需要懂c++的,如果说精通到日常的内存管理和问题解决,那么是不需要的。

J
justjavac#10·8 年前

PHP 也是 C(++) 写的,但是在 PHP 社区怎么没人问“精通PHP需要学习C++吗?”

看来前端还是对 JavaScript 不够自信。

C
cnlile#13·8 年前

要的。c++ addons 是 nodejs 重要的部分,nodejs 生态还不是很完善,我觉得前端nodejs 和 nodejs服务 是二个不同的领域。。。。

H
heguangda#14·8 年前
引用 zy445566@justjavac 以前做PHP的时候,身边的人就老把zval挂在嘴边 来自酷炫的 CNodeMD

@zy445566 老哥看你头像很年轻的呀,怎么感觉工作经历那么丰富哈哈哈(纯属疑问)

P
phper-chen#15·8 年前
引用 cnlile要的。c++ addons 是 nodejs 重要的部分,nodejs 生态还不是很完善,我觉得前端nodejs 和 nodejs服务 是二个不同的领域。。。。

@cnlile 后端生态次于java而已 比肩php 比go生态好太多 只不过用的人少 国内没有国外热

Z
zy445566#16·8 年前
引用 heguangda@zy445566 老哥看你头像很年轻的呀,怎么感觉工作经历那么丰富哈哈哈(纯属疑问)

@heguangda 我刚换了照片,昨晚之前的照片是我年轻时候的,现在这张看起来也不年轻了吧,可能你是有缓存了吧。

S
sunweiconfidence#17·8 年前

谢谢以上各位大佬的耐心解答

1
151263#18·8 年前

不需要

G
Gitforxuyang#20·7 年前

这个要看你对精通的定义了。 我认为所有上层语言(python php等)要想真的学到精通,必须还是得懂c c++。 说到底虚拟机封装了底层实现对我们来说还是个黑盒。 最基本的,nodejs的性能来源libuv是用c++写的,不懂c++就等于不懂libuv的实现原理,不懂libuv的实现原理,好意思说自己精通了node?

Z
zouzhenxing#21·7 年前

精通nodejs语言需要c++,精通nodejs不需要c++。

Z
zurmokeeper#22·7 年前

Node支持Rust模块,如果有需求也可以写Rust模块来解决,不过多学学C++也是好的,不过不是必须。

J
jjeejj#23·7 年前

这样说吧,想做一个牛逼的后端 C 和 C++ 是必须懂的,不用多精通但必须要能看懂,如果你是一个前端用 nodejs, 那就没有必要了

参与回复
登录后即可参与回复。登录