我开始讨厌node.js了

Posted 晓舟报告

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我开始讨厌node.js了相关的知识,希望对你有一定的参考价值。


写在前面

对于node,短短的几年,我经历了由爱到恨,这不是一个技术问题,而是一个心结。


拥抱JavaScript

2014年,我从一个半吊子c#程序员转速前端,突然就爱上了javascript,感觉好像一颗被c#束缚已久的心终于解放了,js那种放荡不羁爱自由的操作领悟神魂颠倒,我感觉自己摆脱了那些过度封装的程序,所有的代码都尽在掌握之中,那种感觉说不出的爽。


过了没多久,我发现了node,原来js还可以写后台,这领我萌生了一个幼稚的想法,用js就可以横扫天下了。现在很多前端新人还保持着这样的想法。

我开始讨厌node.js了

我开始使用node完成后台的一些工作,开始感觉灵活多变很幸福,但是过了一段时间,我发展了三个问题:

  1. 基于原型的面向对象真的有点蹩脚

  2. 回调总是让人很不爽

  3. 动态类型一时爽,代码重构火葬场


ES2015是一个转机

遇到问题就得解决问题,到了2015年,ES6(现在都叫ES2015了)发布了,再也不用prototype写类了(虽然发布之前也能用,但是我是发布之后用的)。async函数好像在未来也能大显身手,回调地狱再也不是问题了(我那时候还没有用promise),那时候虽然还没用过TpyeScript,但是类型问题也能解决,node王者归来,一统天下的时刻要到了。但是一直有一个小小困扰,就是感觉代码很零散,要靠经验将他们组织起来,而不是他们本身就在一起。


冰山一角

直到我接触到java,我才想明白我为什么感觉node零散。java的语法和c#的语法简直一模一样,但是并不像.net体系那样过度封装,写起来虽然没有那种放荡不羁爱自由的感觉,但是整体好像规矩了很多。这领我对node一统天下的想法感觉到一丝迟疑。node好像只是冰山一角,世界这么大,我想去看看。

然后我又接触到了python,写写简单的脚本,操作文件,ppt,写一点简单的脚本工具,在python的轻便体验之下,我终于领略到了,这才是放荡不羁爱自由!

我开始讨厌node.js了

从此,我对node的感情趋于平淡,看待技术的角度也有了转变。技术本身有它的应用场景,没有银弹可以解决一切问题。


技术选型

后来我辞职和朋友做一个小公司,只有几个人,我负责技术。公司要有一个门户网站做内容展示,很简单的一个网站,我选择了node,为什么用node,因为我是一个前端程序员,我最擅长的就是JavaScript。虽然我感觉用python或者java会是更好的选择,但是会引入一些我不擅长的问题,从而增加维护成本。

其实很多公司技术选型都是这样的,负责人喜欢什么就用什么,或者擅长什么就用什么,新人刚入职场的时候,以为技术选型要各种考量,各种博大精深,其实那是大公司的事儿,他们不缺钱,不缺人才,可以选择适合自己的技术,但是小公司呢,会什么用什么就不错了。facebook最开始也是扎克伯格用php写的。


对node的一些看法

整个前端开发的生态都是在node的基础上搭建起来的,所以没有node,前端开发会变得寸步难行,但是在后台,node只是冰山一角,希望掌握node就能变成全栈工程师,学了JavaScript就能一统天下,这样的想法我也有过,但是现在想想确实很幼稚。


node在后台的应用

我没做过专业的java开发,没做过专业的python开发,没做过专业的node开发,但是从我的经历来看,node只是冰山一角,大部分玩node的人都是前端程序员,因为在前端,我们不能没有node,但是再后台,node却是可有可无的(如果您感觉在后台某些地方node是不可替代的,可以指点一下我这个孤落寡闻的前端程序员,一定会虚心学习。)


这里还要说一下,做服务器渲染也好,做前后端数据交互的中间层也好,虽然代码运行在服务器上,但是我仍然坚持把他们归类到前端技术上。上图是淘宝几年前的解决方案。


我开始讨厌node了

我开始讨厌node不是因为node这门技术,而是讨厌之前的自己,以为学会node就能成为全栈,以为javascirpt可以统一编程语言,现在想想真的很可笑。如果您不希望node被讨厌,最好不要盲目地追捧node。


以上是关于我开始讨厌node.js了的主要内容,如果未能解决你的问题,请参考以下文章

开始在 node.js 中使用 JWT

JS做深度学习1——偶然发现与入门

Node.js 不推送所有通知

.NET程序员也学Node.js——初识Node.js

如何让我的 Node.js MySQL 连接作为承诺工作?

基于阿里云的 Node.js 稳定性实践