@umacloud/knowledge 1.0.15 → 1.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. package/00-governance/governance-capabilities.md +1 -1
  2. package/00-governance/knowledge-map.md +4 -6
  3. package/agentic-delivery/01-standards/context-engineering-for-delivery.md +94 -0
  4. package/agentic-delivery/01-standards/eval-driven-delivery.md +90 -0
  5. package/agentic-delivery/01-standards/generated-code-failure-modes.md +91 -0
  6. package/agentic-delivery/01-standards/production-readiness-scorecard.md +79 -0
  7. package/agentic-delivery/01-standards/self-improving-memory-and-regression-sets.md +80 -0
  8. package/agentic-delivery/01-standards/spec-as-contract.md +88 -0
  9. package/agentic-delivery/01-standards/test-discipline-for-generated-code.md +94 -0
  10. package/agentic-delivery/01-standards/test-integrity-and-anti-gaming.md +92 -0
  11. package/agentic-delivery/01-standards/verifier-critic-pattern.md +89 -0
  12. package/ai/01-standards/app-runtime-model-configurable.md +76 -0
  13. package/ai/agent-evaluation-benchmark.md +4 -6
  14. package/ai/ai-agent-memory-context-management.md +4 -6
  15. package/ai/ai-cost-capacity-optimization-playbook.md +4 -6
  16. package/ai/ai-data-security-and-compliance-playbook.md +4 -6
  17. package/ai/ai-domain-index-and-checklist.md +4 -6
  18. package/ai/ai-governance-maturity-model.md +4 -6
  19. package/ai/ai-model-selection-and-routing-strategy.md +4 -6
  20. package/ai/ai-observability-and-oncall-runbook.md +4 -6
  21. package/ai/ai-rag-engineering-playbook.md +4 -6
  22. package/ai/ai-red-team-and-safety-evaluation.md +4 -6
  23. package/ai/ai-release-readiness-and-rollback-gate.md +4 -6
  24. package/ai/llm-agent-engineering-deep-dive.md +4 -6
  25. package/ai/prompt-and-tool-guardrails.md +4 -6
  26. package/api/01-standards/api-versioning-and-deprecation-policy.md +100 -0
  27. package/architecture/01-standards/configuration-and-environment-management.md +104 -0
  28. package/architecture/01-standards/domain-driven-design-complete.md +105 -0
  29. package/architecture/02-playbooks/migration-playbook.md +1 -5
  30. package/architecture/02-playbooks/system-design-playbook.md +1 -5
  31. package/architecture/adr-template-and-examples.md +4 -6
  32. package/architecture/api-gateway-deep-dive.md +1 -1
  33. package/architecture/configuration-management.md +95 -1158
  34. package/architecture/distributed-transactions.md +1 -1
  35. package/architecture/microservices-complete.md +1 -1
  36. package/architecture/resilience-and-disaster-patterns.md +87 -27
  37. package/architecture/service-governance.md +1 -1
  38. package/architecture/system-architecture-deep-dive.md +4 -6
  39. package/backend/01-standards/cjk-in-exports-and-documents.md +107 -0
  40. package/backend/01-standards/dependency-and-supply-chain-hygiene.md +90 -0
  41. package/backend/01-standards/django-complete.md +2 -2
  42. package/backend/01-standards/error-handling-taxonomy.md +88 -0
  43. package/backend/01-standards/idempotency-and-safe-retries.md +101 -0
  44. package/backend/01-standards/message-queue-patterns.md +96 -374
  45. package/backend/01-standards/nestjs-complete.md +23 -23
  46. package/backend/01-standards/queue-and-consumer-reliability.md +98 -0
  47. package/backend/01-standards/resilience-and-fault-tolerance.md +101 -0
  48. package/backend/01-standards/transactions-and-concurrency-control.md +92 -0
  49. package/cicd/cicd-blueprint-deep-dive.md +4 -6
  50. package/cicd/release-readiness-gate.md +78 -27
  51. package/cloud-native/01-standards/container-security.md +1 -5
  52. package/cloud-native/01-standards/kubernetes-complete.md +1 -5
  53. package/cloud-native/02-playbooks/gitops-with-argocd.md +1 -5
  54. package/cloud-native/02-playbooks/k8s-troubleshooting-playbook.md +3 -7
  55. package/cloud-native/02-playbooks/multicloud-governance.md +1 -5
  56. package/cloud-native/02-playbooks/serverless-patterns.md +1 -5
  57. package/cloud-native/02-playbooks/service-mesh-playbook.md +1 -5
  58. package/cloud-native/03-checklists/container-security-checklist.md +1 -5
  59. package/cloud-native/03-checklists/k8s-production-readiness-checklist.md +1 -5
  60. package/cloud-native/04-antipatterns/container-antipatterns.md +1 -5
  61. package/cloud-native/04-antipatterns/k8s-antipatterns.md +1 -5
  62. package/cloud-native/05-cases/case-k8s-migration.md +1 -5
  63. package/cloud-native/05-cases/case-k8s-scaling.md +1 -5
  64. package/cloud-native/05-cases/case-k8s-security-incident.md +1 -5
  65. package/cloud-native/06-glossary/cloud-native-glossary.md +1 -5
  66. package/compliance/01-standards/audit-logging-and-evidence.md +111 -0
  67. package/compliance/01-standards/privacy-and-compliance-readiness.md +119 -0
  68. package/data/01-standards/elasticsearch-complete.md +2 -2
  69. package/data/01-standards/postgresql-complete.md +8 -8
  70. package/data/01-standards/redis-complete.md +11 -11
  71. package/data/data-governance-and-modeling-deep-dive.md +4 -6
  72. package/data-engineering/01-standards/kafka-complete.md +22 -22
  73. package/design/ui-full-lifecycle-cross-platform-playbook.md +1 -1
  74. package/design/ux-system-deep-dive.md +4 -6
  75. package/design-systems/00-craft-rules.md +1 -1
  76. package/design-systems/bold-geometric.md +1 -1
  77. package/design-systems/brutalist-bold.md +1 -1
  78. package/design-systems/editorial-clean.md +1 -1
  79. package/design-systems/glass-aurora.md +1 -1
  80. package/design-systems/modern-minimal.md +1 -1
  81. package/design-systems/premium-luxury.md +1 -1
  82. package/design-systems/soft-warm.md +1 -1
  83. package/design-systems/tech-utility.md +1 -1
  84. package/development/00-governance/document-template.md +3 -3
  85. package/development/01-standards/code-review-and-pr-hygiene.md +85 -0
  86. package/development/01-standards/golang-complete.md +2 -2
  87. package/development/01-standards/python-design-patterns.md +2 -2
  88. package/development/01-standards/typescript-advanced-types.md +2 -2
  89. package/development/03-checklists/production-readiness-checklist.md +6 -6
  90. package/development/09-maturity/quarterly-audit-template.md +3 -5
  91. package/development/11-ui-excellence/ui-aesthetic-system.md +3 -5
  92. package/development/13-implementation-assets/knowledge-gates-execution.md +3 -5
  93. package/development/api-contract-and-versioning-guide.md +4 -6
  94. package/development/api-governance-complete.md +4 -6
  95. package/development/backend-engineering-complete.md +4 -6
  96. package/development/code-review-quality-complete.md +11 -34
  97. package/development/concurrency-reliability-complete.md +4 -6
  98. package/development/database-engineering-complete.md +4 -6
  99. package/development/engineering-effectiveness-complete.md +4 -6
  100. package/development/engineering-standards-deep-dive.md +4 -6
  101. package/development/frontend-engineering-complete.md +4 -6
  102. package/development/performance-capacity-complete.md +4 -6
  103. package/development/refactor-migration-complete.md +4 -6
  104. package/development/refactoring-and-techdebt-playbook.md +4 -6
  105. package/development/security-in-development-complete.md +4 -6
  106. package/devops/01-standards/docker-complete.md +2 -2
  107. package/devops/01-standards/terraform-complete.md +3 -3
  108. package/experts/architect/contract-first-api-design.md +140 -0
  109. package/experts/product-manager/prd-template-and-structure.md +144 -0
  110. package/experts/product-manager/requirements-engineering-ears.md +133 -0
  111. package/experts/qa-lead/test-plan-template.md +127 -0
  112. package/frontend/01-standards/accessibility-acceptance-gate.md +91 -0
  113. package/frontend/01-standards/accessibility-complete.md +3 -3
  114. package/frontend/01-standards/i18n-and-localization.md +1 -1
  115. package/frontend/01-standards/react-hooks-complete.md +33 -33
  116. package/frontend/01-standards/ui-states-and-resilient-data-fetching.md +97 -0
  117. package/frontend/01-standards/vue3-complete.md +2 -2
  118. package/high-quality-engineering-playbook.md +4 -6
  119. package/incident/02-playbooks/chaos-engineering-playbook.md +1 -5
  120. package/incident/postmortem-and-response-deep-dive.md +4 -6
  121. package/mobile/01-standards/flutter-complete.md +3 -8
  122. package/mobile/01-standards/react-native-complete.md +3 -8
  123. package/mobile/02-playbooks/mobile-performance.md +3 -9
  124. package/mobile/03-checklists/mobile-release-checklist.md +3 -5
  125. package/mobile/04-antipatterns/mobile-antipatterns.md +3 -5
  126. package/observability/01-standards/observability-and-slo-operations.md +88 -0
  127. package/observability/01-standards/observability-standards.md +2 -0
  128. package/operations/01-standards/cost-and-finops-engineering.md +84 -0
  129. package/operations/01-standards/production-readiness-review.md +103 -0
  130. package/operations/01-standards/prometheus-monitoring-complete.md +2 -2
  131. package/operations/aiops-anomaly-detection.md +4 -8
  132. package/operations/capacity-planning.md +4 -8
  133. package/operations/chaos-engineering.md +4 -8
  134. package/operations/incident-command-system.md +4 -6
  135. package/operations/observability-complete.md +4 -8
  136. package/operations/slo-sli-playbook.md +4 -8
  137. package/operations/sre-operations-deep-dive.md +4 -6
  138. package/package.json +1 -1
  139. package/performance/01-standards/performance-budgets-and-load-testing.md +91 -0
  140. package/product/feature-prioritization-framework.md +97 -35
  141. package/product/kpi-and-metric-tree.md +69 -26
  142. package/product/product-discovery-and-prd-deep-dive.md +4 -6
  143. package/release-engineering/01-standards/feature-flag-lifecycle.md +92 -0
  144. package/release-engineering/01-standards/progressive-delivery-and-release.md +92 -0
  145. package/release-engineering/02-playbooks/release-rollback-and-recovery-playbook.md +99 -0
  146. package/release-engineering/03-checklists/release-rollback-readiness-checklist.md +61 -0
  147. package/release-engineering/04-antipatterns/release-antipatterns.md +63 -0
  148. package/security/01-standards/authorization-and-access-control.md +94 -0
  149. package/security/01-standards/owasp-top10-complete.md +2 -2
  150. package/security/02-playbooks/incident-response-security-playbook.md +1 -5
  151. package/security/02-playbooks/penetration-testing-playbook.md +1 -5
  152. package/security/compliance-automation.md +1 -1
  153. package/security/container-security.md +1 -1
  154. package/security/devsecops-complete.md +1 -1
  155. package/security/sast-dast-sca.md +1 -1
  156. package/security/secrets-management.md +1 -1
  157. package/security/security-architecture-deep-dive.md +4 -6
  158. package/security/threat-modeling-stride-playbook.md +4 -6
  159. package/seed-templates/auth-system.md +1 -1
  160. package/seed-templates/blog-content.md +1 -1
  161. package/seed-templates/dashboard.md +1 -1
  162. package/seed-templates/docs-site.md +1 -1
  163. package/seed-templates/e-commerce.md +1 -1
  164. package/seed-templates/saas-landing.md +1 -1
  165. package/seed-templates/settings-page.md +1 -1
  166. package/testing/01-standards/ci-test-gates-and-coverage.md +93 -0
  167. package/testing/01-standards/contract-testing-and-api-contracts.md +102 -0
  168. package/testing/01-standards/test-data-and-ephemeral-environments.md +105 -0
  169. package/testing/02-playbooks/e2e-testing-playbook.md +1 -5
  170. package/testing/risk-based-test-matrix.md +75 -25
  171. package/testing/testing-strategy-deep-dive.md +4 -6
@@ -1,16 +1,14 @@
1
1
  ---
2
2
  id: prompt-and-tool-guardrails
3
- title: prompt-and-tool-guardrails
3
+ title: Prompt 与工具调用护栏规范
4
4
  domain: ai
5
- category: prompt-and-tool-guardrails.md
5
+ category: 01-standards
6
6
  difficulty: intermediate
7
- tags: [ai, and, guardrails, prompt, tool, 与工具调用护栏规范]
7
+ tags: [prompt, 护栏, guardrails, 工具调用, 安全边界, 结构化输出, ai]
8
8
  quality_score: 70
9
9
  last_updated: 2026-06-15
10
10
  ---
11
- # 开发:Excellent(11964948@qq.com)
12
-
13
- ## Prompt 与工具调用护栏规范
11
+ # Prompt 与工具调用护栏规范
14
12
 
15
13
  ### 目标
16
14
  - 防止模型越权操作、错误调用工具或输出不可信内容。
@@ -0,0 +1,100 @@
1
+ ---
2
+ id: api-versioning-and-deprecation-policy
3
+ title: API 版本与弃用治理规范(商业级必读)
4
+ domain: api
5
+ category: 01-standards
6
+ difficulty: intermediate
7
+ tags: [api, versioning, deprecation, sunset, breaking-change, backward-compatible, semver, migration, consumer, 版本, 弃用, 废弃, 破坏性变更, 商业级]
8
+ quality_score: 95
9
+ last_updated: 2026-06-29
10
+ ---
11
+ # API 版本与弃用治理规范(商业级必读)
12
+
13
+ > 接口一旦有人调用,它就是**契约**,不再是你一个人能随便改的代码。
14
+ > 商业级团队对外接口的演进遵循一条铁律:**老调用方不许被你的改动搞挂**。
15
+ > 版本化解决"如何在不破坏现有消费方的前提下演进",弃用治理解决"如何**有序、可预期地**让老版本退场"——两者缺一,要么永远不敢改,要么一改就出事故。
16
+
17
+ ## 1. 核心原则
18
+
19
+ - **兼容优先**:能向后兼容就别升版本。新增是兼容的,删改是破坏的。
20
+ - **破坏性变更必须版本化**:永远不在同一版本里做破坏性变更(见 §3 判定)。
21
+ - **弃用要可预期**:老版本退场要提前公告、给迁移期、给信号,而不是某天突然 404。
22
+ - **消费方视角**:以"现有调用方会不会挂"为唯一判据,而不是"我代码改得爽不爽"。
23
+ - **支持窗口有限且明确**:不无限维护所有历史版本,但退场节奏要写明、要守约。
24
+
25
+ ## 2. 版本化方式(选一种,全项目统一)
26
+
27
+ | 方式 | 形态 | 优点 | 取舍 |
28
+ |---|---|---|---|
29
+ | URL 路径 | `/api/v1/orders` | 直观、易路由、缓存友好 | 版本粒度粗(整套接口)|
30
+ | 请求头 | `API-Version: 2` | URL 稳定、灵活 | 不直观、调试需看 header |
31
+ | 日期版本 | `API-Version: 2026-06-29` | 渐进、精确到每次变更 | 管理成本高 |
32
+ | 媒体类型 | `Accept: application/vnd.x.v2+json` | 符合 HTTP 语义 | 客户端支持参差 |
33
+
34
+ 要点:**对外公开 API 推荐 URL 路径版本**(最直观、最少踩坑);选定后全项目统一,别混用。主版本号对应破坏性变更(语义化版本,见 `release-engineering/01-standards/progressive-delivery-and-release`)。
35
+
36
+ ## 3. 破坏性 vs 兼容性变更(判定表)
37
+
38
+ | 破坏性(必须升主版本)| 兼容性(不升版本)|
39
+ |---|---|
40
+ | 删除字段 / 端点 | 新增**可选**字段 / 新端点 |
41
+ | 重命名字段 | 新增可选请求参数(有安全默认)|
42
+ | 改字段类型 / 取值含义 | 放宽校验(接受更多输入)|
43
+ | 把可选参数改为必填 | 新增枚举值(**需消费方容忍未知值**)|
44
+ | 改默认行为 / 改错误码语义 | 新增响应头 |
45
+ | 收紧校验(拒绝原本接受的输入)| bug 修复(不改契约语义)|
46
+ | 改认证 / 分页 / 排序契约 | 性能优化(行为不变)|
47
+
48
+ 判定底线:**任何让现有调用方的正确请求开始失败、或让它依赖的返回结构变形的改动,都是破坏性的。** 新增枚举值是否破坏,取决于你是否在契约里要求消费方"忽略未知值"——要求了才算兼容。
49
+
50
+ ## 4. 弃用生命周期(三阶段,可预期)
51
+
52
+ ```
53
+ 公告(announce) → 过渡(transition) → 下线(sunset)
54
+ ```
55
+
56
+ | 阶段 | 动作 |
57
+ |---|---|
58
+ | 公告 | 在文档/changelog 标记弃用,给出替代方案、迁移指南、**明确下线日期** |
59
+ | 过渡 | 老版本继续可用但返回弃用信号(见 §5),主动联系高频调用方,监控剩余用量 |
60
+ | 下线 | 用量降到可接受阈值且过了承诺期后,停用老版本并返回明确错误 |
61
+
62
+ 铁律:**先有替代、再宣弃用**——没有可迁移的新版本,不准弃用老版本。给足真实的迁移窗口(按受众,常以季度/年计),不是说下线就下线。
63
+
64
+ ## 5. 弃用信号(让调用方提前知道)
65
+
66
+ - **`Deprecation` 头**:标记该端点/版本已弃用(可带弃用时间)。
67
+ - **`Sunset` 头**:标明计划下线时间,让调用方有据可依地排期迁移。
68
+ - **`Link` 头 / 文档**:指向替代端点与迁移指南。
69
+ - **可观测**:服务端监控老版本调用量与调用方,弃用进度数据驱动,而不是猜。
70
+ - **changelog**:每次版本变更面向使用者写清"新增/变更/弃用/破坏性/迁移方式"。
71
+
72
+ ## 6. 治理与协同
73
+
74
+ - **契约即真相**:接口契约(OpenAPI 等)是版本化和兼容性校验的依据;契约变更要过契约测试(见 `testing/01-standards/contract-testing-and-api-contracts`)。
75
+ - **兼容性门禁**:CI 中校验新契约对现有消费方兼容(无未升版的破坏性变更),不兼容则拦住发布(见 `testing/01-standards/ci-test-gates-and-coverage`)。
76
+ - **消费方清单**:维护"谁在调哪个版本",弃用前能精准触达,下线前能确认无活跃调用。
77
+ - **内部 vs 外部**:内部接口可更快迭代、更短窗口;公开/合作方接口要更长支持期与更正式公告。
78
+ - **与开关的边界**:功能开关控行为可见性,**不替代**版本化(见 `release-engineering/01-standards/feature-flag-lifecycle`)。
79
+
80
+ ## 7. 反模式(出现即不合格)
81
+
82
+ 1. **破坏性变更不升版**:直接改线上契约,老调用方批量 500/解析失败。
83
+ 2. **静默弃用 / 突然下线**:不公告、不给迁移期,某天直接 404。
84
+ 3. **无替代就弃用**:宣布老版本退场却没有可迁移的新版本。
85
+ 4. **无限维护所有版本**:从不下线,版本越堆越多,维护成本失控。
86
+ 5. **版本方式混用**:URL、header、query 各处混搭,调用方无所适从。
87
+ 6. **不知道谁在调**:没有消费方与用量数据,不敢动也不敢下线。
88
+ 7. **把收紧校验当兼容**:以为"只是更严格",其实让原本合法的请求开始被拒。
89
+ 8. **changelog 堆 commit**:使用者看不懂变了什么、要不要迁移。
90
+
91
+ ## 8. 最低交付 checklist
92
+
93
+ - [ ] 选定一种版本化方式并全项目统一;破坏性变更升主版本。
94
+ - [ ] 明确区分破坏性/兼容性变更,破坏性绝不进同版本。
95
+ - [ ] 弃用走公告→过渡→下线三阶段,**先有替代再弃用**,给足迁移窗口。
96
+ - [ ] 弃用时返回 `Deprecation`/`Sunset` 信号,文档给出迁移指南。
97
+ - [ ] 监控各版本调用量与消费方,弃用/下线数据驱动、可精准触达。
98
+ - [ ] 契约为准,CI 做兼容性门禁,破坏性变更被拦截。
99
+ - [ ] changelog 面向使用者写清变更与迁移方式。
100
+ - [ ] 明确版本支持窗口,到期有序下线、守约不突袭。
@@ -0,0 +1,104 @@
1
+ ---
2
+ id: configuration-and-environment-management
3
+ title: 配置与环境管理规范(配置即代码/环境对等/启动校验,商业级必读)
4
+ domain: architecture
5
+ category: 01-standards
6
+ difficulty: advanced
7
+ tags: [configuration, environment, 12-factor, config-as-code, secret-management, env-parity, config-validation, fail-fast, config-drift, promotion, 配置管理, 环境对等, 配置校验, 配置漂移, 密钥分离, 商业级]
8
+ quality_score: 95
9
+ last_updated: 2026-06-29
10
+ ---
11
+ # 配置与环境管理规范(商业级必读)
12
+
13
+ > 一份代码要跑在 dev / staging / prod 多个环境,环境之间**只有配置不同、代码完全一致**。配置一旦失控——硬编码环境分支、密钥进仓库、环境之间偷偷不一样、缺配置跑到一半才崩——线上事故里有相当一部分根本不是代码 bug,而是"配置在这个环境是错的"。
14
+ > 商业级系统把配置当成**一等交付物**来治理:配置与代码分离、配置与密钥分离、环境严格对等、启动即校验、变更可审计可回滚。本规范给出可落地的配置纪律,不绑定任何具体配置中心产品(产品选型见 `architecture/configuration-management`)。
15
+
16
+ ## 1. 三条分离原则(地基)
17
+
18
+ | 分离 | 含义 | 违反的后果 |
19
+ |---|---|---|
20
+ | 配置与代码分离 | 环境差异(地址、开关、阈值、外部 URL)从外部注入,绝不写死在代码里按环境 `if` | 改一个环境的值要改代码、重新构建、重新走发布 |
21
+ | 配置与密钥分离 | 普通配置(可入仓库的非敏感项)与密钥(token/私钥/口令)分两套管理 | 密钥混进配置仓库 → 泄露面无限扩大 |
22
+ | 构建产物与环境无关 | 同一个制品(镜像/包)不改一行就能部署到任意环境 | 每个环境单独构建 → "在 staging 是好的,prod 这个包不一样" |
23
+
24
+ 核心判据:**同一份构建产物 + 不同配置 = 不同环境**。如果切环境需要重新构建,说明配置没真正外置。
25
+
26
+ ## 2. 配置分类与来源优先级
27
+
28
+ 把配置按性质分类,每类有明确的来源与生命周期:
29
+
30
+ | 类别 | 例子 | 来源 | 是否敏感 | 变更频率 |
31
+ |---|---|---|---|---|
32
+ | 基础设施配置 | DB 地址、缓存地址、队列地址 | 环境变量 / 配置中心 | 否 | 低 |
33
+ | 密钥 | DB 口令、API 私钥、签名密钥 | 密钥管理(KMS/Vault/云 secret) | 是 | 中(轮换) |
34
+ | 业务参数 | 超时、重试次数、限流阈值、分页大小 | 配置文件 / 配置中心 | 否 | 中 |
35
+ | 功能开关 | 灰度开关、降级开关 | 功能开关系统(见 `release-engineering/feature-flag-lifecycle`) | 否 | 高 |
36
+ | 环境标识 | 环境名、区域、版本号 | 注入环境变量 | 否 | 部署时定 |
37
+
38
+ **来源优先级要确定且唯一**:约定一个清晰的覆盖顺序(如 默认值 < 配置文件 < 环境变量 < 启动参数),写进文档;同一个键绝不允许两处都"可能生效"导致猜不到实际取了哪个值。配置解析后应能**打印生效配置快照**(脱敏)便于排障。
39
+
40
+ ## 3. 启动即校验(fail-fast)
41
+
42
+ 配置错误必须在**进程启动的最初几秒**暴露,而不是跑到第一个用到该配置的请求才崩——那时已经在线上了。
43
+
44
+ - **必需项缺失即拒绝启动**:所有 required 配置在 boot 阶段检查,缺一个就打印清晰错误并退出非零码,绝不带病启动。
45
+ - **类型与取值域校验**:端口必须是数字、超时必须为正、URL 必须可解析、枚举必须在允许集合内——用 schema(如结构化配置类型 + 校验器)统一校验,不要散落在各处 `parseInt`。
46
+ - **依赖连通性可选探活**:对关键依赖(DB/缓存)在 readiness 前做一次连通探测,把"配错地址"挡在接流量之前(见 `backend/01-standards/config-and-observability` 的健康检查)。
47
+ - **校验信息可读**:错误要说清"哪个键、期望什么、实际拿到什么、从哪个来源读的",让人 5 秒定位,而不是一个裸 `NullPointerException`。
48
+
49
+ ## 4. 环境对等(dev / staging / prod parity)
50
+
51
+ 环境之间差异越小,"本地好的、线上挂的"越少。
52
+
53
+ - **同构而非异构**:各环境用**相同的**依赖种类与版本(同样的数据库引擎、同样的队列、同样的运行时版本),差异只在规格与数据量,不在技术栈。staging 必须尽可能贴近 prod。
54
+ - **配置键集合一致**:所有环境拥有**相同的配置键集合**,只是值不同。新增一个配置项,必须同时为所有环境提供值(哪怕是默认),杜绝"prod 少配了一个键"。
55
+ - **用 .env.example 锁定契约**:仓库里提供 `.env.example`(或等价的配置模板)列出全部键与占位说明;真实的 `.env` 入 gitignore。CI 校验"代码里读取的键"⊆"模板声明的键"。
56
+ - **禁止环境特判代码**:代码里出现 `if (env === 'prod')` 改变业务逻辑是反模式;环境差异应体现为**配置值**,不是**代码分支**。可观测性、日志级别等运行差异也走配置。
57
+
58
+ ## 5. 密钥的生命周期
59
+
60
+ 密钥是配置里风险最高的一类,单列治理:
61
+
62
+ - **绝不进仓库/镜像/日志**:密钥不提交版本库、不打进镜像层、不打印到日志与错误信息、不进前端可见的产物。提交前用 secret 扫描挡住(见 `security/01-standards/supply-chain-security`、`security/secrets-management`)。
63
+ - **运行时注入**:密钥在运行时从密钥管理服务注入(环境变量 / 挂载 / SDK 拉取),应用只持有引用不持有明文落盘。
64
+ - **可轮换**:密钥支持**无停机轮换**——应用能感知新密钥并平滑切换,轮换不需要改代码、不需要长停机。设定轮换周期与到期告警。
65
+ - **最小权限**:每个服务只拿它需要的密钥;不同环境用**不同**密钥,绝不 dev 与 prod 共用一把。
66
+ - **泄露应急**:密钥一旦疑似泄露,流程是**立即吊销 + 轮换**,而不是"先观察"。
67
+
68
+ ## 6. 配置变更管理(配置即代码)
69
+
70
+ 线上配置变更和代码发布一样危险——很多重大故障是"改了一个配置值"引发的。
71
+
72
+ - **配置走版本控制与评审**:非密钥配置以**配置即代码**方式管理(声明式文件入库 + PR 评审 + diff 可见),不在控制台手改无记录。
73
+ - **变更可审计**:谁、何时、把哪个键从什么改成什么,要有审计记录(见 `compliance/audit-logging-and-evidence`)。
74
+ - **变更可回滚**:配置有版本历史,能一键回滚到上一个已知良好版本;回滚和发布同等重要。
75
+ - **高风险配置灰度**:影响面大的配置(限流、超时、开关)变更要能**灰度 + 监控 + 快速回退**,不要全量瞬时生效。
76
+ - **运行时热更要安全**:支持热更新的配置,变更后要有校验与生效确认;不可在无校验下让一个错值瞬间打到全量。
77
+
78
+ ## 7. 配置漂移与一致性
79
+
80
+ - **检测漂移**:定期比对"声明的期望配置"与"运行时实际配置",发现手动改动导致的漂移并告警。运行时实际值应能导出与基线比对。
81
+ - **不可变基础设施优先**:环境通过声明式 IaC 重建而非手动改出来,从根上减少漂移(见 `cloud-native` / `devops/terraform`)。
82
+ - **配置与制品绑定可追溯**:每次部署记录"用了哪个制品版本 + 哪个配置版本",出事能精确反查组合。
83
+
84
+ ## 8. 反模式(出现即不合格)
85
+
86
+ 1. **硬编码 + 环境特判**:地址/密钥写死在代码里,或用 `if (env==='prod')` 改业务逻辑。
87
+ 2. **密钥进仓库/镜像/日志**:token、口令出现在代码、配置仓库、镜像层或日志中。
88
+ 3. **缺配置跑到一半才崩**:没有启动校验,错误在第一个用到的请求才暴露在线上。
89
+ 4. **环境键集合不一致**:prod 少配/多配了键,本地与线上技术栈不同,"本地好的线上挂"。
90
+ 5. **每个环境单独构建**:制品不是环境无关的,切环境要重新打包,破坏可追溯性。
91
+ 6. **控制台手改无记录**:线上配置在控制台裸手改,无评审、无审计、无法回滚。
92
+ 7. **配置来源含糊**:同一个键多处可能生效,实际取了哪个值靠猜。
93
+ 8. **密钥无法轮换**:密钥写死,轮换需要改代码或长停机;dev 与 prod 共用密钥。
94
+
95
+ ## 9. 最低交付 checklist
96
+
97
+ - [ ] 配置与代码分离、密钥与普通配置分离、制品环境无关(同一产物跑所有环境)。
98
+ - [ ] 配置来源优先级唯一且文档化,能打印脱敏后的生效配置快照。
99
+ - [ ] 启动即校验:必需项缺失/类型错/取值越界立即 fail-fast 并给可读错误。
100
+ - [ ] 各环境配置键集合一致,提供 `.env.example` 模板,CI 校验代码读取的键⊆模板。
101
+ - [ ] 代码中无 `if(env)` 改业务逻辑;环境差异只体现为配置值。
102
+ - [ ] 密钥运行时注入、不入仓库/镜像/日志、可无停机轮换、按环境隔离、有到期告警。
103
+ - [ ] 非密钥配置以配置即代码方式入库评审,变更可审计、可回滚、高风险项可灰度。
104
+ - [ ] 定期检测配置漂移;部署记录制品版本 + 配置版本可追溯。
@@ -0,0 +1,105 @@
1
+ ---
2
+ id: domain-driven-design-complete
3
+ title: 领域驱动设计与边界划分规范(商业级必读)
4
+ domain: architecture
5
+ category: 01-standards
6
+ difficulty: advanced
7
+ tags: [ddd, 领域驱动, 限界上下文, bounded-context, 聚合, aggregate, 通用语言, 战略设计, 战术设计, 防腐层, 上下文映射, 服务边界, 商业级]
8
+ quality_score: 95
9
+ last_updated: 2026-06-29
10
+ ---
11
+
12
+ # 领域驱动设计与边界划分规范(商业级必读)
13
+
14
+ > 服务边界划错,后面所有努力都在还债。商业级系统的复杂度不在技术、在业务——领域驱动设计(DDD)的价值是先用**业务语言**把问题切成内聚、低耦合的块,再让代码结构与团队结构对齐这些块。本规范是框架无关的硬性约束:先做战略划分(限界上下文 + 上下文映射),再做战术建模(聚合 / 实体 / 值对象 / 领域服务),最后才落到分包与接口。**不要按数据库表或技术分层切微服务,要按业务能力切。**
15
+
16
+ ## 1. 何时该用 DDD(先判断,别滥用)
17
+
18
+ - **适用**:核心业务有真实复杂度(多状态机、复杂规则、多角色协作、长期演进)的系统。这正是 DDD 回本的地方。
19
+ - **不适用 / 轻量化**:纯增删改查后台、一次性脚本、数据搬运、薄展示层——上 DDD 全套是过度设计,用事务脚本(Transaction Script)/ 表模块即可。
20
+ - **判据**:业务规则是否值得用一套"通用语言"反复讨论?是否会演进 3 年以上?是否多团队协作?三个都"否"就别上重型 DDD,只借用"限界上下文"这一条来切边界。
21
+ - 商业级默认:**核心域用 DDD 战术建模,支撑域/通用域用轻量 CRUD**,不要平均用力。
22
+
23
+ ## 2. 通用语言(Ubiquitous Language)——一切的地基
24
+
25
+ - 业务方、产品、研发、测试**用同一套词**描述同一个概念;这套词必须**直接出现在代码里**(类名、方法名、事件名)。
26
+ - 禁止"翻译层":业务说"履约单",代码却叫 `OrderProcess2` / `data` / `info` —— 概念漂移就是 bug 的温床。
27
+ - 同一个词在不同上下文含义不同是**正常的**("商品"在商品域是 SKU 定义,在订单域是下单快照)——这恰恰是要拆上下文的信号,不要强行做一个"上帝模型"。
28
+ - 落地动作:维护一份**领域术语表(Glossary)**,每个核心概念一句话定义 + 所属上下文;新人 onboarding 和评审都引用它。
29
+
30
+ ## 3. 战略设计:限界上下文(Bounded Context)
31
+
32
+ 限界上下文是 DDD 的**第一性切割**:一个模型在其内部保持一致、边界清晰、有明确的归属团队。
33
+
34
+ - **一个上下文 = 一套内部一致的模型 + 一种语言 + 一个负责团队**。跨上下文不共享领域模型,只交换契约(DTO/事件)。
35
+ - 上下文边界优先按**业务能力**(下单、支付、库存、履约、风控),不按技术(不是"数据库层""缓存层")。
36
+ - 上下文 ≠ 微服务,但**微服务边界必须落在上下文边界上**:一个服务可含多个上下文(模块化单体),但绝不允许一个上下文被两个服务撕开。
37
+ - 子域分类,决定投入:
38
+ - **核心域(Core)**:差异化竞争力所在,投最强的人,做最精的模型。
39
+ - **支撑域(Supporting)**:业务需要但不差异化,够用就行,可外包/低代码。
40
+ - **通用域(Generic)**:行业通用(认证、通知、计费),优先买/用现成方案,别自研。
41
+
42
+ ## 4. 战略设计:上下文映射(Context Mapping)
43
+
44
+ 明确上下文之间的**关系与权力结构**——这是治理跨团队耦合的关键。
45
+
46
+ - **防腐层(Anti-Corruption Layer, ACL)**:下游不让上游/外部的模型污染自己的领域模型,在边界放一层转译。**对接任何外部系统、遗留系统、第三方 API 都必须有 ACL**,否则外部的烂模型会渗透进核心域。
47
+ - **开放主机服务 + 发布语言(OHS/PL)**:被多方依赖的上下文,对外暴露稳定、版本化的契约(如 OpenAPI / 事件 schema),不暴露内部模型。
48
+ - **客户-供应商 / 遵奉者(Conformist)**:上游不为下游改契约时,下游要么做 ACL 适配,要么直接遵奉上游模型(仅当上游模型够好)。
49
+ - **共享内核(Shared Kernel)**:两个上下文共享一小段模型/代码——**慎用**,共享即耦合,必须同一团队或强协作约定,改动需双方同意。
50
+ - 画一张**上下文映射图**作为架构基线产物:节点是上下文,边标注关系类型与依赖方向。评审架构先看这张图。
51
+
52
+ ## 5. 战术设计:聚合 / 实体 / 值对象
53
+
54
+ 在单个上下文内部建模,核心是**聚合(Aggregate)**——一致性与事务的边界。
55
+
56
+ - **实体(Entity)**:有唯一标识、生命周期内可变(用户、订单)。相等性看 ID,不看属性。
57
+ - **值对象(Value Object)**:无标识、不可变、按值相等(金额、地址、时间区间)。**优先用值对象消灭"裸基本类型"**——`Money{amount, currency}` 远好过两个 `BigDecimal`,类型即约束。
58
+ - **聚合(Aggregate)**:一组实体+值对象的一致性边界,有一个**聚合根(Aggregate Root)**作为唯一入口。规则:
59
+ 1. **外部只能引用聚合根**,不能直接持有聚合内部对象的引用。
60
+ 2. **一个事务只修改一个聚合**(跨聚合一致性用领域事件 + 最终一致,见 §6)。
61
+ 3. **聚合要小**:聚合越大,事务冲突和锁争用越严重。能拆就拆,跨聚合用 ID 软引用而非对象引用。
62
+ 4. 不变量(invariant)在聚合根内强制——业务规则的守门人是聚合,不是 Service、更不是数据库触发器。
63
+ - **领域服务(Domain Service)**:不属于任何单一实体的业务逻辑(如"转账"涉及两个账户),无状态,用领域语言命名。
64
+ - **领域逻辑放领域层**:贫血模型(实体只有 getter/setter,逻辑全在 Service)是反模式——业务规则散落、无法复用、难测试。让聚合/实体承载行为。
65
+
66
+ ## 6. 战术设计:领域事件与跨聚合一致性
67
+
68
+ - **领域事件(Domain Event)**:领域里有意义的事实,过去式命名(`OrderPlaced` / `PaymentCaptured`)。它是上下文之间、聚合之间解耦的主要手段。
69
+ - 跨聚合 / 跨上下文**不要用分布式事务(2PC)**,用领域事件驱动最终一致性 + 幂等消费(见 `backend/01-standards/idempotency-and-exactly-once.md`)。
70
+ - 事件发布要可靠:业务写库与事件发布同一事务,用**发件箱(Outbox)模式**,避免"库写了事件没发/事件发了库没写"。
71
+ - 跨多个聚合的业务流程(下单→扣库存→支付→履约)用 **Saga / 流程管理器(Process Manager)**编排,每步可补偿、可重试、可观测。
72
+ - 事件是契约:跨上下文的事件 schema 要版本化、向后兼容,纳入契约测试(见 `testing/01-standards/contract-testing-complete.md`)。
73
+
74
+ ## 7. 从模型到代码:分层与分包
75
+
76
+ - **按上下文分包,再按层分包**(package-by-feature/context 优先于 package-by-layer):`ordering/`、`inventory/` 在最外层,内部再分 `domain` / `application` / `infrastructure`。
77
+ - 依赖方向**永远指向领域**:`infrastructure → application → domain`,领域层零外部依赖(不 import 框架、不 import ORM 注解时优先用纯对象)。这与整洁/六边形架构一致。
78
+ - **应用层(Application/Use Case)**:编排聚合、管事务、发事件,**不含业务规则**(规则在领域层)。一个用例一个方法,输入输出是 DTO。
79
+ - **仓储(Repository)**:每个聚合根一个仓储,接口定义在领域层,实现放基础设施层。仓储按聚合存取,不暴露查询拼装细节。
80
+ - 读写分离:复杂查询/报表不要硬塞进聚合,用单独的查询模型(CQRS 的读侧),直接投影到 DTO,绕过领域模型。
81
+
82
+ ## 8. 反模式(出现即不合格)
83
+
84
+ - **按数据库表 / 技术分层切服务**:出现 `user-service` 只是 `user` 表的 CRUD 包装,没有业务边界。
85
+ - **上帝模型 / 大泥球**:一个 `User` / `Order` 类被所有上下文共享,字段几十上百,谁都不敢改。
86
+ - **贫血领域模型**:实体只有数据没有行为,业务逻辑全堆在 `XxxServiceImpl`。
87
+ - **聚合过大**:一个聚合加载几百个子实体,一次保存锁全表。
88
+ - **跨聚合直接对象引用 + 跨聚合一个大事务**:耦合死、扩展难、锁冲突。
89
+ - **无防腐层直连外部模型**:第三方/遗留系统的字段直接渗透进核心领域对象。
90
+ - **共享内核滥用**:多个团队共享一大坨"common"模型,改一处崩一片。
91
+ - **DDD 仪式化**:纯 CRUD 后台硬套聚合/仓储/事件全套,徒增复杂度而无收益。
92
+ - **代码与通用语言脱节**:业务说一套、代码命名另一套,全靠口头翻译。
93
+
94
+ ## 9. Agent Checklist(建模/架构前必过)
95
+
96
+ - [ ] 是否先判断了"该不该上 DDD"?核心域重点投入、支撑/通用域轻量化?
97
+ - [ ] 是否产出了**上下文映射图**,标注了关系类型与依赖方向?
98
+ - [ ] 服务/模块边界是否落在限界上下文边界上(按业务能力,不按表/技术层)?
99
+ - [ ] 是否维护了**领域术语表**,且代码命名与之一致?
100
+ - [ ] 每个聚合是否足够小、有明确聚合根、外部只引用根、一事务一聚合?
101
+ - [ ] 是否用了值对象消灭裸基本类型,把不变量收进聚合?
102
+ - [ ] 跨聚合/跨上下文是否用领域事件 + 最终一致 + Outbox,而非分布式事务?
103
+ - [ ] 对接外部/遗留系统是否有防腐层(ACL)?
104
+ - [ ] 依赖方向是否指向领域层?领域层是否零框架耦合、承载行为(非贫血)?
105
+ - [ ] 跨上下文契约(API/事件 schema)是否版本化并纳入契约测试?
@@ -10,11 +10,7 @@ difficulty: intermediate
10
10
  quality_score: 70
11
11
  ---
12
12
 
13
- # 开发:Excellent(11964948@qq.com)
14
- # 功能:系统迁移全流程作战手册
15
- # 作用:指导团队完成系统迁移的评估、规划、执行、验证与切换
16
- # 创建时间:2026-03-28
17
- # 最后修改:2026-03-28
13
+ # 系统迁移作战手册
18
14
 
19
15
  ## 目标
20
16
 
@@ -10,11 +10,7 @@ difficulty: intermediate
10
10
  quality_score: 70
11
11
  ---
12
12
 
13
- # 开发:Excellent(11964948@qq.com)
14
- # 功能:系统设计全流程作战手册
15
- # 作用:指导架构师完成从需求分析到详细设计的系统设计全过程
16
- # 创建时间:2026-03-28
17
- # 最后修改:2026-03-28
13
+ # 系统设计作战手册
18
14
 
19
15
  ## 目标
20
16
 
@@ -1,16 +1,14 @@
1
1
  ---
2
2
  id: adr-template-and-examples
3
- title: adr-template-and-examples
3
+ title: ADR 模板与示例规范
4
4
  domain: architecture
5
- category: adr-template-and-examples.md
5
+ category: 01-standards
6
6
  difficulty: intermediate
7
- tags: [adr, and, architecture, examples, template, 模板与示例规范]
7
+ tags: [adr, 架构决策, decision-record, 模板, 技术选型, architecture]
8
8
  quality_score: 70
9
9
  last_updated: 2026-06-15
10
10
  ---
11
- # 开发:Excellent(11964948@qq.com)
12
-
13
- ## ADR 模板与示例规范
11
+ # ADR 模板与示例规范
14
12
 
15
13
  ### 目标
16
14
  - 对关键架构决策形成可追溯记录,降低后续误解与返工。
@@ -2,7 +2,7 @@
2
2
  id: api-gateway-deep-dive
3
3
  title: API网关深度指南
4
4
  domain: architecture
5
- category: api-gateway-deep-dive.md
5
+ category: 01-standards
6
6
  difficulty: intermediate
7
7
  tags: [api, architecture, deep, dive, gateway, 主流api网关对比, 安全防护, 性能优化]
8
8
  quality_score: 70