@tinkcarlos/skillora 0.2.0

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 (234) hide show
  1. package/.claude/skills/.temp-skill-index.md +245 -0
  2. package/.claude/skills/SKILL.md +264 -0
  3. package/.claude/skills/api-scaffolding/SKILL.md +431 -0
  4. package/.claude/skills/api-scaffolding/agents/backend-architect.md +282 -0
  5. package/.claude/skills/api-scaffolding/agents/django-pro.md +144 -0
  6. package/.claude/skills/api-scaffolding/agents/fastapi-pro.md +156 -0
  7. package/.claude/skills/api-scaffolding/agents/graphql-architect.md +146 -0
  8. package/.claude/skills/api-scaffolding/skills/fastapi-templates/SKILL.md +171 -0
  9. package/.claude/skills/api-testing-observability/SKILL.md +583 -0
  10. package/.claude/skills/api-testing-observability/agents/api-documenter.md +146 -0
  11. package/.claude/skills/api-testing-observability/commands/api-mock.md +1320 -0
  12. package/.claude/skills/brainstorming/SKILL.md +283 -0
  13. package/.claude/skills/bug-fixing/SKILL.md +382 -0
  14. package/.claude/skills/bug-fixing/references/backend-guide.md +132 -0
  15. package/.claude/skills/bug-fixing/references/bug-guide.md +354 -0
  16. package/.claude/skills/bug-fixing/references/bug-record-template.md +134 -0
  17. package/.claude/skills/bug-fixing/references/bug-records.md +88 -0
  18. package/.claude/skills/bug-fixing/references/code-review-gate.md +81 -0
  19. package/.claude/skills/bug-fixing/references/common-bugs.md +140 -0
  20. package/.claude/skills/bug-fixing/references/complete-workflow.md +361 -0
  21. package/.claude/skills/bug-fixing/references/config-driven-fixes.md +136 -0
  22. package/.claude/skills/bug-fixing/references/context-isolation-protocol.md +268 -0
  23. package/.claude/skills/bug-fixing/references/cross-surface-regression.md +120 -0
  24. package/.claude/skills/bug-fixing/references/database-investigation.md +129 -0
  25. package/.claude/skills/bug-fixing/references/dependency-and-integrity-protocol.md +369 -0
  26. package/.claude/skills/bug-fixing/references/fix-completeness-checklist.md +239 -0
  27. package/.claude/skills/bug-fixing/references/frontend-guide.md +219 -0
  28. package/.claude/skills/bug-fixing/references/fullstack-joint-guide.md +123 -0
  29. package/.claude/skills/bug-fixing/references/functional-breakage.md +117 -0
  30. package/.claude/skills/bug-fixing/references/ide-lint-errors-guide.md +176 -0
  31. package/.claude/skills/bug-fixing/references/impact-analysis.md +511 -0
  32. package/.claude/skills/bug-fixing/references/investigation-checklist.md +263 -0
  33. package/.claude/skills/bug-fixing/references/knowledge-extraction-guide.md +531 -0
  34. package/.claude/skills/bug-fixing/references/knowledge-workflow.md +212 -0
  35. package/.claude/skills/bug-fixing/references/post-edit-quality-gate.md +30 -0
  36. package/.claude/skills/bug-fixing/references/python-env-and-testing.md +126 -0
  37. package/.claude/skills/bug-fixing/references/rca-guide.md +428 -0
  38. package/.claude/skills/bug-fixing/references/similar-bug-patterns.md +113 -0
  39. package/.claude/skills/bug-fixing/references/skill-delegation-guide.md +350 -0
  40. package/.claude/skills/bug-fixing/references/skill-orchestration.md +155 -0
  41. package/.claude/skills/bug-fixing/references/testing-strategy.md +350 -0
  42. package/.claude/skills/bug-fixing/references/tooling-build-scripts.md +162 -0
  43. package/.claude/skills/bug-fixing/references/user-input-validation.md +77 -0
  44. package/.claude/skills/bug-fixing/references/ux-patterns.md +158 -0
  45. package/.claude/skills/bug-fixing/references/windows-terminal-hygiene.md +106 -0
  46. package/.claude/skills/bug-fixing/references/zero-regression-matrix.md +239 -0
  47. package/.claude/skills/bug-fixing/references/zero-risk-protocol.md +102 -0
  48. package/.claude/skills/bug-fixing/scripts/format_code.py +611 -0
  49. package/.claude/skills/bug-fixing/scripts/generate_report_template.py +74 -0
  50. package/.claude/skills/bug-fixing/scripts/lint_check.py +816 -0
  51. package/.claude/skills/bug-fixing/scripts/requirements.txt +36 -0
  52. package/.claude/skills/cicd-pipeline/SKILL.md +300 -0
  53. package/.claude/skills/code-review/SKILL.md +535 -0
  54. package/.claude/skills/code-review/references/anti-pattern-scan.md +102 -0
  55. package/.claude/skills/code-review/references/automated-analysis.md +456 -0
  56. package/.claude/skills/code-review/references/backend-common-issues.md +589 -0
  57. package/.claude/skills/code-review/references/backend-expert-guide.md +415 -0
  58. package/.claude/skills/code-review/references/backend-review.md +868 -0
  59. package/.claude/skills/code-review/references/batch-processing-strategy.md +198 -0
  60. package/.claude/skills/code-review/references/call-chain-analysis-protocol.md +166 -0
  61. package/.claude/skills/code-review/references/common-patterns.md +321 -0
  62. package/.claude/skills/code-review/references/configuration-review.md +425 -0
  63. package/.claude/skills/code-review/references/control-flow-completeness.md +114 -0
  64. package/.claude/skills/code-review/references/database-review.md +298 -0
  65. package/.claude/skills/code-review/references/dependency-and-integrity-protocol.md +313 -0
  66. package/.claude/skills/code-review/references/external-standards.md +51 -0
  67. package/.claude/skills/code-review/references/feature-review.md +329 -0
  68. package/.claude/skills/code-review/references/file-review-template.md +326 -0
  69. package/.claude/skills/code-review/references/frontend-advanced.md +654 -0
  70. package/.claude/skills/code-review/references/frontend-common-issues.md +482 -0
  71. package/.claude/skills/code-review/references/frontend-expert-guide.md +342 -0
  72. package/.claude/skills/code-review/references/frontend-review.md +783 -0
  73. package/.claude/skills/code-review/references/fullstack-consistency.md +418 -0
  74. package/.claude/skills/code-review/references/fullstack-review.md +477 -0
  75. package/.claude/skills/code-review/references/functional-completeness.md +386 -0
  76. package/.claude/skills/code-review/references/hidden-bugs-detection.md +473 -0
  77. package/.claude/skills/code-review/references/ide-lint-errors-guide.md +173 -0
  78. package/.claude/skills/code-review/references/infrastructure-review.md +453 -0
  79. package/.claude/skills/code-review/references/iteration-review.md +264 -0
  80. package/.claude/skills/code-review/references/job-review.md +335 -0
  81. package/.claude/skills/code-review/references/layered-checklist-protocol.md +157 -0
  82. package/.claude/skills/code-review/references/logic-completeness.md +535 -0
  83. package/.claude/skills/code-review/references/mandatory-checklist.md +288 -0
  84. package/.claude/skills/code-review/references/multi-language-guide.md +800 -0
  85. package/.claude/skills/code-review/references/new-project-review.md +226 -0
  86. package/.claude/skills/code-review/references/non-code-files-review.md +451 -0
  87. package/.claude/skills/code-review/references/overlooked-issues.md +657 -0
  88. package/.claude/skills/code-review/references/platform-specific-review.md +195 -0
  89. package/.claude/skills/code-review/references/precision-analysis-protocol.md +260 -0
  90. package/.claude/skills/code-review/references/python-patterns.md +494 -0
  91. package/.claude/skills/code-review/references/rca-techniques.md +362 -0
  92. package/.claude/skills/code-review/references/report-template.md +430 -0
  93. package/.claude/skills/code-review/references/resource-limits-and-degradation.md +137 -0
  94. package/.claude/skills/code-review/references/review-dimensions.md +311 -0
  95. package/.claude/skills/code-review/references/review-guide.md +202 -0
  96. package/.claude/skills/code-review/references/review-knowledge-workflow.md +257 -0
  97. package/.claude/skills/code-review/references/review-progress-tracker-protocol.md +172 -0
  98. package/.claude/skills/code-review/references/review-record-template.md +195 -0
  99. package/.claude/skills/code-review/references/skill-orchestration.md +143 -0
  100. package/.claude/skills/code-review/references/ui-ux-review.md +470 -0
  101. package/.claude/skills/containerization/SKILL.md +313 -0
  102. package/.claude/skills/database-migrations/agents/database-admin.md +142 -0
  103. package/.claude/skills/database-migrations/agents/database-optimizer.md +144 -0
  104. package/.claude/skills/database-migrations/commands/migration-observability.md +408 -0
  105. package/.claude/skills/database-migrations/commands/sql-migrations.md +492 -0
  106. package/.claude/skills/finishing-a-development-branch/SKILL.md +319 -0
  107. package/.claude/skills/frontend-design/LICENSE.txt +177 -0
  108. package/.claude/skills/frontend-design/SKILL.md +587 -0
  109. package/.claude/skills/frontend-design/references/color-consistency.md +487 -0
  110. package/.claude/skills/frontend-design/references/color-palettes-full.md +657 -0
  111. package/.claude/skills/frontend-design/references/design-system-generator.md +285 -0
  112. package/.claude/skills/frontend-design/references/font-pairings-full.md +705 -0
  113. package/.claude/skills/frontend-design/references/industry-anti-patterns.md +281 -0
  114. package/.claude/skills/frontend-design/references/layout-anti-patterns.md +582 -0
  115. package/.claude/skills/frontend-design/references/motion-patterns.md +659 -0
  116. package/.claude/skills/frontend-design/references/pre-delivery-checklist.md +153 -0
  117. package/.claude/skills/frontend-design/references/responsive-design.md +555 -0
  118. package/.claude/skills/frontend-design/references/style-modification-rules.md +335 -0
  119. package/.claude/skills/frontend-design/references/ui-styles-full.md +383 -0
  120. package/.claude/skills/frontend-design/references/ui-styles-rating.md +191 -0
  121. package/.claude/skills/frontend-design/references/ux-guidelines.md +640 -0
  122. package/.claude/skills/fullstack-developer/SKILL.md +512 -0
  123. package/.claude/skills/fullstack-developer/references/api-contract-guide.md +312 -0
  124. package/.claude/skills/fullstack-developer/references/api-response-patterns.md +223 -0
  125. package/.claude/skills/fullstack-developer/references/async-patterns.md +220 -0
  126. package/.claude/skills/fullstack-developer/references/bug-prevention.md +914 -0
  127. package/.claude/skills/fullstack-developer/references/code-quality-checklist.md +271 -0
  128. package/.claude/skills/fullstack-developer/references/complete-development-workflow.md +278 -0
  129. package/.claude/skills/fullstack-developer/references/context-isolation-protocol.md +256 -0
  130. package/.claude/skills/fullstack-developer/references/database-migration.md +331 -0
  131. package/.claude/skills/fullstack-developer/references/dependency-and-integrity-protocol.md +390 -0
  132. package/.claude/skills/fullstack-developer/references/development-phases.md +333 -0
  133. package/.claude/skills/fullstack-developer/references/expert-guide.md +214 -0
  134. package/.claude/skills/fullstack-developer/references/file-import-patterns.md +114 -0
  135. package/.claude/skills/fullstack-developer/references/graceful-degradation-patterns.md +78 -0
  136. package/.claude/skills/fullstack-developer/references/ide-lint-errors-guide.md +183 -0
  137. package/.claude/skills/fullstack-developer/references/integration-testing.md +301 -0
  138. package/.claude/skills/fullstack-developer/references/mock-api-patterns.md +307 -0
  139. package/.claude/skills/fullstack-developer/references/phase-gate-template.md +249 -0
  140. package/.claude/skills/fullstack-developer/references/post-edit-quality-gate.md +30 -0
  141. package/.claude/skills/fullstack-developer/references/python-engineering.md +79 -0
  142. package/.claude/skills/fullstack-developer/references/skill-orchestration.md +214 -0
  143. package/.claude/skills/fullstack-developer/references/skill-router-table.md +304 -0
  144. package/.claude/skills/fullstack-developer/references/state-sync.md +217 -0
  145. package/.claude/skills/fullstack-developer/references/ui-testing-checklist.md +292 -0
  146. package/.claude/skills/fullstack-developer/scripts/format_code.py +611 -0
  147. package/.claude/skills/fullstack-developer/scripts/lint_check.py +816 -0
  148. package/.claude/skills/fullstack-developer/scripts/requirements.txt +36 -0
  149. package/.claude/skills/performance-optimization/SKILL.md +250 -0
  150. package/.claude/skills/product-requirements/SKILL.md +357 -0
  151. package/.claude/skills/product-requirements/references/acceptance-criteria.md +335 -0
  152. package/.claude/skills/product-requirements/references/answer-first-questioning-protocol.md +299 -0
  153. package/.claude/skills/product-requirements/references/competitive-analysis-guide.md +183 -0
  154. package/.claude/skills/product-requirements/references/document-accuracy-protocol.md +253 -0
  155. package/.claude/skills/product-requirements/references/document-management-protocol.md +278 -0
  156. package/.claude/skills/product-requirements/references/external-standards.md +62 -0
  157. package/.claude/skills/product-requirements/references/feature-spec-template.md +359 -0
  158. package/.claude/skills/product-requirements/references/knowledge-acquisition-protocol.md +251 -0
  159. package/.claude/skills/product-requirements/references/plan-execution-protocol.md +334 -0
  160. package/.claude/skills/product-requirements/references/plan-generation-protocol.md +264 -0
  161. package/.claude/skills/product-requirements/references/prioritization-frameworks.md +80 -0
  162. package/.claude/skills/product-requirements/references/requirement-decomposition-protocol.md +291 -0
  163. package/.claude/skills/product-requirements/references/user-story-examples.md +297 -0
  164. package/.claude/skills/product-requirements/references/workflow-templates.md +266 -0
  165. package/.claude/skills/react-best-practices/SKILL.md +198 -0
  166. package/.claude/skills/react-best-practices/references/advanced-patterns.md +94 -0
  167. package/.claude/skills/react-best-practices/references/bundle-optimization.md +182 -0
  168. package/.claude/skills/react-best-practices/references/client-data-fetching.md +112 -0
  169. package/.claude/skills/react-best-practices/references/complete-guide.md +2249 -0
  170. package/.claude/skills/react-best-practices/references/eliminating-waterfalls.md +169 -0
  171. package/.claude/skills/react-best-practices/references/javascript-performance.md +256 -0
  172. package/.claude/skills/react-best-practices/references/rendering-performance.md +230 -0
  173. package/.claude/skills/react-best-practices/references/rerender-optimization.md +214 -0
  174. package/.claude/skills/react-best-practices/references/server-performance.md +182 -0
  175. package/.claude/skills/security-audit/SKILL.md +226 -0
  176. package/.claude/skills/shared-references/advanced-debugging-techniques.md +186 -0
  177. package/.claude/skills/shared-references/code-quality-checklist.md +218 -0
  178. package/.claude/skills/shared-references/code-review-efficiency-guide.md +125 -0
  179. package/.claude/skills/shared-references/mcp-dependency-compatibility-protocol.md +276 -0
  180. package/.claude/skills/shared-references/skill-call-graph.md +230 -0
  181. package/.claude/skills/shared-references/skill-orchestration-protocol.md +281 -0
  182. package/.claude/skills/shared-references/subagent-dispatch-templates.md +199 -0
  183. package/.claude/skills/skill-expert-skills/LICENSE.txt +204 -0
  184. package/.claude/skills/skill-expert-skills/QUICK_NAVIGATION.md +374 -0
  185. package/.claude/skills/skill-expert-skills/SKILL.md +247 -0
  186. package/.claude/skills/skill-expert-skills/docs/_index.md +91 -0
  187. package/.claude/skills/skill-expert-skills/references/deep-research-methodology.md +389 -0
  188. package/.claude/skills/skill-expert-skills/references/docs-generation-workflow.md +398 -0
  189. package/.claude/skills/skill-expert-skills/references/domain-expertise-protocol.md +343 -0
  190. package/.claude/skills/skill-expert-skills/references/domain-knowledge/_index.md +54 -0
  191. package/.claude/skills/skill-expert-skills/references/domain-knowledge/backend-expertise.md +517 -0
  192. package/.claude/skills/skill-expert-skills/references/domain-knowledge/bug-fixing-expertise.md +363 -0
  193. package/.claude/skills/skill-expert-skills/references/domain-knowledge/code-review-expertise.md +392 -0
  194. package/.claude/skills/skill-expert-skills/references/domain-knowledge/frontend-expertise.md +410 -0
  195. package/.claude/skills/skill-expert-skills/references/domain-knowledge-template.md +503 -0
  196. package/.claude/skills/skill-expert-skills/references/examples.md +782 -0
  197. package/.claude/skills/skill-expert-skills/references/integration-examples.md +655 -0
  198. package/.claude/skills/skill-expert-skills/references/knowledge-validation-checklist.md +246 -0
  199. package/.claude/skills/skill-expert-skills/references/latest-knowledge-acquisition.md +461 -0
  200. package/.claude/skills/skill-expert-skills/references/mcp-tools-guide.md +439 -0
  201. package/.claude/skills/skill-expert-skills/references/official-best-practices.md +616 -0
  202. package/.claude/skills/skill-expert-skills/references/patterns.md +218 -0
  203. package/.claude/skills/skill-expert-skills/references/plugin-skills-guide.md +432 -0
  204. package/.claude/skills/skill-expert-skills/references/requirement-elicitation-protocol.md +290 -0
  205. package/.claude/skills/skill-expert-skills/references/skill-creator-SKILL.md +353 -0
  206. package/.claude/skills/skill-expert-skills/references/skill-templates.md +583 -0
  207. package/.claude/skills/skill-expert-skills/references/skills-knowledge-base.md +561 -0
  208. package/.claude/skills/skill-expert-skills/references/tools-guide.md +379 -0
  209. package/.claude/skills/skill-expert-skills/references/troubleshooting.md +378 -0
  210. package/.claude/skills/skill-expert-skills/references/universality-guide.md +205 -0
  211. package/.claude/skills/skill-expert-skills/references/writing-style-guide.md +466 -0
  212. package/.claude/skills/skill-expert-skills/scripts/__pycache__/quick_validate.cpython-313.pyc +0 -0
  213. package/.claude/skills/skill-expert-skills/scripts/__pycache__/universal_validate.cpython-313.pyc +0 -0
  214. package/.claude/skills/skill-expert-skills/scripts/analyze_trigger.py +425 -0
  215. package/.claude/skills/skill-expert-skills/scripts/diff_with_official.py +188 -0
  216. package/.claude/skills/skill-expert-skills/scripts/init_skill.py +349 -0
  217. package/.claude/skills/skill-expert-skills/scripts/package_skill.py +156 -0
  218. package/.claude/skills/skill-expert-skills/scripts/quick_validate.py +493 -0
  219. package/.claude/skills/skill-expert-skills/scripts/requirements.txt +2 -0
  220. package/.claude/skills/skill-expert-skills/scripts/universal_validate.py +182 -0
  221. package/.claude/skills/skill-expert-skills/scripts/upgrade_skill.py +431 -0
  222. package/.claude/skills/subagent-driven-development/SKILL.md +268 -0
  223. package/.claude/skills/test-driven-development/SKILL.md +246 -0
  224. package/.claude/skills/test-driven-development/references/testing-anti-patterns.md +192 -0
  225. package/.claude/skills/using-git-worktrees/SKILL.md +266 -0
  226. package/.claude/skills/using-skillstack/SKILL.md +127 -0
  227. package/.claude/skills/vercel-deploy/SKILL.md +166 -0
  228. package/.claude/skills/vercel-deploy/scripts/deploy.sh +249 -0
  229. package/.claude/skills/verification-before-completion/SKILL.md +305 -0
  230. package/.claude/skills/writing-plans/SKILL.md +259 -0
  231. package/README.md +69 -0
  232. package/bin/cli.js +468 -0
  233. package/lib/init.js +333 -0
  234. package/package.json +29 -0
@@ -0,0 +1,517 @@
1
+ # Backend 领域专业知识库
2
+
3
+ > 创建日期: 2025-01-17
4
+ > 知识来源: 深度研究 + 行业最佳实践
5
+ > 适用场景: 优化/创建后端开发相关 Skills
6
+
7
+ ---
8
+
9
+ ## 目录
10
+
11
+ 1. [核心概念](#1-核心概念)
12
+ 2. [架构模式](#2-架构模式)
13
+ 3. [API 设计](#3-api-设计)
14
+ 4. [数据库设计](#4-数据库设计)
15
+ 5. [安全实践](#5-安全实践)
16
+ 6. [性能优化](#6-性能优化)
17
+ 7. [错误处理](#7-错误处理)
18
+ 8. [测试策略](#8-测试策略)
19
+ 9. [常见陷阱](#9-常见陷阱)
20
+ 10. [部署与运维](#10-部署与运维)
21
+
22
+ ---
23
+
24
+ ## 1. 核心概念
25
+
26
+ ### 1.1 后端三要素
27
+
28
+ 来源: [Backend Development Guide](https://github.com/goldbergyoni/backend-best-practices)
29
+
30
+ **后端 = 数据处理 + 业务逻辑 + 接口服务**
31
+
32
+ | 要素 | 职责 | 关键技术 |
33
+ |------|------|----------|
34
+ | **数据处理** | 数据存储、检索、转换 | 数据库、缓存、消息队列 |
35
+ | **业务逻辑** | 业务规则、流程控制 | 领域驱动设计、设计模式 |
36
+ | **接口服务** | 对外提供服务 | REST/GraphQL/gRPC |
37
+
38
+ ### 1.2 后端关注点
39
+
40
+ ```
41
+ ┌─────────────────────────────────────────┐
42
+ │ 后端开发核心关注点 │
43
+ ├─────────────────────────────────────────┤
44
+ │ 1. 正确性 → 数据一致性、事务 │
45
+ │ 2. 性能 → 响应时间、吞吐量 │
46
+ │ 3. 可靠性 → 容错、降级、恢复 │
47
+ │ 4. 安全性 → 认证、授权、数据保护 │
48
+ │ 5. 可维护性 → 代码结构、文档 │
49
+ └─────────────────────────────────────────┘
50
+ ```
51
+
52
+ ---
53
+
54
+ ## 2. 架构模式
55
+
56
+ ### 2.1 分层架构
57
+
58
+ 来源: [Clean Architecture](https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html)
59
+
60
+ ```
61
+ ┌─────────────────────────────────────────┐
62
+ │ 标准分层架构 │
63
+ ├─────────────────────────────────────────┤
64
+ │ ┌───────────┐ │
65
+ │ │ Web Layer │ → 控制器、路由 │
66
+ │ └───────────┘ │
67
+ │ ↓ │
68
+ │ ┌───────────┐ │
69
+ │ │Business │ → 用例、服务 │
70
+ │ │ Layer │ │
71
+ │ └───────────┘ │
72
+ │ ↓ │
73
+ │ ┌───────────┐ │
74
+ │ │ Data │ → 数据访问对象 │
75
+ │ │ Layer │ │
76
+ │ └───────────┘ │
77
+ └─────────────────────────────────────────┘
78
+ ```
79
+
80
+ ### 2.2 设计原则
81
+
82
+ | 原则 | 说明 | 示例 |
83
+ |------|------|------|
84
+ | **SOLID** | 面向对象设计原则 | 单一职责、开闭原则 |
85
+ | **DRY** | Don't Repeat Yourself | 提取公共代码 |
86
+ | **KISS** | Keep It Simple, Stupid | 避免过度设计 |
87
+ | **YAGNI** | You Aren't Gonna Need It | 不实现不需要的功能 |
88
+
89
+ ### 2.3 领域驱动设计 (DDD)
90
+
91
+ 来源: [Domain-Driven Design](https://martinfowler.com/tags/domain%20driven%20design.html)
92
+
93
+ **核心概念**:
94
+ - **领域**:问题空间的抽象
95
+ - **限界上下文**:特定领域的边界
96
+ - **聚合**:一组领域对象的集合
97
+ - **值对象**:不可变的领域对象
98
+ - **实体**:有唯一标识的领域对象
99
+
100
+ ```python
101
+ # 领域模型示例
102
+ class Order:
103
+ """订单聚合根"""
104
+ def __init__(self, order_id: str):
105
+ self.order_id = order_id
106
+ self.items: List[OrderItem] = []
107
+ self.status = OrderStatus.PENDING
108
+
109
+ def add_item(self, item: OrderItem):
110
+ """业务规则:只有待支付订单可以添加商品"""
111
+ if self.status != OrderStatus.PENDING:
112
+ raise InvalidOrderStatusError("Cannot add item to non-pending order")
113
+ self.items.append(item)
114
+ ```
115
+
116
+ ---
117
+
118
+ ## 3. API 设计
119
+
120
+ ### 3.1 RESTful API
121
+
122
+ 来源: [REST API Design](https://restfulapi.net/)
123
+
124
+ | HTTP 方法 | 用途 | 幂等性 |
125
+ |-----------|------|---------|
126
+ | GET | 查询资源 | ✅ |
127
+ | POST | 创建资源 | ❌ |
128
+ | PUT | 完整更新 | ✅ |
129
+ | PATCH | 部分更新 | ❌ |
130
+ | DELETE | 删除资源 | ✅ |
131
+
132
+ ### 3.2 API 版本管理
133
+
134
+ | 方案 | 特点 | 示例 |
135
+ |------|------|------|
136
+ | **URL 版本** | 清晰、易测试 | `/api/v1/users` |
137
+ | **Header 版本** | URL 简洁 | `API-Version: v1` |
138
+ | **内容协商** | 标准化 | `Accept: application/vnd.api.v1+json` |
139
+
140
+ ### 3.3 响应格式
141
+
142
+ ```json
143
+ // 标准响应格式
144
+ {
145
+ "data": { ... }, // 成功响应
146
+ "meta": { // 元数据
147
+ "page": 1,
148
+ "per_page": 20,
149
+ "total": 100
150
+ },
151
+ "errors": [ ... ] // 错误详情(失败时)
152
+ }
153
+ ```
154
+
155
+ ---
156
+
157
+ ## 4. 数据库设计
158
+
159
+ ### 4.1 数据库选择
160
+
161
+ | 类型 | 适用场景 | 代表 |
162
+ |------|----------|------|
163
+ | **关系型** | 事务、复杂查询 | PostgreSQL, MySQL |
164
+ | **文档型** | 灵活 Schema | MongoDB |
165
+ | **键值** | 高性能读写 | Redis |
166
+ | **列式** | 分析型查询 | ClickHouse |
167
+ | **图数据库** | 关系型数据 | Neo4j |
168
+
169
+ ### 4.2 数据库范式
170
+
171
+ | 范式 | 特点 | 建议状态 |
172
+ |------|------|----------|
173
+ | **1NF** | 每个字段原子性 | ✅ 必须达到 |
174
+ | **2NF** | 消除部分依赖 | ✅ 必须达到 |
175
+ | **3NF** | 消除传递依赖 | ✅ 推荐达到 |
176
+ | **BCNF** | 更严格的 3NF | ⚠️ 可选 |
177
+
178
+ ### 4.3 索引优化
179
+
180
+ ```sql
181
+ -- 单列索引
182
+ CREATE INDEX idx_user_email ON users(email);
183
+
184
+ -- 复合索引
185
+ CREATE INDEX idx_order_status_date ON orders(status, created_at);
186
+
187
+ -- 覆盖索引(包含查询所有字段)
188
+ CREATE INDEX idx_user_covering ON users(id, name, email);
189
+ ```
190
+
191
+ **索引原则**:
192
+ - 为 WHERE、JOIN、ORDER BY 字段创建索引
193
+ - 避免过度索引(影响写入性能)
194
+ - 定期分析和优化索引
195
+
196
+ ---
197
+
198
+ ## 5. 安全实践
199
+
200
+ ### 5.1 认证与授权
201
+
202
+ 来源: [OWASP Security](https://owasp.org/)
203
+
204
+ | 机制 | 用途 | 推荐方案 |
205
+ |------|------|----------|
206
+ | **认证** | 验证用户身份 | JWT, OAuth 2.0 |
207
+ | **授权** | 验证权限 | RBAC, ABAC |
208
+ | **API 密钥** | 服务间认证 | API Gateway + Rate Limiting |
209
+
210
+ ### 5.2 常见安全漏洞
211
+
212
+ | 漏洞 | 表现 | 防护 |
213
+ |------|------|------|
214
+ | **SQL 注入** | 恶意 SQL | 参数化查询 |
215
+ | **XSS** | 注入脚本 | 输出编码、CSP |
216
+ | **CSRF** | 跨站请求伪造 | CSRF Token |
217
+ | **IDOR** | 不安全的直接对象引用 | 权限验证 |
218
+
219
+ ```python
220
+ # ❌ 错误:SQL 注入风险
221
+ query = f"SELECT * FROM users WHERE id = {user_id}"
222
+ result = db.execute(query)
223
+
224
+ # ✅ 正确:参数化查询
225
+ query = "SELECT * FROM users WHERE id = %s"
226
+ result = db.execute(query, (user_id,))
227
+ ```
228
+
229
+ ### 5.3 敏感数据保护
230
+
231
+ | 数据类型 | 保护措施 |
232
+ |----------|----------|
233
+ | 密码 | bcrypt/argon2 加密 |
234
+ | 信用卡号 | 分段存储、不记录完整号 |
235
+ | 个人信息 | 加密存储、访问审计 |
236
+ | API 密钥 | 环境变量、密钥管理服务 |
237
+
238
+ ---
239
+
240
+ ## 6. 性能优化
241
+
242
+ ### 6.1 缓存策略
243
+
244
+ | 缓存层 | 用途 | 工具 |
245
+ |--------|------|------|
246
+ | **应用缓存** | 数据对象 | In-memory (Redis) |
247
+ | **数据库缓存** | 查询结果 | Redis, Memcached |
248
+ | **CDN 缓存** | 静态资源 | Cloudflare, CloudFront |
249
+ | **HTTP 缓存** | API 响应 | Cache-Control, ETag |
250
+
251
+ ```python
252
+ # Redis 缓存示例
253
+ def get_user(user_id: str) -> User:
254
+ cache_key = f"user:{user_id}"
255
+ cached = redis.get(cache_key)
256
+
257
+ if cached:
258
+ return json.loads(cached)
259
+
260
+ user = db.query(User).filter_by(id=user_id).first()
261
+ redis.setex(cache_key, 3600, json.dumps(user)) # 缓存 1 小时
262
+ return user
263
+ ```
264
+
265
+ ### 6.2 数据库优化
266
+
267
+ | 优化项 | 技术 | 效果 |
268
+ |--------|------|------|
269
+ | **查询优化** | 避免 SELECT *,使用索引 | 减少数据传输 |
270
+ | **连接池** | 复用数据库连接 | 减少连接开销 |
271
+ | **读写分离** | 主从复制 | 提高读性能 |
272
+ | **分库分表** | 按业务/数据分片 | 水平扩展 |
273
+
274
+ ### 6.3 异步处理
275
+
276
+ 来源: [Async Patterns](https://docs.celeryproject.org/)
277
+
278
+ **适用场景**:
279
+ - 耗时操作(邮件发送、文件处理)
280
+ - 外部 API 调用
281
+ - 定时任务
282
+
283
+ ```python
284
+ # Celery 异步任务示例
285
+ from celery import Celery
286
+
287
+ app = Celery('tasks', broker='redis://localhost:6379')
288
+
289
+ @app.task
290
+ def send_welcome_email(user_id: str):
291
+ """异步发送欢迎邮件"""
292
+ user = get_user(user_id)
293
+ send_email(user.email, "Welcome!")
294
+ ```
295
+
296
+ ---
297
+
298
+ ## 7. 错误处理
299
+
300
+ ### 7.1 错误分类
301
+
302
+ | 错误类型 | HTTP 状态码 | 示例 |
303
+ |----------|------------|------|
304
+ | **客户端错误 (4xx)** | 400-499 | 400 Bad Request, 401 Unauthorized, 404 Not Found |
305
+ | **服务端错误 (5xx)** | 500-599 | 500 Internal Server Error, 503 Service Unavailable |
306
+
307
+ ### 7.2 错误响应格式
308
+
309
+ ```json
310
+ {
311
+ "error": {
312
+ "code": "VALIDATION_ERROR",
313
+ "message": "Invalid email format",
314
+ "details": {
315
+ "field": "email",
316
+ "value": "invalid-email"
317
+ },
318
+ "request_id": "req_12345"
319
+ }
320
+ }
321
+ ```
322
+
323
+ ### 7.3 错误处理最佳实践
324
+
325
+ ```python
326
+ # 全局异常处理示例
327
+ @app.errorhandler(Exception)
328
+ def handle_exception(e):
329
+ """统一异常处理"""
330
+ if isinstance(e, ValidationError):
331
+ return {"error": {"code": "VALIDATION_ERROR", "message": str(e)}}, 400
332
+ elif isinstance(e, NotFoundError):
333
+ return {"error": {"code": "NOT_FOUND", "message": str(e)}}, 404
334
+ else:
335
+ # 记录未预期错误
336
+ logger.exception(f"Unexpected error: {e}")
337
+ return {"error": {"code": "INTERNAL_ERROR", "message": "Internal server error"}}, 500
338
+ ```
339
+
340
+ ---
341
+
342
+ ## 8. 测试策略
343
+
344
+ ### 8.1 测试金字塔
345
+
346
+ ```
347
+ ┌─────────────────────────────────────────┐
348
+ │ 测试金字塔 │
349
+ ├─────────────────────────────────────────┤
350
+ │ E2E (10%) │
351
+ │ ┌───────────┐ │
352
+ │ │ 用户流程 │ │
353
+ │ └───────────┘ │
354
+ │ ↓ │
355
+ │ 集成测试 (20%) │
356
+ │ ┌───────────┐ │
357
+ │ │ API 测试 │ │
358
+ │ └───────────┘ │
359
+ │ ↓ │
360
+ │ 单元测试 (70%) │
361
+ │ ┌───────────┐ │
362
+ │ │ 函数/类测试 │ │
363
+ │ └───────────┘ │
364
+ └─────────────────────────────────────────┘
365
+ ```
366
+
367
+ ### 8.2 测试工具
368
+
369
+ | 语言 | 单元测试 | 集成测试 | E2E 测试 |
370
+ |------|----------|----------|----------|
371
+ | **Python** | pytest | pytest + factory_boy | Cypress, Playwright |
372
+ | **JavaScript** | Jest, Vitest | Supertest | Cypress, Playwright |
373
+ | **Go** | testing | httptest | Testify |
374
+ | **Java** | JUnit | TestNG | Selenium, Playwright |
375
+
376
+ ### 8.3 测试覆盖率
377
+
378
+ | 覆盖率类型 | 目标 | 工具 |
379
+ |------------|------|------|
380
+ | **行覆盖率** | > 80% | coverage.py, istanbul |
381
+ | **分支覆盖率** | > 70% | coverage.py, istanbul |
382
+ | **函数覆盖率** | > 90% | coverage.py, istanbul |
383
+
384
+ ---
385
+
386
+ ## 9. 常见陷阱
387
+
388
+ ### 9.1 性能陷阱
389
+
390
+ | 陷阱 | 表现 | 解决 |
391
+ |------|------|------|
392
+ | **N+1 查询** | 循环中查询数据库 | 使用批量查询或 JOIN |
393
+ | **内存泄漏** | 请求后内存不释放 | 清理连接、事件监听器 |
394
+ | **过度序列化** | 序列化不必要的数据 | 只序列化需要字段 |
395
+ | **同步阻塞** | 同步操作阻塞线程 | 使用异步 IO |
396
+
397
+ ### 9.2 并发陷阱
398
+
399
+ ```python
400
+ # ❌ 错误:竞态条件
401
+ def transfer_money(from_user: User, to_user: User, amount: float):
402
+ from_user.balance -= amount
403
+ to_user.balance += amount
404
+ db.commit() # 可能导致余额为负
405
+
406
+ # ✅ 正确:使用数据库锁
407
+ def transfer_money(from_user: User, to_user: User, amount: float):
408
+ with db.transaction():
409
+ # 重新查询最新余额
410
+ from_user = db.query(User).with_for_update().filter_by(id=from_user.id).first()
411
+ if from_user.balance < amount:
412
+ raise InsufficientBalanceError()
413
+
414
+ from_user.balance -= amount
415
+ to_user.balance += amount
416
+ ```
417
+
418
+ ### 9.3 数据一致性陷阱
419
+
420
+ | 陷阱 | 表现 | 解决 |
421
+ |------|------|------|
422
+ | **脏读** | 读到未提交数据 | 使用事务隔离级别 |
423
+ | **不可重复读** | 同一事务多次读取结果不同 | MVCC |
424
+ | **幻读** | 查询到新插入数据 | 锁定查询范围 |
425
+
426
+ ---
427
+
428
+ ## 10. 部署与运维
429
+
430
+ ### 10.1 容器化
431
+
432
+ **Docker 最佳实践**:
433
+
434
+ ```dockerfile
435
+ # 多阶段构建
436
+ FROM node:18-alpine AS builder
437
+ WORKDIR /app
438
+ COPY package*.json ./
439
+ RUN npm ci
440
+ COPY . .
441
+ RUN npm run build
442
+
443
+ # 生产镜像
444
+ FROM node:18-alpine
445
+ WORKDIR /app
446
+ COPY --from=builder /app/dist ./dist
447
+ COPY --from=builder /app/node_modules ./node_modules
448
+
449
+ # 非特权用户
450
+ USER node
451
+
452
+ # 健康检查
453
+ HEALTHCHECK --interval=30s --timeout=3s \
454
+ CMD node healthcheck.js || exit 1
455
+
456
+ EXPOSE 3000
457
+ CMD ["node", "server.js"]
458
+ ```
459
+
460
+ ### 10.2 CI/CD 流程
461
+
462
+ ```yaml
463
+ # GitHub Actions 示例
464
+ name: CI/CD Pipeline
465
+
466
+ on:
467
+ push:
468
+ branches: [main]
469
+ pull_request:
470
+ branches: [main]
471
+
472
+ jobs:
473
+ test:
474
+ runs-on: ubuntu-latest
475
+ steps:
476
+ - uses: actions/checkout@v3
477
+ - name: Run tests
478
+ run: |
479
+ pip install -r requirements.txt
480
+ pytest tests/ --cov=src --cov-report=xml
481
+
482
+ - name: Upload coverage
483
+ uses: codecov/codecov-action@v3
484
+
485
+ deploy:
486
+ needs: test
487
+ if: github.ref == 'refs/heads/main'
488
+ runs-on: ubuntu-latest
489
+ steps:
490
+ - uses: actions/checkout@v3
491
+ - name: Deploy to production
492
+ run: |
493
+ # 部署脚本
494
+ kubectl apply -f k8s/
495
+ ```
496
+
497
+ ### 10.3 监控与日志
498
+
499
+ | 类型 | 工具 | 用途 |
500
+ |------|------|------|
501
+ | **APM** | New Relic, Datadog | 应用性能监控 |
502
+ | **日志** | ELK Stack, Loki | 日志聚合与分析 |
503
+ | **指标** | Prometheus, Grafana | 系统指标监控 |
504
+ | **追踪** | Jaeger, Zipkin | 分布式追踪 |
505
+
506
+ ---
507
+
508
+ ## 参考资料
509
+
510
+ - [Clean Architecture](https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html) - 清洁架构
511
+ - [Domain-Driven Design](https://martinfowler.com/tags/domain%20driven%20design.html) - 领域驱动设计
512
+ - [REST API Design](https://restfulapi.net/) - RESTful API 设计指南
513
+ - [OWASP Top 10](https://owasp.org/www-project-top-ten/) - OWASP 安全漏洞
514
+ - [12 Factor App](https://12factor.net/) - 云原生应用原则
515
+ - [Backend Best Practices](https://github.com/goldbergyoni/backend-best-practices) - 后端最佳实践
516
+ - [Database Performance](https://use-the-index-luke.com/) - 数据库性能优化
517
+ - [Python Testing](https://docs.pytest.org/) - Python 测试框架