用途:该技能为以质量为核心的软件开发与架构提供指导,适用于设计架构、编写代码或分析软件系统,核心是整洁架构(Clean Architecture)与领域驱动设计(DDD)。
主要能力与规则:
- 早返回模式:尽可能使用早返回,替代嵌套条件。
- 组件拆分:超过 80 行的组件应拆分,超过 200 行的文件应拆分。
- 库优先:写自定义代码前先搜索现有方案;常见问题(重试逻辑、状态管理、校验)优先用库。
- 整洁架构与 DDD:领域实体与基础设施分离,业务逻辑不依赖框架。
- 命名与限界上下文:避免 utils、helpers、common、shared 等泛化命名,使用领域特定命名(如 OrderCalculator、InvoiceGenerator)。
- 关注点分离:不把业务逻辑混入 UI 组件,数据库查询不放在控制器中。
- SOLID 原则:单一职责(一个类只有一个变更原因,拆分大型单体)、开闭(通过插件、继承等扩展而不修改现有源码)、里氏替换(子类可与基类互换)、接口隔离(多个专用接口优于一个通用接口)、依赖倒置(依赖抽象而非具体实现)。
应避免的反模式:NIH(重复造轮子,例如已有 Auth0 仍自建认证)、倾倒场(创建包含大量无关函数的 utils.js 或 shared.js,每个模块应有单一明确用途)。
架构决策记录(ADR):每个架构决策都应记录权衡。模板包含标题、状态(Proposed/Accepted/Deprecated/Superseded by [ADR-YYY])、上下文(问题、约束:团队规模、规模、时间线、预算)、备选方案对比表(优点、缺点、复杂度)、决策、理由、后果(正面、负面、缓解)以及重新审视触发条件。记录按顺序存放在 docs/architecture/ 目录,例如 adr-001-use-nextjs.md。
限制:资料未提供该技能的安装方式、运行环境、平台支持、收费情况或具体使用步骤。