@umacloud/knowledge 1.0.1

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 (418) hide show
  1. package/00-governance/governance-capabilities.md +557 -0
  2. package/00-governance/knowledge-map.md +39 -0
  3. package/00-governance/maintenance-policy.md +76 -0
  4. package/00-governance/review-checklist.md +81 -0
  5. package/README.md +13 -0
  6. package/ai/01-standards/agent-development-complete.md +691 -0
  7. package/ai/01-standards/llm-application-complete.md +488 -0
  8. package/ai/01-standards/mlops-complete.md +798 -0
  9. package/ai/01-standards/prompt-engineering-complete.md +646 -0
  10. package/ai/01-standards/rag-architecture-complete.md +649 -0
  11. package/ai/02-playbooks/llm-evaluation-playbook.md +847 -0
  12. package/ai/03-checklists/ai-project-checklist.md +215 -0
  13. package/ai/04-antipatterns/ai-antipatterns.md +661 -0
  14. package/ai/05-cases/case-rag-production.md +147 -0
  15. package/ai/06-glossary/ai-glossary.md +162 -0
  16. package/ai/agent-evaluation-benchmark.md +53 -0
  17. package/ai/ai-agent-memory-context-management.md +41 -0
  18. package/ai/ai-cost-capacity-optimization-playbook.md +42 -0
  19. package/ai/ai-data-security-and-compliance-playbook.md +37 -0
  20. package/ai/ai-domain-index-and-checklist.md +40 -0
  21. package/ai/ai-governance-maturity-model.md +50 -0
  22. package/ai/ai-model-selection-and-routing-strategy.md +47 -0
  23. package/ai/ai-observability-and-oncall-runbook.md +52 -0
  24. package/ai/ai-rag-engineering-playbook.md +42 -0
  25. package/ai/ai-red-team-and-safety-evaluation.md +42 -0
  26. package/ai/ai-release-readiness-and-rollback-gate.md +42 -0
  27. package/ai/llm-agent-engineering-deep-dive.md +57 -0
  28. package/ai/prompt-and-tool-guardrails.md +52 -0
  29. package/api/01-standards/enterprise-api-standards.md +198 -0
  30. package/api/01-standards/rest-api-design-guide.md +63 -0
  31. package/api/02-playbooks/api-pagination-playbook.md +93 -0
  32. package/api/02-playbooks/graphql-production-playbook.md +176 -0
  33. package/api/03-checklists/api-review-checklist.md +55 -0
  34. package/api/04-antipatterns/api-antipatterns.md +112 -0
  35. package/architecture/01-standards/api-gateway-patterns.md +496 -0
  36. package/architecture/01-standards/cloud-native-patterns.md +644 -0
  37. package/architecture/01-standards/distributed-systems-patterns.md +591 -0
  38. package/architecture/01-standards/event-driven-architecture.md +595 -0
  39. package/architecture/01-standards/microservices-patterns-complete.md +968 -0
  40. package/architecture/01-standards/microservices-patterns.md +495 -0
  41. package/architecture/01-standards/system-design-interview.md +664 -0
  42. package/architecture/02-playbooks/microservices-patterns-playbook.md +137 -0
  43. package/architecture/02-playbooks/migration-playbook.md +780 -0
  44. package/architecture/02-playbooks/system-design-playbook.md +779 -0
  45. package/architecture/03-checklists/architecture-decision-checklist.md +297 -0
  46. package/architecture/04-antipatterns/architecture-antipatterns.md +417 -0
  47. package/architecture/05-cases/case-netflix-microservices.md +413 -0
  48. package/architecture/06-glossary/architecture-glossary.md +164 -0
  49. package/architecture/adr-template-and-examples.md +38 -0
  50. package/architecture/api-gateway-deep-dive.md +1291 -0
  51. package/architecture/configuration-management.md +1162 -0
  52. package/architecture/distributed-transactions.md +1220 -0
  53. package/architecture/microservices-complete.md +735 -0
  54. package/architecture/resilience-and-disaster-patterns.md +37 -0
  55. package/architecture/service-governance.md +1198 -0
  56. package/architecture/system-architecture-deep-dive.md +37 -0
  57. package/backend/01-standards/analytics-and-growth.md +65 -0
  58. package/backend/01-standards/api-and-error-conventions.md +120 -0
  59. package/backend/01-standards/application-layering-and-packaging.md +160 -0
  60. package/backend/01-standards/auth-implementation.md +104 -0
  61. package/backend/01-standards/backend-framework-idioms.md +74 -0
  62. package/backend/01-standards/background-jobs-and-async.md +66 -0
  63. package/backend/01-standards/caching-strategies-complete.md +390 -0
  64. package/backend/01-standards/config-and-observability.md +77 -0
  65. package/backend/01-standards/data-modeling-and-persistence.md +94 -0
  66. package/backend/01-standards/django-complete.md +1765 -0
  67. package/backend/01-standards/email-and-notifications.md +64 -0
  68. package/backend/01-standards/fastapi-complete.md +925 -0
  69. package/backend/01-standards/file-upload-and-storage.md +66 -0
  70. package/backend/01-standards/graphql-api-complete.md +416 -0
  71. package/backend/01-standards/llm-application-standard.md +78 -0
  72. package/backend/01-standards/message-queue-patterns.md +379 -0
  73. package/backend/01-standards/microservices-and-distributed.md +78 -0
  74. package/backend/01-standards/nestjs-complete.md +2167 -0
  75. package/backend/01-standards/payment-integration.md +80 -0
  76. package/backend/01-standards/rate-limiting-complete.md +451 -0
  77. package/backend/01-standards/realtime-and-websocket.md +65 -0
  78. package/backend/01-standards/search-and-filtering.md +64 -0
  79. package/backend/01-standards/spring-boot-complete.md +445 -0
  80. package/backend/02-playbooks/api-design-playbook.md +718 -0
  81. package/backend/02-playbooks/email-send-playbook.md +130 -0
  82. package/backend/02-playbooks/file-upload-s3-playbook.md +153 -0
  83. package/backend/02-playbooks/typescript-enterprise-playbook.md +133 -0
  84. package/backend/02-playbooks/websocket-realtime-playbook.md +154 -0
  85. package/backend/03-checklists/api-launch-checklist.md +189 -0
  86. package/backend/04-antipatterns/backend-antipatterns.md +1051 -0
  87. package/blockchain/01-standards/blockchain-basics.md +557 -0
  88. package/blockchain/01-standards/smart-contract-development.md +1315 -0
  89. package/cicd/01-standards/deployment-and-delivery-standard.md +96 -0
  90. package/cicd/01-standards/github-actions-complete.md +473 -0
  91. package/cicd/01-standards/release-and-store-submission.md +75 -0
  92. package/cicd/02-playbooks/cicd-pipeline-playbook.md +144 -0
  93. package/cicd/02-playbooks/release-management-playbook.md +605 -0
  94. package/cicd/03-checklists/pipeline-security-checklist.md +168 -0
  95. package/cicd/04-antipatterns/cicd-antipatterns.md +589 -0
  96. package/cicd/05-cases/case-deployment-automation.md +221 -0
  97. package/cicd/05-cases/case-gitops-transformation.md +212 -0
  98. package/cicd/06-glossary/cicd-glossary.md +114 -0
  99. package/cicd/cicd-blueprint-deep-dive.md +38 -0
  100. package/cicd/release-readiness-gate.md +37 -0
  101. package/cloud-native/01-standards/container-security.md +741 -0
  102. package/cloud-native/01-standards/kubernetes-complete.md +812 -0
  103. package/cloud-native/02-playbooks/api-gateway-playbook.md +155 -0
  104. package/cloud-native/02-playbooks/gitops-with-argocd.md +760 -0
  105. package/cloud-native/02-playbooks/k8s-troubleshooting-playbook.md +1942 -0
  106. package/cloud-native/02-playbooks/message-queue-playbook.md +129 -0
  107. package/cloud-native/02-playbooks/multicloud-governance.md +726 -0
  108. package/cloud-native/02-playbooks/serverless-patterns.md +788 -0
  109. package/cloud-native/02-playbooks/service-mesh-playbook.md +612 -0
  110. package/cloud-native/02-playbooks/terraform-iac-playbook.md +143 -0
  111. package/cloud-native/03-checklists/container-security-checklist.md +431 -0
  112. package/cloud-native/03-checklists/k8s-production-readiness-checklist.md +460 -0
  113. package/cloud-native/04-antipatterns/container-antipatterns.md +660 -0
  114. package/cloud-native/04-antipatterns/k8s-antipatterns.md +743 -0
  115. package/cloud-native/05-cases/case-k8s-migration.md +478 -0
  116. package/cloud-native/05-cases/case-k8s-scaling.md +642 -0
  117. package/cloud-native/05-cases/case-k8s-security-incident.md +397 -0
  118. package/cloud-native/06-glossary/cloud-native-glossary.md +337 -0
  119. package/cross-platform/01-standards/cross-platform-frameworks.md +83 -0
  120. package/cross-platform/01-standards/platform-selection-and-architecture.md +77 -0
  121. package/data/01-standards/elasticsearch-complete.md +2098 -0
  122. package/data/01-standards/postgresql-complete.md +1613 -0
  123. package/data/01-standards/redis-complete.md +1527 -0
  124. package/data/02-playbooks/database-optimization-playbook.md +403 -0
  125. package/data/02-playbooks/elasticsearch-production-playbook.md +132 -0
  126. package/data/03-checklists/database-launch-checklist.md +187 -0
  127. package/data/04-antipatterns/database-antipatterns.md +873 -0
  128. package/data/05-cases/case-database-migration.md +310 -0
  129. package/data/06-glossary/database-glossary.md +440 -0
  130. package/data/data-governance-and-modeling-deep-dive.md +39 -0
  131. package/data-engineering/01-standards/airflow-complete.md +523 -0
  132. package/data-engineering/01-standards/kafka-complete.md +1521 -0
  133. package/data-engineering/02-playbooks/spark-etl-playbook.md +496 -0
  134. package/data-engineering/03-checklists/pipeline-launch-checklist.md +194 -0
  135. package/data-engineering/04-antipatterns/data-pipeline-antipatterns.md +684 -0
  136. package/data-engineering/05-cases/case-real-time-pipeline.md +355 -0
  137. package/data-engineering/06-glossary/data-engineering-glossary.md +429 -0
  138. package/database/01-standards/database-schema-standards.md +147 -0
  139. package/database/02-playbooks/postgresql-optimization-quick.md +52 -0
  140. package/database/02-playbooks/postgresql-performance-optimization.md +58 -0
  141. package/database/02-playbooks/postgresql-production-playbook.md +146 -0
  142. package/database/02-playbooks/redis-caching-playbook.md +117 -0
  143. package/database/03-checklists/database-review-checklist.md +50 -0
  144. package/database/04-antipatterns/database-antipatterns.md +112 -0
  145. package/design/01-standards/ui-design-system-complete.md +423 -0
  146. package/design/02-playbooks/design-handoff-playbook.md +254 -0
  147. package/design/02-playbooks/design-review-playbook.md +388 -0
  148. package/design/03-checklists/design-review-checklist.md +246 -0
  149. package/design/04-antipatterns/design-antipatterns.md +378 -0
  150. package/design/05-cases/case-design-system-adoption.md +328 -0
  151. package/design/06-glossary/design-glossary.md +329 -0
  152. package/design/ui-full-lifecycle-cross-platform-playbook.md +571 -0
  153. package/design/ux-system-deep-dive.md +38 -0
  154. package/design-systems/00-craft-rules.md +71 -0
  155. package/design-systems/aesthetic-families.md +43 -0
  156. package/design-systems/anti-ai-slop.md +162 -0
  157. package/design-systems/bold-geometric.md +120 -0
  158. package/design-systems/brutalist-bold.md +103 -0
  159. package/design-systems/editorial-clean.md +109 -0
  160. package/design-systems/glass-aurora.md +108 -0
  161. package/design-systems/modern-minimal.md +145 -0
  162. package/design-systems/premium-luxury.md +106 -0
  163. package/design-systems/product-type-design-map.md +48 -0
  164. package/design-systems/soft-warm.md +123 -0
  165. package/design-systems/tech-utility.md +113 -0
  166. package/desktop/01-standards/desktop-app-standard.md +72 -0
  167. package/desktop/01-standards/desktop-design.md +71 -0
  168. package/development/00-governance/document-template.md +41 -0
  169. package/development/01-standards/api-versioning-strategies.md +432 -0
  170. package/development/01-standards/authentication-patterns-complete.md +479 -0
  171. package/development/01-standards/css-architecture-complete.md +550 -0
  172. package/development/01-standards/database-migration-strategies.md +484 -0
  173. package/development/01-standards/elasticsearch-complete.md +347 -0
  174. package/development/01-standards/git-complete.md +371 -0
  175. package/development/01-standards/golang-complete.md +1565 -0
  176. package/development/01-standards/graphql-complete.md +298 -0
  177. package/development/01-standards/javascript-bundlers-complete.md +469 -0
  178. package/development/01-standards/javascript-typescript-complete.md +528 -0
  179. package/development/01-standards/jest-complete.md +275 -0
  180. package/development/01-standards/linux-complete.md +234 -0
  181. package/development/01-standards/logging-observability-complete.md +526 -0
  182. package/development/01-standards/microservices-communication.md +502 -0
  183. package/development/01-standards/mongodb-complete.md +406 -0
  184. package/development/01-standards/oauth2-complete.md +285 -0
  185. package/development/01-standards/performance-optimization-complete.md +289 -0
  186. package/development/01-standards/playwright-complete.md +247 -0
  187. package/development/01-standards/postgresql-complete.md +456 -0
  188. package/development/01-standards/pytest-complete.md +340 -0
  189. package/development/01-standards/python-async-programming.md +902 -0
  190. package/development/01-standards/python-complete.md +956 -0
  191. package/development/01-standards/python-decorators-complete.md +799 -0
  192. package/development/01-standards/python-design-patterns.md +2854 -0
  193. package/development/01-standards/python-packaging-distribution.md +420 -0
  194. package/development/01-standards/python-testing-strategies.md +607 -0
  195. package/development/01-standards/python-web-frameworks-comparison.md +471 -0
  196. package/development/01-standards/redis-complete.md +317 -0
  197. package/development/01-standards/rest-api-complete.md +316 -0
  198. package/development/01-standards/rust-complete.md +578 -0
  199. package/development/01-standards/typescript-advanced-types.md +1513 -0
  200. package/development/01-standards/web-security-complete.md +292 -0
  201. package/development/02-playbooks/api-design-playbook.md +810 -0
  202. package/development/02-playbooks/database-migration-playbook.md +580 -0
  203. package/development/02-playbooks/debugging-playbook.md +692 -0
  204. package/development/02-playbooks/feature-delivery-playbook.md +430 -0
  205. package/development/02-playbooks/incident-hotfix-playbook.md +387 -0
  206. package/development/02-playbooks/performance-optimization-playbook.md +531 -0
  207. package/development/02-playbooks/performance-tuning-playbook.md +652 -0
  208. package/development/02-playbooks/refactor-playbook.md +403 -0
  209. package/development/02-playbooks/release-playbook.md +469 -0
  210. package/development/03-checklists/architecture-review-checklist.md +168 -0
  211. package/development/03-checklists/data-migration-checklist.md +157 -0
  212. package/development/03-checklists/oncall-handover-checklist.md +173 -0
  213. package/development/03-checklists/pr-checklist.md +158 -0
  214. package/development/03-checklists/production-readiness-checklist.md +190 -0
  215. package/development/03-checklists/release-readiness-checklist.md +154 -0
  216. package/development/03-checklists/security-review-checklist.md +182 -0
  217. package/development/04-antipatterns/api-antipatterns.md +657 -0
  218. package/development/04-antipatterns/architecture-antipatterns.md +686 -0
  219. package/development/04-antipatterns/backend-antipatterns.md +648 -0
  220. package/development/04-antipatterns/cicd-antipatterns.md +540 -0
  221. package/development/04-antipatterns/code-smell-antipatterns.md +571 -0
  222. package/development/04-antipatterns/data-antipatterns.md +658 -0
  223. package/development/04-antipatterns/database-antipatterns.md +578 -0
  224. package/development/04-antipatterns/frontend-antipatterns.md +635 -0
  225. package/development/04-antipatterns/reliability-antipatterns.md +700 -0
  226. package/development/04-antipatterns/security-antipatterns.md +747 -0
  227. package/development/05-cases/case-api-version-migration.md +428 -0
  228. package/development/05-cases/case-authorization-hardening.md +383 -0
  229. package/development/05-cases/case-bluegreen-rollback.md +466 -0
  230. package/development/05-cases/case-cache-snowball-protection.md +485 -0
  231. package/development/05-cases/case-ci-cd-pipeline.md +544 -0
  232. package/development/05-cases/case-database-scaling.md +500 -0
  233. package/development/05-cases/case-db-hotspot-optimization.md +487 -0
  234. package/development/05-cases/case-incident-mttr-reduction.md +563 -0
  235. package/development/05-cases/case-microservice-migration.md +375 -0
  236. package/development/05-cases/case-performance-optimization.md +406 -0
  237. package/development/05-cases/case-security-incident-response.md +345 -0
  238. package/development/06-glossary/full-stack-glossary.md +166 -0
  239. package/development/09-maturity/quarterly-audit-template.md +35 -0
  240. package/development/11-ui-excellence/ui-aesthetic-system.md +41 -0
  241. package/development/11-ui-excellence/ui-engineering-excellence.md +435 -0
  242. package/development/12-scenarios/development-scenarios-guide.md +565 -0
  243. package/development/13-implementation-assets/implementation-toolkit.md +282 -0
  244. package/development/13-implementation-assets/knowledge-gates-execution.md +43 -0
  245. package/development/14-full-lifecycle/software-lifecycle-gates.md +511 -0
  246. package/development/15-lifecycle-templates/project-templates-collection.md +791 -0
  247. package/development/api-contract-and-versioning-guide.md +36 -0
  248. package/development/api-governance-complete.md +43 -0
  249. package/development/backend-engineering-complete.md +43 -0
  250. package/development/code-review-quality-complete.md +43 -0
  251. package/development/concurrency-reliability-complete.md +43 -0
  252. package/development/database-engineering-complete.md +43 -0
  253. package/development/engineering-effectiveness-complete.md +43 -0
  254. package/development/engineering-standards-deep-dive.md +38 -0
  255. package/development/frontend-engineering-complete.md +43 -0
  256. package/development/performance-capacity-complete.md +43 -0
  257. package/development/refactor-migration-complete.md +42 -0
  258. package/development/refactoring-and-techdebt-playbook.md +37 -0
  259. package/development/security-in-development-complete.md +43 -0
  260. package/devops/01-standards/cicd-pipeline-complete.md +262 -0
  261. package/devops/01-standards/docker-complete.md +1490 -0
  262. package/devops/01-standards/github-actions-complete.md +337 -0
  263. package/devops/01-standards/kubernetes-complete.md +638 -0
  264. package/devops/01-standards/terraform-complete.md +2117 -0
  265. package/devops/02-playbooks/docker-compose-playbook.md +233 -0
  266. package/devops/02-playbooks/docker-k8s-production-playbook.md +186 -0
  267. package/devops/02-playbooks/docker-production-playbook.md +952 -0
  268. package/edge-iot/01-standards/edge-iot-complete.md +473 -0
  269. package/experts/architect/api-design.md +178 -0
  270. package/experts/architect/methodology.md +124 -0
  271. package/experts/architect/security.md +75 -0
  272. package/experts/backend-lead/methodology.md +216 -0
  273. package/experts/devops/methodology.md +160 -0
  274. package/experts/frontend-lead/methodology.md +178 -0
  275. package/experts/product-manager/industry/ecommerce.md +43 -0
  276. package/experts/product-manager/industry/saas.md +40 -0
  277. package/experts/product-manager/methodology.md +97 -0
  278. package/experts/qa-lead/methodology.md +123 -0
  279. package/experts/qa-lead/test-strategy.md +128 -0
  280. package/experts/uiux-designer/methodology.md +125 -0
  281. package/frontend/01-standards/accessibility-complete.md +532 -0
  282. package/frontend/01-standards/accessibility-standard.md +74 -0
  283. package/frontend/01-standards/admin-dashboard-and-crud.md +72 -0
  284. package/frontend/01-standards/design-tokens-complete.md +444 -0
  285. package/frontend/01-standards/forms-and-validation.md +77 -0
  286. package/frontend/01-standards/frontend-architecture-and-layering.md +119 -0
  287. package/frontend/01-standards/i18n-and-localization.md +65 -0
  288. package/frontend/01-standards/nextjs-complete.md +451 -0
  289. package/frontend/01-standards/react-complete.md +713 -0
  290. package/frontend/01-standards/react-hooks-complete-guide.md +1100 -0
  291. package/frontend/01-standards/react-hooks-complete.md +1171 -0
  292. package/frontend/01-standards/seo-and-web-vitals.md +77 -0
  293. package/frontend/01-standards/state-management-complete.md +444 -0
  294. package/frontend/01-standards/vue-complete.md +499 -0
  295. package/frontend/01-standards/vue3-complete.md +2002 -0
  296. package/frontend/01-standards/web-framework-best-practices.md +64 -0
  297. package/frontend/01-standards/web-performance-complete.md +495 -0
  298. package/frontend/02-playbooks/accessibility-a11y-playbook.md +161 -0
  299. package/frontend/02-playbooks/frontend-performance-playbook.md +707 -0
  300. package/frontend/02-playbooks/i18n-internationalization-playbook.md +120 -0
  301. package/frontend/02-playbooks/performance-optimization-playbook.md +163 -0
  302. package/frontend/02-playbooks/react-nextjs-production-playbook.md +167 -0
  303. package/frontend/02-playbooks/react-state-management-playbook.md +173 -0
  304. package/frontend/03-checklists/component-quality-checklist.md +166 -0
  305. package/frontend/03-checklists/frontend-launch-checklist.md +299 -0
  306. package/frontend/04-antipatterns/frontend-antipatterns.md +886 -0
  307. package/frontend/05-cases/case-performance-optimization.md +274 -0
  308. package/harmony/01-standards/harmonyos-arkts-standard.md +75 -0
  309. package/harmony/01-standards/harmonyos-design.md +65 -0
  310. package/high-quality-engineering-playbook.md +54 -0
  311. package/incident/01-standards/incident-response-complete.md +303 -0
  312. package/incident/02-playbooks/chaos-engineering-playbook.md +883 -0
  313. package/incident/02-playbooks/postmortem-playbook.md +398 -0
  314. package/incident/03-checklists/incident-readiness-checklist.md +181 -0
  315. package/incident/04-antipatterns/incident-antipatterns.md +490 -0
  316. package/incident/05-cases/case-cascade-failure.md +176 -0
  317. package/incident/06-glossary/incident-glossary.md +114 -0
  318. package/incident/postmortem-and-response-deep-dive.md +39 -0
  319. package/industries/ecommerce/ecommerce-complete.md +631 -0
  320. package/industries/education/education-complete.md +555 -0
  321. package/industries/fintech/fintech-complete.md +501 -0
  322. package/industries/gaming/gaming-complete.md +587 -0
  323. package/industries/healthcare/healthcare-complete.md +452 -0
  324. package/low-code/01-standards/low-code-complete.md +944 -0
  325. package/miniprogram/01-standards/ai-common-mistakes.md +61 -0
  326. package/miniprogram/01-standards/miniprogram-custom-navbar-capsule.md +77 -0
  327. package/miniprogram/01-standards/miniprogram-design.md +61 -0
  328. package/miniprogram/01-standards/miniprogram-standard.md +81 -0
  329. package/mobile/01-standards/android-material-design.md +70 -0
  330. package/mobile/01-standards/flutter-complete.md +384 -0
  331. package/mobile/01-standards/ios-design-hig.md +78 -0
  332. package/mobile/01-standards/mobile-app-standard.md +85 -0
  333. package/mobile/01-standards/react-native-complete.md +352 -0
  334. package/mobile/02-playbooks/mobile-cross-platform-playbook.md +175 -0
  335. package/mobile/02-playbooks/mobile-performance.md +473 -0
  336. package/mobile/03-checklists/mobile-release-checklist.md +234 -0
  337. package/mobile/04-antipatterns/mobile-antipatterns.md +798 -0
  338. package/mobile/05-cases/case-app-performance.md +500 -0
  339. package/mobile/05-cases/case-app-startup-optimization.md +218 -0
  340. package/mobile/06-glossary/mobile-glossary.md +484 -0
  341. package/observability/01-standards/observability-standards.md +103 -0
  342. package/observability/02-playbooks/prometheus-grafana-playbook.md +135 -0
  343. package/observability/02-playbooks/structured-logging-playbook.md +73 -0
  344. package/observability/03-checklists/observability-checklist.md +54 -0
  345. package/observability/04-antipatterns/observability-antipatterns.md +106 -0
  346. package/operations/01-standards/prometheus-monitoring-complete.md +1578 -0
  347. package/operations/02-playbooks/capacity-planning-playbook.md +620 -0
  348. package/operations/03-checklists/production-launch-checklist.md +365 -0
  349. package/operations/04-antipatterns/operations-antipatterns.md +664 -0
  350. package/operations/05-cases/case-sre-practices.md +581 -0
  351. package/operations/06-glossary/operations-glossary.md +120 -0
  352. package/operations/aiops-anomaly-detection.md +758 -0
  353. package/operations/capacity-planning.md +1061 -0
  354. package/operations/chaos-engineering.md +659 -0
  355. package/operations/incident-command-system.md +38 -0
  356. package/operations/observability-complete.md +442 -0
  357. package/operations/slo-sli-playbook.md +517 -0
  358. package/operations/sre-operations-deep-dive.md +39 -0
  359. package/package.json +8 -0
  360. package/performance/01-standards/performance-and-scalability.md +80 -0
  361. package/performance/01-standards/performance-standards.md +156 -0
  362. package/performance/02-playbooks/query-optimization-playbook.md +103 -0
  363. package/performance/03-checklists/performance-checklist.md +56 -0
  364. package/performance/04-antipatterns/performance-antipatterns.md +146 -0
  365. package/product/01-standards/product-management-complete.md +285 -0
  366. package/product/02-playbooks/feature-launch-playbook.md +207 -0
  367. package/product/02-playbooks/user-research-playbook.md +532 -0
  368. package/product/03-checklists/feature-launch-checklist.md +275 -0
  369. package/product/04-antipatterns/product-antipatterns.md +355 -0
  370. package/product/05-cases/case-mvp-to-scale.md +384 -0
  371. package/product/06-glossary/product-glossary.md +462 -0
  372. package/product/feature-prioritization-framework.md +40 -0
  373. package/product/kpi-and-metric-tree.md +37 -0
  374. package/product/product-discovery-and-prd-deep-dive.md +41 -0
  375. package/quantum/01-standards/quantum-complete.md +1186 -0
  376. package/security/01-standards/api-security-complete.md +511 -0
  377. package/security/01-standards/container-runtime-security.md +574 -0
  378. package/security/01-standards/data-protection-gdpr.md +543 -0
  379. package/security/01-standards/owasp-top10-complete.md +1890 -0
  380. package/security/01-standards/secure-coding-baseline.md +90 -0
  381. package/security/01-standards/supply-chain-security.md +441 -0
  382. package/security/01-standards/web-security-checklist.md +108 -0
  383. package/security/01-standards/zero-trust-architecture.md +521 -0
  384. package/security/02-playbooks/auth-sso-playbook.md +166 -0
  385. package/security/02-playbooks/incident-response-security-playbook.md +588 -0
  386. package/security/02-playbooks/owasp-api-security-playbook.md +129 -0
  387. package/security/02-playbooks/payment-integration-playbook.md +119 -0
  388. package/security/02-playbooks/penetration-testing-playbook.md +517 -0
  389. package/security/03-checklists/security-audit-checklist.md +356 -0
  390. package/security/04-antipatterns/security-coding-antipatterns.md +580 -0
  391. package/security/05-cases/case-log4shell-incident.md +537 -0
  392. package/security/05-cases/case-major-breaches.md +468 -0
  393. package/security/06-glossary/security-glossary.md +212 -0
  394. package/security/compliance-automation.md +993 -0
  395. package/security/container-security.md +680 -0
  396. package/security/devsecops-complete.md +426 -0
  397. package/security/sast-dast-sca.md +775 -0
  398. package/security/secrets-management.md +594 -0
  399. package/security/security-architecture-deep-dive.md +37 -0
  400. package/security/threat-modeling-stride-playbook.md +40 -0
  401. package/seed-templates/auth-system.md +59 -0
  402. package/seed-templates/blog-content.md +94 -0
  403. package/seed-templates/dashboard.md +89 -0
  404. package/seed-templates/docs-site.md +73 -0
  405. package/seed-templates/e-commerce.md +50 -0
  406. package/seed-templates/saas-landing.md +92 -0
  407. package/seed-templates/settings-page.md +51 -0
  408. package/testing/01-standards/test-strategy-and-layering.md +83 -0
  409. package/testing/01-standards/testing-strategy-complete.md +422 -0
  410. package/testing/01-standards/unit-testing-best-practices.md +118 -0
  411. package/testing/02-playbooks/e2e-testing-playbook.md +988 -0
  412. package/testing/02-playbooks/testing-strategy-playbook.md +126 -0
  413. package/testing/03-checklists/test-strategy-checklist.md +208 -0
  414. package/testing/04-antipatterns/testing-antipatterns.md +718 -0
  415. package/testing/05-cases/case-testing-transformation.md +300 -0
  416. package/testing/06-glossary/testing-glossary.md +110 -0
  417. package/testing/risk-based-test-matrix.md +36 -0
  418. package/testing/testing-strategy-deep-dive.md +37 -0
@@ -0,0 +1,652 @@
1
+ ---
2
+ id: performance-tuning-playbook
3
+ title: 性能调优作战手册 (Performance Tuning Playbook)
4
+ domain: development
5
+ category: 02-playbooks
6
+ difficulty: intermediate
7
+ tags: [agent, checklist, development, performance, playbook, tuning, 前置条件, 回滚方案]
8
+ quality_score: 70
9
+ last_updated: 2026-06-15
10
+ ---
11
+ # 性能调优作战手册 (Performance Tuning Playbook)
12
+
13
+ ## 概述
14
+
15
+ 性能调优是针对已识别的具体性能瓶颈,通过系统化的 分析 -> 定位 -> 优化 -> 验证 工作流进行精确优化的过程。与性能优化手册侧重整体方法论不同,本手册聚焦于具体工具的使用方法、火焰图分析、profiling 技术和基准测试实践。
16
+
17
+ ## 前置条件
18
+
19
+ ### 必须满足
20
+
21
+ - [ ] 已有明确的性能问题描述(哪个接口、什么场景、多慢)
22
+ - [ ] 已有可复现的性能问题环境(生产镜像或压测环境)
23
+ - [ ] 已有性能基线数据(正常时的指标)
24
+ - [ ] profiling 工具已安装并可用
25
+ - [ ] 有足够的磁盘空间存储 profiling 数据(建议 > 10GB)
26
+
27
+ ### 工具清单
28
+
29
+ | 维度 | 工具 | 语言/平台 |
30
+ |------|------|----------|
31
+ | CPU Profiling | py-spy, cProfile, perf, async-profiler | Python, 系统级, Java |
32
+ | Memory Profiling | tracemalloc, memory_profiler, objgraph, MAT | Python, Java |
33
+ | 火焰图 | FlameGraph, speedscope, py-spy | 通用 |
34
+ | 基准测试 | pytest-benchmark, wrk, k6, ab | Python, HTTP |
35
+ | 数据库 | EXPLAIN ANALYZE, pg_stat_statements, slow_query_log | PostgreSQL, MySQL |
36
+ | 网络 | tcpdump, wireshark, mtr | 系统级 |
37
+ | 综合 APM | Datadog, New Relic, SkyWalking, Jaeger | 通用 |
38
+
39
+ ---
40
+
41
+ ## 步骤一:分析 — 收集性能数据
42
+
43
+ ### 1.1 CPU Profiling
44
+
45
+ #### Python - py-spy(推荐,低开销,可附加到运行中的进程)
46
+
47
+ ```bash
48
+ # 安装
49
+ pip install py-spy
50
+
51
+ # 实时 top 视图 - 查看当前 CPU 热点
52
+ py-spy top --pid $(pgrep -f "uvicorn")
53
+
54
+ # 生成火焰图 SVG
55
+ py-spy record -o flame_cpu.svg --pid $(pgrep -f "uvicorn") --duration 30
56
+
57
+ # 生成 speedscope 格式(交互式分析)
58
+ py-spy record -o profile.speedscope --format speedscope --pid $(pgrep -f "uvicorn") --duration 30
59
+ # 然后在浏览器打开 https://www.speedscope.app/ 导入
60
+
61
+ # 采样子进程(适用于 multiprocessing)
62
+ py-spy record -o flame.svg --pid $(pgrep -f "uvicorn") --subprocesses --duration 60
63
+
64
+ # 只采集 GIL 持有者(找到真正占 CPU 的代码)
65
+ py-spy record -o flame_gil.svg --pid $(pgrep -f "uvicorn") --gil --duration 30
66
+ ```
67
+
68
+ #### Python - cProfile(内置,适用于脚本级分析)
69
+
70
+ ```python
71
+ import cProfile
72
+ import pstats
73
+ from io import StringIO
74
+
75
+ def profile_function(func, *args, **kwargs):
76
+ """Profile 一个函数并输出统计"""
77
+ profiler = cProfile.Profile()
78
+ profiler.enable()
79
+ result = func(*args, **kwargs)
80
+ profiler.disable()
81
+
82
+ # 输出统计
83
+ stream = StringIO()
84
+ stats = pstats.Stats(profiler, stream=stream)
85
+ stats.sort_stats('cumulative')
86
+ stats.print_stats(30) # Top 30
87
+ print(stream.getvalue())
88
+
89
+ # 保存为可分析文件
90
+ stats.dump_stats('profile_output.prof')
91
+
92
+ return result
93
+
94
+ # 使用 snakeviz 可视化
95
+ # pip install snakeviz
96
+ # snakeviz profile_output.prof
97
+ ```
98
+
99
+ #### Python - line_profiler(逐行分析)
100
+
101
+ ```python
102
+ # pip install line_profiler
103
+
104
+ # 方式 1: 装饰器
105
+ from line_profiler import profile
106
+
107
+ @profile
108
+ def slow_function(data):
109
+ result = []
110
+ for item in data: # 看每行耗时
111
+ processed = transform(item) # 哪行最慢一目了然
112
+ result.append(processed)
113
+ return result
114
+
115
+ # 运行: kernprof -l -v script.py
116
+ ```
117
+
118
+ #### 系统级 - Linux perf
119
+
120
+ ```bash
121
+ # 采集 CPU 调用栈(30秒)
122
+ sudo perf record -g -p $(pgrep -f "your-app") -- sleep 30
123
+
124
+ # 生成报告
125
+ sudo perf report --stdio --sort=dso,sym | head -50
126
+
127
+ # 生成火焰图
128
+ sudo perf script > perf.unfold
129
+ stackcollapse-perf.pl perf.unfold | flamegraph.pl > perf_flame.svg
130
+ ```
131
+
132
+ ### 1.2 Memory Profiling
133
+
134
+ #### Python - tracemalloc(内置,推荐)
135
+
136
+ ```python
137
+ import tracemalloc
138
+ import linecache
139
+
140
+ def memory_snapshot(label: str = ""):
141
+ """拍摄内存快照并展示 Top 分配"""
142
+ snapshot = tracemalloc.take_snapshot()
143
+ top_stats = snapshot.statistics('lineno')
144
+
145
+ print(f"\n=== Memory Snapshot: {label} ===")
146
+ print(f"Top 15 memory allocations:")
147
+ for index, stat in enumerate(top_stats[:15], 1):
148
+ frame = stat.traceback[0]
149
+ print(f" #{index}: {frame.filename}:{frame.lineno} - {stat.size / 1024:.1f} KB")
150
+ line = linecache.getline(frame.filename, frame.lineno).strip()
151
+ if line:
152
+ print(f" {line}")
153
+
154
+ def compare_snapshots(snapshot1, snapshot2):
155
+ """比较两个快照,找出内存增长点"""
156
+ stats = snapshot2.compare_to(snapshot1, 'lineno')
157
+ print("\n=== Memory Growth ===")
158
+ for stat in stats[:10]:
159
+ print(f" {stat}")
160
+
161
+ # 使用示例
162
+ tracemalloc.start()
163
+ snapshot1 = tracemalloc.take_snapshot()
164
+
165
+ # ... 运行目标代码 ...
166
+
167
+ snapshot2 = tracemalloc.take_snapshot()
168
+ compare_snapshots(snapshot1, snapshot2)
169
+ ```
170
+
171
+ #### Python - objgraph(对象引用分析,排查泄漏)
172
+
173
+ ```python
174
+ import objgraph
175
+
176
+ # 查看对象数量变化(执行两次对比)
177
+ objgraph.show_growth(limit=10)
178
+
179
+ # 找到特定类型的引用链(排查为什么对象没被 GC)
180
+ objgraph.show_backrefs(
181
+ objgraph.by_type('MyClass')[:3],
182
+ max_depth=5,
183
+ filename='refs.png'
184
+ )
185
+
186
+ # 查看最多的对象类型
187
+ objgraph.show_most_common_types(limit=20)
188
+ ```
189
+
190
+ ### 1.3 IO 与网络 Profiling
191
+
192
+ ```bash
193
+ # 查看进程的系统调用耗时分布
194
+ strace -c -p $(pgrep -f "your-app") -e trace=network,file 2>&1 | head -30
195
+
196
+ # 查看 TCP 连接状态
197
+ ss -tnp | grep $(pgrep -f "your-app") | awk '{print $1}' | sort | uniq -c | sort -rn
198
+
199
+ # 抓包分析慢请求
200
+ tcpdump -i eth0 -w capture.pcap port 8080 -c 10000
201
+ # 用 wireshark 分析 capture.pcap
202
+
203
+ # DNS 解析延迟
204
+ dig @8.8.8.8 api.external-service.com +stats
205
+ ```
206
+
207
+ ### 1.4 数据库 Profiling
208
+
209
+ ```sql
210
+ -- PostgreSQL: 启用 pg_stat_statements
211
+ CREATE EXTENSION IF NOT EXISTS pg_stat_statements;
212
+
213
+ -- 查看最慢的查询
214
+ SELECT
215
+ LEFT(query, 100) AS short_query,
216
+ calls,
217
+ ROUND(mean_exec_time::numeric, 2) AS avg_ms,
218
+ ROUND(total_exec_time::numeric, 2) AS total_ms,
219
+ rows,
220
+ ROUND((shared_blks_hit::numeric / NULLIF(shared_blks_hit + shared_blks_read, 0) * 100), 2) AS cache_hit_pct
221
+ FROM pg_stat_statements
222
+ ORDER BY mean_exec_time DESC
223
+ LIMIT 20;
224
+
225
+ -- 详细执行计划
226
+ EXPLAIN (ANALYZE, BUFFERS, TIMING, VERBOSE, FORMAT JSON)
227
+ SELECT o.id, o.status, u.name
228
+ FROM orders o
229
+ JOIN users u ON u.id = o.user_id
230
+ WHERE o.created_at > NOW() - INTERVAL '7 days'
231
+ AND o.status = 'active'
232
+ ORDER BY o.created_at DESC
233
+ LIMIT 50;
234
+
235
+ -- MySQL: 启用慢查询日志
236
+ SET GLOBAL slow_query_log = 'ON';
237
+ SET GLOBAL long_query_time = 0.1; -- 100ms 以上记为慢查询
238
+ SET GLOBAL log_queries_not_using_indexes = 'ON';
239
+
240
+ -- 分析慢查询日志
241
+ -- mysqldumpslow -s t /var/log/mysql/slow.log | head -20
242
+ ```
243
+
244
+ ---
245
+
246
+ ## 步骤二:定位 — 火焰图分析
247
+
248
+ ### 2.1 火焰图阅读方法
249
+
250
+ ```
251
+ 火焰图解读规则:
252
+
253
+ 1. X 轴:函数调用栈的聚合宽度,代表 CPU 时间占比(越宽越耗 CPU)
254
+ 2. Y 轴:调用栈深度,底部是入口函数,顶部是叶子函数
255
+ 3. 颜色:无特殊含义(仅用于区分不同栈帧)
256
+
257
+ 重点关注:
258
+ - "平顶山"(Plateau):顶部的宽方块 = CPU 热点函数
259
+ - "悬崖"(Cliff):调用栈突然变窄 = 该函数消耗了大量 CPU 而非子调用
260
+
261
+ 操作步骤:
262
+ 1. 先找最宽的顶部方块(最大的 CPU 消耗者)
263
+ 2. 向下追溯调用路径(谁调用了它)
264
+ 3. 判断是否合理(必要的计算 vs 可优化的逻辑)
265
+ ```
266
+
267
+ ### 2.2 不同类型火焰图
268
+
269
+ ```bash
270
+ # CPU 火焰图 - 分析 CPU 密集操作
271
+ py-spy record -o cpu_flame.svg --pid $PID --duration 30
272
+
273
+ # Off-CPU 火焰图 - 分析等待/阻塞(IO、锁、sleep)
274
+ # 需要 BPF 工具
275
+ sudo offcputime-bpfcc -p $PID -f 30 > offcpu.stacks
276
+ flamegraph.pl --color=io < offcpu.stacks > offcpu_flame.svg
277
+
278
+ # 内存火焰图 - 分析内存分配热点
279
+ # 使用 tracemalloc 的结果生成
280
+ python3 << 'PYEOF'
281
+ import tracemalloc
282
+ import json
283
+
284
+ tracemalloc.start(25) # 保留 25 层调用栈
285
+
286
+ # ... 运行目标代码 ...
287
+
288
+ snapshot = tracemalloc.take_snapshot()
289
+ stats = snapshot.statistics('traceback')
290
+
291
+ # 输出 flamegraph 格式
292
+ with open('mem.stacks', 'w') as f:
293
+ for stat in stats[:200]:
294
+ frames = [f"{frame.filename}:{frame.lineno}" for frame in reversed(stat.traceback)]
295
+ f.write(f"{';'.join(frames)} {stat.size}\n")
296
+ PYEOF
297
+ flamegraph.pl --title="Memory Allocation" --countname="bytes" < mem.stacks > mem_flame.svg
298
+
299
+ # 差分火焰图 - 对比优化前后
300
+ difffolded.pl before.folded after.folded | flamegraph.pl > diff_flame.svg
301
+ # 红色 = 回退(变慢), 蓝色 = 改进(变快)
302
+ ```
303
+
304
+ ### 2.3 speedscope 交互式分析
305
+
306
+ ```bash
307
+ # speedscope 提供三种视图:
308
+ # 1. Time Order - 按时间顺序查看(适合分析请求处理流程)
309
+ # 2. Left Heavy - 按耗时汇总排序(适合找热点函数)
310
+ # 3. Sandwich - 查看函数的调用者和被调用者(适合分析函数上下文)
311
+
312
+ # 生成 speedscope 兼容格式
313
+ py-spy record -o profile.speedscope --format speedscope --pid $PID --duration 30
314
+
315
+ # 在浏览器中打开 https://www.speedscope.app/ 加载 profile.speedscope
316
+ ```
317
+
318
+ ---
319
+
320
+ ## 步骤三:优化 — 常见瓶颈修复
321
+
322
+ ### 3.1 CPU 密集型优化
323
+
324
+ ```python
325
+ # 问题 1: 循环中的重复计算
326
+ # 优化前
327
+ def process_items(items):
328
+ for item in items:
329
+ config = load_config() # 每次循环都重新加载!
330
+ result = expensive_transform(item, config)
331
+
332
+ # 优化后
333
+ def process_items(items):
334
+ config = load_config() # 提到循环外
335
+ for item in items:
336
+ result = expensive_transform(item, config)
337
+
338
+ # 问题 2: 低效的数据结构
339
+ # 优化前 - O(n) 查找
340
+ def find_user(users_list, user_id):
341
+ for user in users_list:
342
+ if user['id'] == user_id:
343
+ return user
344
+
345
+ # 优化后 - O(1) 查找
346
+ users_dict = {u['id']: u for u in users_list}
347
+ def find_user(users_dict, user_id):
348
+ return users_dict.get(user_id)
349
+
350
+ # 问题 3: 字符串拼接
351
+ # 优化前 - O(n^2) 复杂度
352
+ result = ""
353
+ for line in lines:
354
+ result += line + "\n"
355
+
356
+ # 优化后 - O(n) 复杂度
357
+ result = "\n".join(lines)
358
+
359
+ # 问题 4: 使用 C 扩展替代纯 Python
360
+ import orjson # 比 json 快 3-10x
361
+ data = orjson.dumps({"key": "value"})
362
+
363
+ import numpy as np # 比纯 Python 循环快 100x+
364
+ result = np.sum(large_array)
365
+ ```
366
+
367
+ ### 3.2 IO 密集型优化
368
+
369
+ ```python
370
+ import asyncio
371
+ import aiohttp
372
+
373
+ # 问题: 串行 IO 请求
374
+ # 优化前
375
+ async def fetch_all_serial(urls):
376
+ results = []
377
+ async with aiohttp.ClientSession() as session:
378
+ for url in urls:
379
+ async with session.get(url) as resp:
380
+ results.append(await resp.json())
381
+ return results
382
+
383
+ # 优化后: 并发 IO
384
+ async def fetch_all_concurrent(urls, max_concurrency=10):
385
+ semaphore = asyncio.Semaphore(max_concurrency)
386
+ async with aiohttp.ClientSession() as session:
387
+ async def fetch(url):
388
+ async with semaphore:
389
+ async with session.get(url) as resp:
390
+ return await resp.json()
391
+ return await asyncio.gather(*[fetch(url) for url in urls])
392
+
393
+ # 问题: 频繁小 IO
394
+ # 优化前
395
+ for record in records:
396
+ db.insert(record) # 1000 次网络往返
397
+
398
+ # 优化后: 批量 IO
399
+ db.insert_many(records) # 1 次网络往返
400
+ ```
401
+
402
+ ### 3.3 内存优化
403
+
404
+ ```python
405
+ # 问题 1: 一次性加载大数据集
406
+ # 优化前
407
+ data = list(db.query("SELECT * FROM large_table")) # 全部加载到内存
408
+
409
+ # 优化后: 流式处理
410
+ def stream_query(query, batch_size=1000):
411
+ offset = 0
412
+ while True:
413
+ batch = db.query(f"{query} LIMIT {batch_size} OFFSET {offset}")
414
+ if not batch:
415
+ break
416
+ yield from batch
417
+ offset += batch_size
418
+
419
+ for record in stream_query("SELECT * FROM large_table"):
420
+ process(record)
421
+
422
+ # 问题 2: 对象开销大
423
+ # 优化前
424
+ class Point:
425
+ def __init__(self, x, y, z):
426
+ self.x = x # 每个实例有 __dict__,占用约 200+ bytes
427
+ self.y = y
428
+ self.z = z
429
+
430
+ # 优化后: 使用 __slots__
431
+ class Point:
432
+ __slots__ = ('x', 'y', 'z') # 减少到约 64 bytes
433
+ def __init__(self, x, y, z):
434
+ self.x = x
435
+ self.y = y
436
+ self.z = z
437
+
438
+ # 或使用 NamedTuple(不可变场景)
439
+ from typing import NamedTuple
440
+ class Point(NamedTuple):
441
+ x: float
442
+ y: float
443
+ z: float
444
+ ```
445
+
446
+ ### 3.4 数据库查询优化
447
+
448
+ ```sql
449
+ -- 问题 1: 全表扫描
450
+ -- 优化前
451
+ SELECT * FROM orders WHERE DATE(created_at) = '2024-01-15';
452
+ -- 优化后(利用索引)
453
+ SELECT * FROM orders
454
+ WHERE created_at >= '2024-01-15 00:00:00'
455
+ AND created_at < '2024-01-16 00:00:00';
456
+
457
+ -- 问题 2: N+1 查询
458
+ -- 优化前(应用层 N+1)
459
+ -- for order in orders: order.items = query("SELECT * FROM items WHERE order_id = ?", order.id)
460
+ -- 优化后: JOIN 或 子查询
461
+ SELECT o.*, i.product_name, i.quantity
462
+ FROM orders o
463
+ LEFT JOIN order_items i ON i.order_id = o.id
464
+ WHERE o.user_id = 123;
465
+
466
+ -- 问题 3: 排序时没有索引支持
467
+ -- 添加覆盖查询的复合索引
468
+ CREATE INDEX CONCURRENTLY idx_orders_user_status_created
469
+ ON orders(user_id, status, created_at DESC)
470
+ INCLUDE (total_amount); -- 覆盖索引,避免回表
471
+ ```
472
+
473
+ ---
474
+
475
+ ## 步骤四:验证 — 基准测试
476
+
477
+ ### 4.1 微基准测试
478
+
479
+ ```python
480
+ # pytest-benchmark
481
+ import pytest
482
+
483
+ def test_json_serialization(benchmark):
484
+ data = {"users": [{"id": i, "name": f"user_{i}"} for i in range(100)]}
485
+
486
+ import json
487
+ result = benchmark(json.dumps, data)
488
+ assert result
489
+
490
+ def test_orjson_serialization(benchmark):
491
+ data = {"users": [{"id": i, "name": f"user_{i}"} for i in range(100)]}
492
+
493
+ import orjson
494
+ result = benchmark(orjson.dumps, data)
495
+ assert result
496
+
497
+ # 运行: pytest tests/bench/ --benchmark-sort=mean --benchmark-compare
498
+ ```
499
+
500
+ ```python
501
+ # timeit - 快速对比
502
+ import timeit
503
+
504
+ # 对比两种实现
505
+ setup = "data = list(range(10000))"
506
+
507
+ time_list_comp = timeit.timeit("[x**2 for x in data]", setup=setup, number=1000)
508
+ time_map = timeit.timeit("list(map(lambda x: x**2, data))", setup=setup, number=1000)
509
+
510
+ print(f"List comprehension: {time_list_comp:.3f}s")
511
+ print(f"Map: {time_map:.3f}s")
512
+ print(f"Speedup: {time_map/time_list_comp:.2f}x")
513
+ ```
514
+
515
+ ### 4.2 负载测试
516
+
517
+ ```bash
518
+ # k6 负载测试 - 阶梯式加压
519
+ cat > soak_test.js << 'EOF'
520
+ import http from 'k6/http';
521
+ import { check, sleep } from 'k6';
522
+
523
+ export const options = {
524
+ stages: [
525
+ { duration: '5m', target: 100 }, // 预热到 100 并发
526
+ { duration: '30m', target: 100 }, // 持续 100 并发 30 分钟
527
+ { duration: '5m', target: 200 }, // 加压到 200
528
+ { duration: '30m', target: 200 }, // 持续 200 并发 30 分钟
529
+ { duration: '5m', target: 0 }, // 降载
530
+ ],
531
+ thresholds: {
532
+ http_req_duration: ['p(95)<200', 'p(99)<500'],
533
+ http_req_failed: ['rate<0.01'],
534
+ },
535
+ };
536
+
537
+ export default function () {
538
+ const res = http.get(`${__ENV.BASE_URL}/api/v1/orders?page=1&per_page=20`);
539
+ check(res, {
540
+ 'status is 200': (r) => r.status === 200,
541
+ 'response time < 200ms': (r) => r.timings.duration < 200,
542
+ });
543
+ sleep(Math.random() * 2); // 模拟用户思考时间
544
+ }
545
+ EOF
546
+ k6 run soak_test.js -e BASE_URL=http://localhost:8080
547
+ ```
548
+
549
+ ### 4.3 A/B 对比验证
550
+
551
+ ```bash
552
+ # 使用 wrk 进行优化前后对比
553
+
554
+ echo "=== 优化前 ==="
555
+ wrk -t4 -c100 -d30s --latency http://localhost:8080/api/v1/orders > before.txt 2>&1
556
+
557
+ echo "=== 部署优化后的代码 ==="
558
+ # ... 部署 ...
559
+
560
+ echo "=== 优化后 ==="
561
+ wrk -t4 -c100 -d30s --latency http://localhost:8080/api/v1/orders > after.txt 2>&1
562
+
563
+ echo "=== 对比 ==="
564
+ diff before.txt after.txt
565
+ ```
566
+
567
+ ### 4.4 持续性能回归
568
+
569
+ ```yaml
570
+ # GitHub Actions 中的性能回归检测
571
+ - name: Run performance benchmark
572
+ run: |
573
+ pytest tests/bench/ --benchmark-json=benchmark.json
574
+
575
+ - name: Compare with baseline
576
+ run: |
577
+ python3 << 'EOF'
578
+ import json
579
+ with open('benchmark.json') as f:
580
+ current = json.load(f)
581
+ with open('benchmark_baseline.json') as f:
582
+ baseline = json.load(f)
583
+
584
+ regressions = []
585
+ for bench in current['benchmarks']:
586
+ name = bench['name']
587
+ baseline_bench = next((b for b in baseline['benchmarks'] if b['name'] == name), None)
588
+ if baseline_bench:
589
+ ratio = bench['stats']['mean'] / baseline_bench['stats']['mean']
590
+ if ratio > 1.1: # 超过 10% 回退
591
+ regressions.append(f"{name}: {ratio:.2f}x slower")
592
+
593
+ if regressions:
594
+ print("Performance regressions detected:")
595
+ for r in regressions:
596
+ print(f" - {r}")
597
+ exit(1)
598
+ print("No regressions detected.")
599
+ EOF
600
+ ```
601
+
602
+ ---
603
+
604
+ ## 回滚方案
605
+
606
+ ### 优化代码回滚
607
+
608
+ ```bash
609
+ # 如果优化引入了 Bug 或性能反而下降
610
+ git revert <optimization-commit-hash>
611
+ git push origin main
612
+ ```
613
+
614
+ ### 配置调优回滚
615
+
616
+ ```bash
617
+ # 连接池/缓存/限流等配置回滚
618
+ kubectl rollout undo deployment/<service> -n production
619
+
620
+ # 或通过配置中心回滚
621
+ curl -X PUT http://config-center/api/config/<service> \
622
+ -d '{"pool_size": 10, "cache_ttl": 300}' # 旧配置
623
+ ```
624
+
625
+ ### 回滚触发条件
626
+
627
+ | 指标 | 触发条件 | 动作 |
628
+ |------|---------|------|
629
+ | 错误率 | 优化后上升 > 0.1% | 立即回滚 |
630
+ | P99 延迟 | 优化后上升 > 20% | 回滚并分析 |
631
+ | 内存使用 | 30 分钟持续增长 | 回滚并排查泄漏 |
632
+ | CPU 使用 | 优化后上升 > 30% | 回滚并分析 |
633
+ | 基准测试 | 回退 > 10% | 阻断合并 |
634
+
635
+ ---
636
+
637
+ ## Agent Checklist
638
+
639
+ AI 编码 Agent 在执行性能调优时必须逐项确认:
640
+
641
+ - [ ] **问题可复现**:有具体的复现步骤和量化的性能数据
642
+ - [ ] **基线已记录**:优化前有 profiling 数据和基准测试结果
643
+ - [ ] **瓶颈已确认**:通过火焰图/profiling 确认了 CPU/内存/IO 的具体热点
644
+ - [ ] **优化有针对性**:每次优化只针对一个瓶颈点
645
+ - [ ] **微基准测试**:优化的函数/方法有独立的基准测试
646
+ - [ ] **负载测试**:在接近生产的负载下验证优化效果
647
+ - [ ] **无功能回归**:所有功能测试通过
648
+ - [ ] **无内存泄漏**:长时间运行(> 30 分钟)内存稳定
649
+ - [ ] **效果可量化**:有优化前后的精确对比数据(延迟、吞吐量、资源使用)
650
+ - [ ] **差分火焰图**:生成了优化前后的差分火焰图确认改进
651
+ - [ ] **回归门禁**:性能基准测试已加入 CI
652
+ - [ ] **文档记录**:优化决策、工具使用、效果数据已记录