Sairyss/domain-driven-hexagon

GITHUB中文整理

主语言 TypeScript · 14,994 星 · MIT · 创建于 2020-11-30

架构设计领域驱动最佳实践TypeScript后端开发
打开 GitHub 仓库

一个关于如何设计软件应用的资料集,包含架构模式、设计原则与最佳实践,并配有 TypeScript 与 NestJS 的代码示例。

Stars 14,994 累计 star,越多说明被认可得越广
Watching 205 订阅该仓库变动的人数
Forks 1,565 被派生出去的仓库数
Issues 5 当前开放的 Issue 数
语言 TypeScript GitHub 自动判定的主语言
许可证 MIT 开源协议,用之前先确认能不能商用
24h 增长 — 数据积累中
7 日增长 — 数据积累中
30 日增长 — 数据积累中

仓库健康度

5 个维度
只看客观信号,不构成安全性结论
维护活跃度 部分数据
2024-06-11 13:47 最近推送

最近推送 2024-06-11 13:47(869 天前),已超过半年没更新

社区响应 数据完整
5 开放 Issue

开放 Issue 5 个 · Fork 1,565 个

增长趋势 证据不足
— 7 日新增

star 记录还不够天数,增量算不出来

项目规范 数据完整
MIT 许可证

许可证 MIT · 8 个 topics · 开了 Wiki

版本发布 证据不足
— 发布次数

这一项暂无数据,不代表项目没有发布

「证据不足」表示这项数据暂时没有取到,不能读成「项目有问题」;「部分数据」表示只拿到一部分信号。版本发布要额外调 Releases 接口,下一版补。

Star 趋势

6 天记录
最近 90 天站内记录的星数
14,994当前 Star +0首尾差值 2026-10-23最早记录 2026-10-28最近记录

横轴 2026-10-23 → 2026-10-28,纵轴按这段时间的最小/最大值拉伸。趋势来自站内每天记录一次的星数,页面打开时不会实时请求 GitHub。

它解决什么问题

据 README 归纳
没有它会怎样

缺少架构设计指导时,开发者容易写出职责混乱、难以维护和扩展的系统。它把领域驱动设计、六边形架构等分散知识集中起来,帮助人理解分层和模块化,减少在业务逻辑与基础设施耦合上的试错成本。

核心能力

6 条
归纳自 README,不是功能列表照抄
  1. 1归纳后端开发中的最佳实践与工具指南
  2. 2梳理分布式系统与系统设计相关主题
  3. 3给出按模块划分代码结构的示例
  4. 4演示从控制器到应用服务再到领域层的请求流程
  5. 5强调各层职责单一,业务逻辑与基础设施分离
  6. 6附有全栈启动模板,组合多种常用前端与后端工具

项目画像

6 个角度
决定要不要用之前,先看这六条

项目定位

一个关于如何设计软件应用的资料集,包含架构模式、设计原则与最佳实践,并配有 TypeScript 与 NestJS 的代码示例。

适合谁

适合正在设计或重构后端应用的开发者、架构师,以及希望学习领域驱动设计和六边形架构的团队。

典型场景

在学习领域驱动设计时,对照示例理解实体、应用服务和仓储各自负责什么。;启动新的后端项目时,参考分层结构组织代码,避免业务逻辑与数据库访问混在一起。;重构已有项目时,用文中分层思路评估哪些模块可以拆分或简化。;在设计全栈应用时,查看附带的启动模板了解前后端工具如何组合。

部署难度

以阅读资料和参考代码为主,无需运行环境即可理解架构思路;若动手运行示例代码,需安装 NodeJS 及相关依赖。

风险限制

示例代码限定在 NodeJS、TypeScript、NestJS 和 Slonik 等具体工具上,其他语言的实现会不同;架构模式本身与语言框架无关,但需要读者自行迁移和取舍。

最近维护

最近一次推送是 2024-06-11 13:47。 实现方式:通过文档和代码示例组织内容。示例中请求先到控制器,被转换为命令或查询对象,交给应用服务执行业务逻辑,再经接口调用基础设施完成数据读写,最后返回结果。

README 原文细节

1 个板块
项目自己写的功能与用法,原文照录

实现原理它内部是怎么做的

Architecture

This is an attempt to combine multiple architectural patterns and styles together, such as:

Before we begin, here are the PROS and CONS of using a complete architecture like this:

  • Domain-Driven Design (DDD)
  • Hexagonal (Ports and Adapters) Architecture)
  • Secure by Design
  • Clean Architecture
  • Onion Architecture
  • SOLID Principles
  • Software Design Patterns
  • Independent of external frameworks, technologies, databases, etc. Frameworks and external resources can be plugged/unplugged with much less effort.
  • Easily testable and scalable.
  • More secure. Some security principles are baked in design itself.
  • The solution can be worked on and maintained by different teams, without stepping on each other's toes.
  • Easier to add new features. As the system grows over time, the difficulty in adding new features remains constant and relatively small.
  • If the solution is properly broken apart along bounded context lines, it becomes easy to convert pieces of it into microservices if needed.
  • This is a sophisticated architecture which requires a firm understanding of quality software principles, such as SOLID, Clean/Hexagonal Architecture, Domain-Driven Design, etc. Any team implementing s

关于 domain-driven-hexagon 的常见问题

6 个问题
答案来自 README 归纳与 GitHub 实时数据
domain-driven-hexagon 是做什么的?

一个关于如何设计软件应用的资料集,包含架构模式、设计原则与最佳实践,并配有 TypeScript 与 NestJS 的代码示例。 缺少架构设计指导时,开发者容易写出职责混乱、难以维护和扩展的系统。它把领域驱动设计、六边形架构等分散知识集中起来,帮助人理解分层和模块化,减少在业务逻辑与基础设施耦合上的试错成本。

domain-driven-hexagon 有哪些功能?

核心能力:归纳后端开发中的最佳实践与工具指南;梳理分布式系统与系统设计相关主题;给出按模块划分代码结构的示例;演示从控制器到应用服务再到领域层的请求流程;强调各层职责单一,业务逻辑与基础设施分离;附有全栈启动模板,组合多种常用前端与后端工具。

domain-driven-hexagon 适合谁用?

适合正在设计或重构后端应用的开发者、架构师,以及希望学习领域驱动设计和六边形架构的团队。

domain-driven-hexagon 是怎么工作的?

通过文档和代码示例组织内容。示例中请求先到控制器,被转换为命令或查询对象,交给应用服务执行业务逻辑,再经接口调用基础设施完成数据读写,最后返回结果。

用 domain-driven-hexagon 有什么门槛或限制?

示例代码限定在 NodeJS、TypeScript、NestJS 和 Slonik 等具体工具上,其他语言的实现会不同;架构模式本身与语言框架无关,但需要读者自行迁移和取舍。

domain-driven-hexagon 现在还在维护吗?数据怎么样?

目前 14,994 星,1,565 个 Fork,主语言 TypeScript,创建于 2020-11-30,最近一次推送 2024-06-11 13:47,许可证 MIT。星数、Fork、推送时间都是 GitHub 返回的实时数据,「最近推送」离现在越近说明越活跃;长期不动要留意是否已停止维护。

这些内容来自哪

读法说明
中文整理据 README 归纳,数据取自 GitHub
中文说明据项目 README 归纳只写 README 能确认的内容,不替作者补功能与数字
关键数据与 GitHub 页面一致星数、Fork、语言与时间都不做二次加工
数据日期2026-10-23 18:01星数与介绍这份数据是哪一天的

项目数据取自 GitHub 官方接口与项目 README;星数、Fork、语言与时间以 GitHub 页面为准,档案更新于 2026-10-23 18:01。