没用过Node.js,就别瞎逼逼

本来不想回复的,匿名的那哥们写的挺好的,虽然不懂他为什么要匿名。但看到某些回复,不得不说几句。乱解读,误人子弟的事,还是有必要澄清的,以免Node有无端被黑,相信这也是所有布道者都应该承担这种除魔卫道的责任。


0?wx_fmt=jpeg


没有领袖,Node 之父用 Go,TJ 也用 Go,都跑了。

1) 语言不是因素,是他想做的事儿变了,但他的心依然还是爱着Koa

TJ转做Go有很多原因

  • 人家做的基于aws Lambda的基础设施 https://github.com/apex/apex,选择Go无可厚非,从架构角度,我还要给他点赞!

  • TJ对Node.js一直很关注,尤其对Koa框架,看他的Pinned repositories 就知道,另外给Koa提issue被他怼过,也可见他很在意Koa


别乱解读,误人子弟

2) Node.js之父在2012年就离开社区的,然而这5年发展的依然很好

狼叔写过一篇文章 请别拿“死”人做文章Node.js之父Ryan Dahl在2012年就离开社区的,我们必须要承认他作为创始人的伟大创举,但不能标签化,ryan不代表node,从他离开社区后,对于社区而言,他就“死”在曾经的丰功伟绩上,未来与他无关!

Node.js之父在2012年就离开社区的,然而这5年发展的依然很好,并无影响。这篇文章本来没什么问题,但有些人借位营销就恶心了。

狼叔说:Node.js不是最好,也不是最差,是性价比比较高的,可惜node做后端一直不温不火,java,php利益相关,只有新项目用,微服务架构下,会更好一些。很多人node是用错的,不是用node就什么都用,分清场景。不误解,不传谣,合适自己的才是最好的。但是总有些人想拿这事儿做文章过度解读

0?wx_fmt=png

抽象程度不够高,对于做业务的人来说这很痛苦。使用者中小白太多,人员素质参差不齐,包的数量多,质量却呵呵。

这完全是没逻辑的屁话,看起来没问题,却经不起推敲。

抽象程度,所有语言都有这个问题,Go就没有么?Java、PHP这么多年小白少么?说人员素质参差不齐,哪个语言不一样?所以说,这完全是狗屁逻辑。我比较喜欢Ruby社区,是高手和低手两级分化最明显。Node.js从2009年到现在才8年,再成熟能成熟到哪里呢?不拿一个起点比较都是扯淡。

最后说npm,黑的完全不到点上,目前超过60万个模块,绝对是社区第一。在众多包管理器上,我没见过质量都一样好的,按照80/20原则,60万里至少有12万个模块是不错的吧,你工作中能用到的会超过三位数么?

所以说质量好不好要看人怎么选,而不应该赖到npm上。长点心吧。

用来做脚本倒是没啥问题,做商业开发就处处踩坑了。我没怎么用 Node做 Web,因为怕 hold 不住。

没用过,就别瞎逼逼。

国内国外的成功案例,眼瞎看不到么?我亲历的去哪儿和阿里都在大量使用,我亲耳听到的腾讯大量使用Node,对于李成银所在的360团队也是大量使用。

如果说 Node hold 不住,其他语言就能 hold 住?呵呵

如果说 人 hold 不住,那我相信,那是水平问题。

目前 Node Web 框架依然是 koa 和 express 类似的架构,中间件没什么问题,但是如何组织它们,如何在 high level 层面把控他们却没有看到很好的最佳实践。

没用Node还哔哔框架,不是打脸么?

我们可以根据框架的特性进行分类

框架名称特性点评


0?wx_fmt=jpeg


各种框架都经过大厂小厂实践,别的语言实现的我敢说Node都有了。还有什么所谓的更好实践,从2005年rails横空出世之后,大部分框架都是借鉴ROR,Node就算没有走到最前面,至少没有落后于最佳实践,否则,请给出,否则,请闭嘴,别瞎逼逼。

大公司也是相继开发自己基于 koa 的框架。

悖论,去哪儿的基于Express用的杠杠的,无任何问题。Node不缺Web框架,Koa虽好,但迁移各种还需要时间,未来是变化的,Koa能否一统天下还犹未可知。可以肯定的是Koa在异步流程控制做的改进,命名为Node下一个Web框架是不过分的。

比如micro,比如fastify,非常多好东西。

不过在我一个 Rails 使用者的眼里,这些框架还是不够 high level如果性能要求高,我的选择肯定是 Go 而不是 Node。

用rails的人还考虑性能么?我不是黑ror的朋友们。rails这样的神器足够好,即使ruby以前性能那么不好,但不影响人家开发很多世界级应用啊。尽管后面有的被替换了,但又怎样呢?做ror的高手技能都非常全面,ruby和前端和运维都是极其的熟练。当然Node和go也有这样的人,但普遍偏弱,这不是人的问题,而是产生的时间较短,没背景的人就不能出现全栈牛逼的能力。

如果真追求性能,我建议用rust写,如果还想牛逼,用c写,最好顺便把操作系统也写了。

人还是要有自知之明,做应用软件和系统软件是不一样的思维。傻逼才只看性能呢。

0?wx_fmt=jpeg

Node 除了亲 JS 好像对我没啥吸引力。但是如果公司非要用我也不反对,大不了自己摸爬滚打找出最佳实践即可。

没用过,请绕过。我特别尊重苏千和朴灵,推动Node在阿里落地,比如苏千做的cnpm真是功德无量,比如Egg,能够统一全公司的资源去推动框架落地,可预见大公司阻力。朴灵的alinode解决了性能调优的问题,内部使用的经验沉淀,对外提供付费服务。

这是人物。做的比说的多,低调如此,也不去惹是非。用德艺双馨形容不为过。

Node 还有一个好处是 UI 做的好,比如 pm2,比如调试器,毕竟是前端,但这些都不是杀手级的卖点呀。我不是挑语言的开发者。

Node 和 UI有关系么?呵呵呵

Node 对我属于一个可用可不用位置。不过相信牛逼的你肯定可以玩转 Node。加油吧少年。我对Node新人的建议是玩一玩可以,

没用过,就别瞎逼逼。

js已经横跨3端,pc/h5,移动端(hybrid和组件化),pc client(nw.js和electron,atom和vscode体验还不错)

Node补足了js服务端的补足,比如io,比如过于依赖浏览器。

  • 1)初衷,server端,不想成了前端开发的基础设施

  • 2)命令行辅助工具,甚至可以是运维

  • 3)移动端:cordova,pc端:nw.js和electron

  • 4)组件化,构建,代理

  • 5)架构,前后端分离、api proxy

  • 6)性能优化、反爬虫与爬虫

  • 7) 全栈最便捷之路

不过要早点转 Go,因为 Node 并没有什么突出的优势。

Go在服务器端,并发模型上确实很好。做后端是极好的选型。但在前后端分离或者单体应用里,真的合适么?

前面说了,性能并不是继续选型的唯一因素,不然ror那些牛人早转了。我一直的看法是前端离不开node,api层node有优势,io密集和脚本动态,做api组装聚合类的非常合适。对于后端服务,Node也是可以的,不过这时的node和go是一样的,尤其是上了微服务架构,服务是独立的,和语言无关,按照其特性选就好了,何必扯一些没用的。

0?wx_fmt=jpeg

最后说一下Node全栈

每次演讲我会都问大家是不是前端,回答“是”的人非常多,我会开玩笑的恭喜大家:“现在的前端就是钱端”,确实,现在前端发展异常的快,而且没有趋向于类比java里ssh框架的那种稳定,所以未来很长一段时间,还会增长,持续混乱,这对前端来说是把双刃剑,一方面有很强的压迫感,不学习就跟不上时代,另一方它也是机遇,能够带给更多机会,包括money。

大家都疑惑的一个问题是如何在这样巨变的时代能够通过学习来应变,我可以很负责的告诉大家,没有捷径,但通过掌握 Node.js 能够让你降低这个学习曲线而已,毕竟Node.js是大前端的基础设施。大家可以看一下,前端的开发过程,模块化,构建,辅助工具,调优,架构调整,可以说Node.js是无处不在的。

其实,辅助大前端开发只是Node.js的一个非常无心插柳的衍生功能,通过掌握Node.js能够让你能做的更多、获得的更多,甚至可以说有更多自我实现的快乐,在后面的章节会详细讲解Node.js的具体应用场景好处,这也是本书名字里“更了不起的”要去阐述的内容。

综上种种,就是我一直提倡以 JavaScript 语言为中心的 Node全栈 概念的缘由,JavaScript 覆盖所有前端,Node.js 擅长做 I/O 密集型的后端,外加辅助开发的各种基础设施,无疑是工作、学习和成为快速掌握全栈技术最好的途径。你会的越多,你能做的就更多,你的人生也将会有不一样的精彩篇章。


少抱怨,多思考,未来更美好


全文完

欢迎关注Cnode官方公众号【node全栈】

640?wx_fmt=bmp

如果想参与评论,请点击阅读原文链接,进入国内最专业的cnode论坛

你身边如果有朋友对Node.js或全栈感兴趣,可以转发给他们看看哦,O(∩_∩)O先谢过

  • 12
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值