为什么说最好别去碰node.js,那就是一个大坑

这波天秀 发布于 01/14 10:42
阅读 1K+
收藏 0

首先我们通常说的的javascript,那基本都是说的ES5以下的,因为我们用JS只是用了一些方法而已,不会拿他去做工程,以前它是连class都没有的,想要做一点工程你必须学ES6,ES7以上。

学完ES6, 你想要做一个像样的工程,你还得学node,既然学node那你肯定得用包管理器,js的包管理器及其的混乱,有npm,jam,yarn等,还有各种重构,什么下一代,而且js的包依赖那是恐怖级别的,你一下个那是会给你依赖几千个包的,也就是说,一个node项目,开始是什么那永远也别想更新了。

那你要再稍微做大一点,那就要学typescript,因为js各种坑会让你连觉都睡不着。

等你用了node没多长时间,你又会发现node被创始人抛弃了,又用go语言建了一个Deno,后面又发现go不行,又用Rust给重构了,整个技术栈你会发现极其的混乱不堪,虽然人很多,但就是一个大杂烩。

结果你花了大半的精力去搞那些,到了企业你还是得乖乖去搞前端,现在Dart、Flutter、Fuchsia、又来势凶凶。

回头你就会发现,你做了那个多,都是在那瞎折腾。

加载中
1
张亦俊
张亦俊

楼主说的问题都是通过技术管理去解决的问题。

换成php:你可以说,有人用 php4、有人用php7

换成java:你可以说,有人连范型都不用,有人却lambda写得飞起

你比如我们,强制要求写ts,固定ts版本,鸟事没有

1
繁华似水
繁华似水

那知道为什么每个语言既然这么多的槽点,那么多痛的无法呼吸的问题,大家都还在用?

本质上,知道那些问题的人,几乎都是架构师,有能力用好某种语言,某种工具。用某种特定的语言解决特定领域的故事。

不知道这些问题的人,吐槽的点还不在关键上,感觉写出这个语言的人坑了自己,坑了无数人。

我会用Linux(12年)C/C++(1年),java (8年),golang(2年),js/nodejs(5年),这里的会,是指我用这些语言写过超过3个生产系统项目。比较久的工作年限。几乎是全栈开发,但现在是架构师。遇到的坑,比写过的代码还多。没写过php,因为php跟自己的价值观不符合,感觉是用裸jsp和模版语言在写代码。

所以小朋友,遇到一些问题不要先开枪,这个世界上没有语言是完美无缺的,所有语言设计者都没有试图做完美无缺的语言,每一门语言,有它自己的高级特性,是犹抱琵琶半遮面的,就像谈恋爱的时候,你根本不知道,你女朋友在生活中到底有没有你想象中那么贤良淑德。

有些时候,自己动手去了解真相的过程,要远比道听途说的真相更加接近“真相”。

 

0
袁国涛
袁国涛

叫坑说明你还可以跳出来.来学个java试试?

0
繁华似水
繁华似水

你要不要开喷,golang,rust,java

连论点我都给你想好了

golang的包管理机制目前是坨翔,依赖github,环境配置变量含糊不清,gopath变量没啥卵用。语法自成一套体系,贼烂无比。

rust,生态贼差,要啥没啥。

java这种臃肿!依赖管理就是一坨。各种jar容易包冲突。项目一大各种启动编译慢的一谈糊涂。jdk瞎搞版本,oracle就没干好事。

typescript 也没好到哪里去,说是兼容js,语法也奇怪的要死,在一个面向过程的函数式脚本语言中,硬生生搞面向对象,也是一堆脑残“MS狗"。

只有我大php,可以装好依赖,啥都不用管.全局引用。一次搞定,终生受益。

 

这波天秀
这波天秀
你说的那些没错,但是PHP只能做web,我也承认,局限性的确很低,但是全局直接调用就是简单,这点再怎么喷都无法改变,有些让人非要说什么安装的时候麻烦,你是想安装的时候多麻烦一分钟,还是后期无限麻烦?用屁股都能想得到
溪涧顽石
溪涧顽石
我大php每次访问都要去搂一遍文件。。槽点也多啊。。
0
0
左华栋
左华栋

阿里出的两个框架,包括新出的 midway 。 等着你盖棺材板,去他们 isuess 说吧。

https://github.com/eggjs/egg

https://github.com/midwayjs/midway

蚂蚁金服也有个 chari 的 node.js 框架,没开源。

0
左华栋
左华栋

又来秀下限了~

利益相关: php转node.js 的路过! 真香  【laravel 转 nest.js ,不推荐传统express koa 这些框架】

当时也像你一样看不起js ,现在只能说真香~ 

 

1. ES5 问题:

使用 es5 写代码是很难受的,但是得考虑浏览器兼容怎么办? 于是社区有了babel 这样的好东西,你可以按照自己的喜好去使用 es6  es7 es8  甚至 ts ,不用担心浏览器兼容问题。 

为什么别的语言没babel ? 一是 别的语言不像浏览器局限于用户升级。 二是  babel 需要大量的人力维护,其他社区很难撑起来。

所以只有js 社区有足够有这样的活跃度。

 

2.  前端工程化问题:

前端只需要使用 npm install ,npm run dev  ,npm run start  这几个命令即可,需要安装node,但压根不需要学node 。

这个别出来贻笑大方了。快要笑死我了。

 

3. 包管理器问题:

yarn  npm pnpm 以及 npm 团队新出的tink 都是完全兼容的,楼主这个基础真的让人捉急啊,黑都不会黑。 

 

4. 更新问题:

npm update  包名@版本  (默认是latest)   会升级相关包及依赖。 这个别出来丢人了。

另外,最牛逼的一点,npm 不仅可以升级包,还能升级node 和 npm 。

 

5. node 创始人抛弃问题:

这个提过很多次了,2012 年就离开 js 社区了,现在由 Linux 基金会管理。去学了go,后来看js社区很火,又回来弄了 deno 。

 

6. node.js 搞前端的问题:

js 本身就是一门语言,可以写后端,可以写APP ,可以写web ,可以写桌面应用,可以写游戏,AR,嵌入式.....

搞哪个都很随意,谢谢。 

0
左华栋
左华栋

引用来自“袁国涛”的评论

叫坑说明你还可以跳出来.来学个java试试?

个人觉得java 不算坑, spring 那套确实很经典。

不论是 angular 还是 后端框架 nest.js 都借鉴了它。

 

php 的laravel 和 swoft 也借鉴了。

0
Youtubeornotobe
Youtubeornotobe

无论用什么语言,当别人给一个项目你接,你可以完成就OK了,不限哪种语言!完成才是皇道,这些年SOHO,得出的经验!

0
大海的贝壳

使用 es5 写代码是很难受的,但是得考虑浏览器兼容怎么办

左华栋
左华栋
babel 。 这就是前端工程化的好处了
返回顶部
顶部