惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

大猫的无限游戏
大猫的无限游戏
云风的 BLOG
云风的 BLOG
小众软件
小众软件
V
V2EX
博客园 - Franky
博客园 - 司徒正美
Apple Machine Learning Research
Apple Machine Learning Research
量子位
博客园 - 【当耐特】
雷峰网
雷峰网
WordPress大学
WordPress大学
Jina AI
Jina AI
Google DeepMind News
Google DeepMind News
N
Netflix TechBlog - Medium
爱范儿
爱范儿
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
阮一峰的网络日志
阮一峰的网络日志
IT之家
IT之家
Blog — PlanetScale
Blog — PlanetScale
Hugging Face - Blog
Hugging Face - Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
V
Visual Studio Blog
Microsoft Security Blog
Microsoft Security Blog

推广

Codex 助力小项目,全部重写了一遍,有点意思! 管转满血模型 GPT-5.5 / gpt-image-2 API 已上线,倍率调低 0.3,注册留 ID 送 5 美金额度 GPT-5.5 / gpt-image-2 API 已上线, 0.06$/张,注册留 ID 送 5 美金额度 不知道为什么, V2EX 的铜币实在是用不完。今天也没什么特别要宣传的,就随便来发发牢骚,消费一下铜币吧。 腾讯云国际站代充值渠道-支持 USDT 支付-免绑卡注册——LingduCloud 零度云! [发 15 个码] 开发的 Mac 应用 Deepseek coding plan 限量供应 腾讯云国际企业认证账号出售:阿里云/华为云国际可开国内节点 codex 中转,留邮箱就送。 5.1 香港旅游, Za bank 众安银行开户额外返现 300HKD 目前 GPT Plus 价格已经顶上天了,我们开发了 Pro 200 刀 拼车功能.... 3.3 元 即可上车 GPT5.5 出了? 限时 0.1x 倍率 送刀了 评论区抽 10 刀共*10 阿里云国际站充值代充-官方授权分销商开户——LingduCloud 零度云 [福利] 分享一个完美解锁 GPT-5.4 限制的住宅代理: Novproxy(内附 500M 免费试用) GPT 5.5 上了 0.1x 还不来? SentiCat 开启公测:一款自研架构的桌面 Agent,主打“任务执行+情感陪伴” 自用 OpenAI API 中转 🤡 自己搞了个 AI token 中转,能用 Codex / Claude Code,随便测下 Ai2You 智友社-让更多的人用上更好的 Ai,解决您的 AI 焦虑! 一个英语学习 APP [iOS] ,送 50 个终身会员 [中转] A 社官方满血 Opus-4-7 上线,限时免费开蹬!支持对接 & 开票! aicoding.sh: Claude API 企业级中转服务,数万用户稳定运行 GPT-5.5 上线 0.2x 倍率 Codex Plus/Pro 高缓存号池 持续稳定一个月 5.4 典型用量 8 元一亿 Token 新开业中转站 kir 0.2x GTP 0.1x gpt-image-2 0.08 华为云实名号购买:阿里云|腾讯云实名号免费开 感谢 V2EX 上各位 NAS🍆 和 Datahoarder 玩家的关注和真实反馈!作为个人开发者,能得到这么多硬核玩家们的讨论,我非常荣幸。 今天摸鱼给 NanaAI 也接入了 GPT-Image-2 腾讯云国际站实名账号 LingduCloud 零度云:腾讯云国际站实名账号认证教程! 价格差不多是官方 8 分之一的 codex 渠道,分享给大家 [星问] 紫微斗数 AI 智能解盘送福利了
[分享] 一款基于 NestJS 的 DDD 脚手架,开箱即用,助你快手上手
jarryli · 2026-04-24 · via 推广

一款基于 NestJS 的 DDD 脚手架,开箱即用,供需要的人参考

一个基于 NestJS 10 + TypeORM 的领域驱动设计( DDD ) Node.js 脚手架,内置双数据库、领域事件、统一响应、Swagger 文档与 Docker 一键启动示例。

这是什么

nestjs-ddd 是一个面向 Node.js / TypeScript 的 DDD 工程脚手架,帮你用几分钟时间搭好一个符合 DDD 分层规范的后端服务。

项目内置 用户( User )订单( Order ) 两个示例聚合,用户库走 MySQL 、订单库走 PostgreSQL ,包含 15 个 REST 接口、领域事件发布与监听、Swagger 文档、Docker Compose 一键启动。

功能与 gin-ddd / springboot4ddd 对齐,便于对比不同语言栈在 DDD 工程中的落地差异。

关注点 约束
接口层 HTTP 协议适配( VO / 路由 / 过滤器) 不写业务逻辑
应用层 用例编排、事务、DTO / Command 只依赖领域层
领域层 业务规则、聚合、领域事件、仓储接口 零框架依赖
基础设施层 TypeORM 、消息、邮件等技术实现 向上实现领域接口

一句话:MVC 按技术切,DDD 按业务切。业务越复杂,DDD 的价值越明显。

为什么 Node.js 也要用 DDD ?

有人会觉得:Node.js 是不是写写脚本、BFF 就够了,没必要用 DDD ?

结论很简单:用不用 DDD 和语言无关,和业务复杂度有关。

  • 小项目:NestJS 默认的 Module / Controller / Service 三件套就够用,没必要上 DDD 。
  • 中大型项目(模块超过 10 个、接口超过 50 个、业务规则密集),很容易出现:
    • Service 越写越臃肿,一个方法里掺杂参数校验、业务规则、事务、事件、ORM 细节;
    • 对象退化成只有 getter/setter 的"贫血模型",业务散落在各个 Service ;
    • 新来的人看不懂代码结构在表达什么业务。
  • 这时候用 DDD 就能把代码按业务语义重新切清楚
    • 聚合根 持有业务规则,不再被 Service 侵蚀;
    • 应用服务 只负责编排和事务,职责非常薄;
    • 仓储接口 + 依赖倒置 让领域层完全独立于数据库/框架。
  • TypeScript + NestJS 特别适合落地 DDD:强类型表达值对象/聚合,装饰器 + DI 天然契合依赖倒置,几乎不用造轮子。

本仓库专注于设计模式与架构

https://github.com/microwind/design-patterns