当前位置:首页 > 每日看点

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

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

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

分享给朋友:

相关文章

怎么免费看电视地方台和央视台?

怎么免费看电视地方台和央视台?

免费看央视和地方台,办法当然有,而且太多了,我怕你挑花了眼用不过来…… 首先题主需要明确一点,你家的电视需要是基于安卓系统的智能电视,能安装第三方安卓电视软件。比如小米电视、雷鸟电视等等;如果不是,你至少需要购置一个电视盒子,比如小米电视盒…

你有突破100个粉丝了吗?

你有突破100个粉丝了吗?

100粉已经过啦! 说说怎么过的吧,最开始疯狂的写回答,写想法,关注人数在50几以下持续有两周多,每天都关注变化,都是个位数增长,后来干脆不看了。 到第三周时突然一周增长了100多人,一天十几人,想想应该归功于多互动,给他人点赞评论,让自己…

小米14和华为mate60怎么选?

手持荣耀20,用了五年多了,使用仍然较为流畅,但是电池不太行了,于是2024年8月在家乡的小米之家购买了小米14(12+256),用了快两个月吧,说说使用体验。 外观层面,由于我使用的荣耀20放在现在妥妥地属于小屏,习惯了小屏,遂购买小米1…

你捡过最大的漏是什么?

你捡过最大的漏是什么?

买了套二手房,软磨硬泡便宜了1个w 结果就是一屋子狼藉 原业主说反正你们要重新装修 就不收拾了 等完了你们一起收拾掉吧 落了很多柜子 电器是啥的 今天打开卧室柜子一看… 现在是去存钱的路上 有朋友知道这样存钱银行会给发大米跟油吗…

荣耀magic 7 首发的应该都收到货了,感觉怎么样?

8号入手magic7,跟mate40pro比。 优点:1、电池真耐用,充电块,华为电池也是新换的但是明显荣耀耐用;2、系统明显快多了,mate40pro下半年开始卡的不行,实在受不了了。3、声音、震动效果提升明显,指纹反应灵敏很多。 缺点:…

无意中发现技术主管写的代码,大家帮忙看看什么水平?

无意中发现技术主管写的代码,大家帮忙看看什么水平?

虽然很多答主用了诸如“典范级”、“心旷神怡” 的形容, 赞美这段代码, 但这里, 出于技术讨论的动机, 我说说不同看法. 栈, 如果善于利用栈来处理树结构, 那么可以写出更简洁的代码, 根本不需要 recuresiveFn 这种方法. 泛型…

发表评论

访客

看不清,换一张

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