当前位置:首页 > 每日看点 > 正文内容

为什么说Node.js有望超越Ja?

卡卷网1年前 (2025-01-02)每日看点180

20年前就开始用ja做项目了,6,7年前改用了Node。最近对springoot的体系和Nodejs做了一个对,感觉springoot就是因为ja的强类型特征,给自己附加了很呆板的,然后有搞了一堆概念,例如反射,工厂,泛型什么的去突破这个,在语言层面上是全面落后于Nodejs的,Nodejs是一个灵活的武器,对标业务需求快速开发就行了,语言本身带来的问题很少。

目前做的看,例如数据库的事务处理,springoot和Nodejs的Koa在同等的事务要求下,性能基本是相当的(本地mysql,事务包括作一个自增表,然后生成随机用户,再到一个表中,都启动事务锁定),基本都是20ms左右响应完成。

整体springoot的开发过程都是较缓慢,多余的代码也很多,最搞笑的地方是,如果编译器和IDE知道改成什么样子就可以的话,为什么还有费用改成那个样子呢?这不就是让人去服务机器吗?

例如最近也加入var的声明方式了,感觉Ja这边也慢慢在醒悟了。

除了Ja较繁琐外,整体语法过程逻辑其实差距到不到。

不过Nodejs特别的方便的地方有以下几点。

1,Json作太方便了,完全吊打Ja,短期Ja因为类型的要求估计无法实现。

2,数据库作,Node出来的结果按Json直接作就行,无需做什么ean,也不用一个一个的get去取值。这个对于数据库作较多和较灵活的地方特别方便。

3,写sql方便,最近Ja也有“”“这个文字块的作了,但对Node还是缺乏一些优雅。尤其node是支持“和’的,为啥方便呢?因为可以根据你作的对象场景切换,尤其sql里面。

4,npm包亲和力和便利性Men的库体系方便,不用到POM里面写一堆,package.json里面写上名字就行,而且npm的官网上查找包的时候也方便,而已例子都给的很好。

5,由于没有编译等过程,Nodejs的开发调试过程很顺畅。Ja常有的需要clean好几次的问题,Nodejs是没有的。

6,Node对于数组,对象属性的作对Ja都方便太多,基本上依据直觉都可以写,不需要啰哩啰嗦的写一个一个的类。

7,Springoot自带Tomcat作为运行容器,node本身作为运行时基本相当,但是如果通过PM2运行一个集群,可以在1台设备上实现生产的效果,如何前面配合Nginx的话基本可以替代Springcloud。

8,对Mongod,redis作什么的,语法层面都是较方便的,Springoot下也还可以,需要定制的地方已经写ean映射什么的还是很烦人的。

综合看,如果是新公司没有什么历史资产和开发人员的技术的问题,还是直接上node吧,目前这么多年的经验看是没有任何问题的。

Ja这一套对于开发人员能力本身不足,需要按一个套路和模板开发的情况下,大量的快速培训开发人员可能会有一定的帮助。如果用node的话,设置好开发规模也可以达到一样效果,但由于node确实是非常的灵活,如果开发人员本身的技能不足的话,可能会出现一些偏差,所以代码还是最好要review一下。

最大的好处应该是前后端都可以一个班子开发了,当然,前端侧重效果的地方还是需要一个专业的前端团队。

补充一些对。

目前Springoot的很多特性其实在Node的架构里面也是可以对照的。

如,IOC,在node里面本身不需new对象的方式(个别处理数据是需要的),此外例如连接池什么的都放到gloal的下面就好了,需要用的时候直接使用,很直观.

AOP的概念在node里面就中间件,不过也可以自己按注解的方式去实现一个node版的注解,我自己写了几个,主要用着接口的log,权限什么的。在处理过程中没有去做这样的包装,感觉概念太大影响了逻辑本身的思考过程。尤其是事务处理,希望开发的人非常明确的去启动事务,而且要清楚为什么这里要启动事务。而ORM这样的东西早在十几年前我就弃用了,这东西在有一个很强的DA团队再分工的情况下还可以用一下,多数情况下都是自娱自乐的,sql已经很简单了,ER图都不清楚的话最好不要写后端代码。myaits还是可以的,不过基本实现情况和node很像了。

id=++rows[0].id constnewdata=[id,''] sql=` updatedata.num setid=? wherename=? ` awaittran.update(sql,newdata)

对照上面是node的代码。

springoot的实现是这样

@Update(""" updatedata.numsetid=#{id} wherename=#{name} """) IntegerupdateId(Integerid,Stringname);

方便程度差不多,不过由于上面又一次的包装了注解,感觉还是node的版本自由度更大。

如果处理返回结果,node的架构就更是无敌了,可以把查询结果直接使用,中间不用再去申明一个record或者ean处理。

letsql=` selectidfromdata.numwherename=?forupdate ` constrows=awaittran.query(sql,['']) id=++rows[0].id

我的感觉Ja这边很喜欢发明概念,体系太庞杂,如同唱京剧,一堆要讲究的东西,其实效果也就那么回事,Node就像流行音乐,你可以有自己的章法,好听就行了。

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2025/01/6125.html

分享给朋友:

相关文章

现在手里有一万闲钱,买什么币好?

今天是2024年7月29日,看看我的持仓吧。只有几百刀的那些微持仓就不说了,以下持仓都在几千刀~几万刀不等。不构成任何投资建议,成本是多次买入的大致均摊成本$TIA 成本0$DYM 成本0 $SAGA 成本0$STRK 成本0$ETHFI...

为什么苹果贵没人喷,华为贵一群人喷?

苹果:6:¥5288,6s:¥5288,7:¥5288,8:¥5288,XR:¥6299,11:¥5499,12:¥5999,13:¥5999,14:¥5999,15:¥5999,16:¥5999华为:P8:¥2888,P9:¥2988,P...

手机的运行内存真的有必要上16GB吗?

全是国产垃圾APP惯出来的。那些对国产软件没意见的人,建议出国看看,花不了多少钱,出门开 Google Map,订宾馆用 Booking,翻译用 Google translate,聊天用 Telegram,社交活动用 Discord,你会惊...

自媒体如何快速起步?

自媒体如何快速起步?

有两种经验,可供参考。第一种是:现象级的爆火、爆款,这种情况捞到钱,实现财务自由的人并不多,但确实存在。只不过非要说清楚为什么这个账号可以火、可以短时间内赚到普通人一辈子赚不到的钱,他们自己也不一定能说清楚,因为赶上了风口(内外部情况)。举...

到什么程度才叫精通 Linux?

我们医院有个大牛。有一次,我的Linux电脑下载了Microsoft office 365 不能运行。于是买了2.5升装康师傅冰红茶找到大牛,让他帮忙解决。大牛白了我一眼,让我把安装包发给他,只见他输入一个命令将安装包打开,整个屏幕都是数字...

我觉得华为Mate60Pro明明配置不高,为什么还是有那么多人买呢?

我也好奇啊,所以闲聊时,我问了我们公司的副总,我说Mate60pro配置这么拉胯你怎么还买啊?他一脸疑惑的看着我,配置?什么配置?我这手机信号挺好的啊?我们总经理用的是去年华为出的折叠手机,花了一万多,我也想问问他同样的问题,但奈何一直没有...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。