mcpField
D
ddd:software-architecture

ddd:software-architecture

github.com/w95开发28536 次安装35 周前更新
代码仓库

关于 ddd:software-architecture

ddd:software-architecture 是一项基于 Clean Architecture 和 Domain Driven Design 的开发技能,提供代码质量与架构指导,适用于需要明确模块边界、复用代码和领域化命名的软件开发任务。

主要功能

  1. 01遵循 Clean Architecture 和 DDD
  2. 02分离领域与基础设施
  3. 03优先考虑现有库
  4. 04定义聚焦的用例和模块
  5. 05制定代码结构与命名规范

适用场景

  1. 01设计业务逻辑与基础设施的边界
  2. 02评估使用库还是自定义代码
  3. 03围绕领域概念组织模块
  4. 04检查代码复杂度与关注点分离

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/w95/awesome-claude-corporate-skills --skill ddd:software-architecture

安装后在 Claude Code 中输入/ddd:software-architecture确认已加载。

详细介绍

软件架构开发技能

此技能为注重质量的软件开发和架构提供指导。它基于整洁架构和领域驱动设计原则。

代码风格规则

通用原则
  • 尽早返回模式:尽可能始终使用尽早返回,而非嵌套条件,以提高可读性
  • 通过创建可复用的函数和模块来避免代码重复
  • 将较长(超过 80 行代码)的组件和函数拆分成多个较小的组件和函数。如果它们无法在其他地方使用,则保留在同一文件中。但如果文件超过 200 行代码,则应拆分成多个文件。
  • 尽可能使用箭头函数,而非函数声明
最佳实践
库优先方法
  • 编写自定义代码之前,务必先搜索现有解决方案
    • 在 npm 中查找可解决该问题的现有库
    • 评估现有服务 / SaaS 解决方案
    • 考虑用于常见功能的第三方 API
  • 使用库,而不是自行编写工具函数或辅助函数。例如,使用 cockatiel,而不是自行编写重试逻辑。
  • 适合编写自定义代码的情况:
    • 领域特有的业务逻辑
    • 有特殊要求的性能关键路径
    • 外部依赖过于臃肿
    • 需要完全掌控的安全敏感代码
    • 经过全面评估后,现有解决方案仍无法满足要求
架构与设计
  • 整洁架构与 DDD 原则:
    • 遵循领域驱动设计和通用语言
    • 将领域实体与基础设施关注点分离
    • 使业务逻辑不依赖于框架
    • 明确界定用例,并使其保持隔离
  • 命名约定:
    • 避免使用通用名称:utils、helpers、common、shared
    • 使用领域专用名称:OrderCalculator、UserAuthenticator、InvoiceGenerator
    • 遵循限界上下文的命名模式
    • 每个模块都应有单一且明确的用途
  • 关注点分离:
    • 不要将业务逻辑与 UI 组件混在一起
    • 不要在控制器中编写数据库查询
    • 在上下文之间保持清晰的边界
    • 确保职责得到适当分离
应避免的反模式
  • NIH(非我发明综合征):
    • Auth0 / Supabase 已存在时,不要自建身份验证
    • 不要自行编写状态管理,而应使用 Redux / Zustand
    • 不要自建表单验证,而应使用成熟的库
  • 糟糕的架构选择:
    • 将业务逻辑与 UI 组件混在一起
    • 直接在控制器中编写数据库查询
    • 缺乏明确的关注点分离
  • 通用命名反模式:
    • 包含 50 个互不相关函数的 utils.js
    • 作为杂物堆的 helpers/misc.js
    • 用途不明确的 common/shared.js
  • 请记住:每一行自定义代码都是一项需要维护、测试和编写文档的负担

评论

支持 Markdown