ddd-code-organization
使用 DDD 思想组织你的代码
核心目标
优先按业务能力、子系统、限界上下文组织代码,而不是把 models/、services/、repositories/、schemas/、api/ 这类技术类型目录平铺在项目根下。
目标不是机械套用 DDD 术语,而是让一个功能的核心代码尽量收敛在同一业务子系统内,做到高内聚、低耦合、边界清晰、易于协作和演进。
适用原则
在开始设计结构或新增模块前,先判断“这段代码属于哪个业务能力”,再决定目录位置。
始终优先回答这几个问题:
- 这段代码服务于哪个业务子系统?
- 这个子系统的核心职责是什么?
- 它需要暴露什么公共接口给其他子系统?
- 它依赖哪些共享能力,哪些依赖不应该直接发生?
如果一个需求横跨多个目录才能完成,优先怀疑目录组织方式有问题,而不是继续往现有的按类型结构里堆代码。
More from cruldra/skills
tauri-v2
Tauri v2 项目开发助手 - 提供 CLI 项目管理、最佳实践指导和代码生成。适用于 (1) 创建和管理 Tauri v2 项目 (2) 开发桌面和移动应用 (3) 配置构建和分发流程 (4) 实现安全的前后端通信 (5) 应用架构设计和性能优化。
15pandoc
当用户需要对某个文档进行格式转换时(例如将 Markdown 转换为 DOCX、PDF、HTML 等)使用该技能。
13refine-dev
协助开发基于 Refine 框架的 React 应用。提供项目初始化、核心配置、数据提供者(Data Providers)、认证(Auth Provider)以及 UI 库集成的指导。专注于使用 shadcn/ui 构建现代化的后台管理系统。
11dri-text-analysis
使用 DRI 文本分析法(Data-Rule-Interaction)对自然语言需求描述进行逐词拆解与领域建模。将非结构化的业务需求文本降维为数据(D)、规则(R)、交互(I)三个维度的结构化架构抽象,直接产出可用于系统设计的概念表格。适用于需求分析、领域语言提取、架构设计前的文本解析,以及将长篇需求文档转化为清晰的开发任务拆解。
9vite-starter
使用 Vite 创建现代前端项目,支持 React、Vue、Svelte、Solid、Preact、Lit、Qwik 和 Vanilla JS,可选 TypeScript。当用户需要初始化新的前端项目、搭建 SPA、创建组件库、设置现代构建工具时使用此技能。触发场景:用户说"创建 vite 项目"、"新建 react/vue/svelte 应用"、"初始化前端项目"、"搭建 spa"、"用 vite 起一个项目"、"create vite project"、"new frontend app",或明确提及 Vite、HMR、快速构建工具时。
7plantuml-renderer
Use when the user wants to render PlantUML diagrams from pasted text or files that contain valid PlantUML blocks (such as .puml, .md, or .docx text content), and expects image/text output like svg, png, txt, or utxt via local Java + plantuml.jar.
7