刚用 NestJS 完成一个项目,开发体验一般, JS 模块添加依赖注入,个人感觉必要性不强

2022-07-14 09:50:16 +08:00
 newghost
JAVA 里用依赖注入因为定义的都是 class ,想要共享实例只能注入。但 JS 模块导入即单例与 JAVA 机制完全不同,个人感觉必要性不强。
比如在文件开头的 import 语句,其实可以已经体现了依赖关系,这时你完全可以把 service/controller/dao 实例或方法 import 进来,其实已经可以算作完成了依赖声明,为什么还要 module 中重新注入一次依赖关系?
其次在构造函数中把 service/dao 实例变成参数传进来,个人感觉复杂了不少,可维护性降低。

大家觉得用 typescript + express 再分层会不会更简洁一些?
6227 次点击
所在节点    Node.js
22 条回复
humbass
2022-07-15 18:31:53 +08:00
用 nextjs 、或者 java 的创业公司基本都死光了, 有 使用 Spring 的耐心和实力,直接上 java 不香吗?

框架搞成这样,其实跟 Nodejs 没有多大关系了,跟 JS 更没啥关系了。
zhennann
2022-07-18 16:34:19 +08:00
实现 IOC 控制反转主要有两种策略:依赖注入和依赖查找。由于 js 缺乏 java 命名空间的概念,所以实现依赖注入必然会非常繁琐。而 CabloyJS 基于依赖查找的策略实现的 Bean 容器和控制反转,不仅代码简洁,而且还可以方便的实现后端代码的打包编译,保护知识产权。
参见:Bean 容器与控制反转: https://cabloy.com/zh-cn/articles/bean.html
CabloyJS 全栈框架:从入门到精通:013 bean 容器与依赖查找: https://www.bilibili.com/video/BV1iN4y1M7Y7/

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/866056

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX