@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,571 @@
1
+ ---
2
+ id: code-smell-antipatterns
3
+ title: 代码坏味道反模式指南
4
+ domain: development
5
+ category: 04-antipatterns
6
+ difficulty: intermediate
7
+ tags: [antipatterns, code, copy-paste, development, method, naming, nesting, numbers]
8
+ quality_score: 70
9
+ last_updated: 2026-06-15
10
+ ---
11
+ # 代码坏味道反模式指南
12
+
13
+ > 适用范围:Python / JavaScript / TypeScript / Go / Java / Rust
14
+ > 约束级别:SHALL(必须在 Code Review 阶段拦截)
15
+
16
+ ---
17
+
18
+ ## 1. God Object(上帝对象)
19
+
20
+ ### 描述
21
+ 一个类承担了过多的职责,集中了大量属性和方法,导致修改任何功能都需要修改该类。违反单一职责原则(SRP),是系统耦合度攀升的最常见根因。
22
+
23
+ ### 错误示例
24
+ ```python
25
+ class OrderService:
26
+ """一个类管理了订单、库存、支付、通知、日志、缓存。"""
27
+
28
+ def __init__(self):
29
+ self.db = Database()
30
+ self.cache = Redis()
31
+ self.mailer = EmailClient()
32
+ self.sms = SmsGateway()
33
+ self.logger = Logger()
34
+ self.inventory = {}
35
+
36
+ def create_order(self, user_id, items):
37
+ # 校验库存
38
+ for item in items:
39
+ stock = self.db.query(f"SELECT stock FROM products WHERE id={item['id']}")
40
+ if stock < item['qty']:
41
+ self.logger.error(f"库存不足: {item['id']}")
42
+ return None
43
+ self.inventory[item['id']] = stock - item['qty']
44
+
45
+ # 创建订单
46
+ order_id = self.db.insert("orders", {"user_id": user_id, "items": items})
47
+
48
+ # 扣减库存
49
+ for item in items:
50
+ self.db.update("products", {"stock": self.inventory[item['id']]})
51
+
52
+ # 发送通知
53
+ user = self.db.query(f"SELECT * FROM users WHERE id={user_id}")
54
+ self.mailer.send(user['email'], f"订单 {order_id} 已创建")
55
+ self.sms.send(user['phone'], f"订单 {order_id} 已创建")
56
+
57
+ # 清缓存
58
+ self.cache.delete(f"user_orders:{user_id}")
59
+ self.cache.delete(f"product_stock:{items[0]['id']}")
60
+
61
+ return order_id
62
+ ```
63
+
64
+ ### 正确示例
65
+ ```python
66
+ class OrderService:
67
+ """只负责订单编排,将具体职责委托给专门的服务。"""
68
+
69
+ def __init__(
70
+ self,
71
+ inventory_service: InventoryService,
72
+ payment_service: PaymentService,
73
+ notification_service: NotificationService,
74
+ order_repository: OrderRepository,
75
+ ):
76
+ self._inventory = inventory_service
77
+ self._payment = payment_service
78
+ self._notification = notification_service
79
+ self._repo = order_repository
80
+
81
+ def create_order(self, user_id: str, items: list[OrderItem]) -> Order:
82
+ self._inventory.reserve(items)
83
+ try:
84
+ order = self._repo.create(user_id=user_id, items=items)
85
+ self._notification.send_order_created(order)
86
+ return order
87
+ except Exception:
88
+ self._inventory.release(items)
89
+ raise
90
+ ```
91
+
92
+ ### 检测方法
93
+ - 类的行数超过 300 行、方法数超过 15 个、依赖注入超过 5 个。
94
+ - 静态分析:`radon cc` (Python)、`eslint complexity` (JS/TS) 报告圈复杂度 > 20。
95
+ - 文件变更频率在 git log 中位居前 3 且关联 PR 跨多个业务域。
96
+
97
+ ### 修复步骤
98
+ 1. 列出类的所有公开方法,按业务域分组。
99
+ 2. 为每个业务域创建独立的服务类。
100
+ 3. 将原类重构为编排者(Orchestrator),仅调用各服务的接口。
101
+ 4. 为每个新服务编写独立的单元测试。
102
+ 5. 运行全量回归测试确认行为不变。
103
+
104
+ ### Agent Checklist
105
+ - [ ] 单个类方法数 <= 15
106
+ - [ ] 单个类行数 <= 300
107
+ - [ ] 构造函数依赖注入 <= 5 个
108
+ - [ ] 圈复杂度 <= 15
109
+ - [ ] 变更该文件不影响无关业务域
110
+
111
+ ---
112
+
113
+ ## 2. 过长方法(Long Method)
114
+
115
+ ### 描述
116
+ 单个方法超过 50 行,包含多层逻辑(校验、业务处理、持久化、通知),难以测试、难以复用、难以理解。
117
+
118
+ ### 错误示例
119
+ ```python
120
+ def process_payment(order_id, payment_info):
121
+ # 80+ 行方法:校验 -> 查订单 -> 查用户 -> 风控 -> 扣款 -> 更新状态 -> 发通知 -> 写日志
122
+ order = db.get_order(order_id)
123
+ if not order:
124
+ log.error("订单不存在")
125
+ return {"error": "ORDER_NOT_FOUND"}
126
+ if order['status'] != 'pending':
127
+ log.error("订单状态不允许支付")
128
+ return {"error": "INVALID_STATUS"}
129
+ user = db.get_user(order['user_id'])
130
+ if not user:
131
+ return {"error": "USER_NOT_FOUND"}
132
+ if user['risk_level'] > 3:
133
+ log.warning("高风险用户")
134
+ return {"error": "RISK_BLOCKED"}
135
+ # ... 继续 60 行扣款、更新、通知逻辑 ...
136
+ ```
137
+
138
+ ### 正确示例
139
+ ```python
140
+ def process_payment(order_id: str, payment_info: PaymentInfo) -> PaymentResult:
141
+ order = _validate_order(order_id)
142
+ user = _validate_user(order.user_id)
143
+ _check_risk(user)
144
+ transaction = _execute_charge(order, payment_info)
145
+ _update_order_status(order, transaction)
146
+ _send_payment_notification(order, user)
147
+ return PaymentResult(transaction_id=transaction.id, status="success")
148
+
149
+
150
+ def _validate_order(order_id: str) -> Order:
151
+ order = order_repo.get(order_id)
152
+ if not order:
153
+ raise OrderNotFoundError(order_id)
154
+ if order.status != OrderStatus.PENDING:
155
+ raise InvalidOrderStatusError(order.status)
156
+ return order
157
+ ```
158
+
159
+ ### 检测方法
160
+ - 方法行数 > 50 行(`wc -l` 或 IDE 行数提示)。
161
+ - 方法内出现 3 个以上不同层次的操作(I/O、计算、副作用混合)。
162
+ - 单个方法的单元测试需要 mock 超过 3 个外部依赖。
163
+
164
+ ### 修复步骤
165
+ 1. 识别方法中的逻辑段落(通常以空行或注释分隔)。
166
+ 2. 将每个段落提取为独立的私有方法,命名需体现业务意图。
167
+ 3. 原方法变为高层编排,只包含方法调用序列。
168
+ 4. 为每个提取出的方法编写独立单元测试。
169
+
170
+ ### Agent Checklist
171
+ - [ ] 单个方法行数 <= 50
172
+ - [ ] 方法内 mock 依赖 <= 3 个
173
+ - [ ] 方法名准确描述其唯一职责
174
+ - [ ] 无注释分隔的逻辑段落(应已提取为独立方法)
175
+
176
+ ---
177
+
178
+ ## 3. 过深嵌套(Deep Nesting)
179
+
180
+ ### 描述
181
+ 条件判断、循环嵌套超过 3 层,形成箭头型代码(Arrow Code),严重降低可读性和可测试性。
182
+
183
+ ### 错误示例
184
+ ```python
185
+ def get_discount(user, order):
186
+ if user is not None:
187
+ if user.is_active:
188
+ if order is not None:
189
+ if order.total > 100:
190
+ if user.vip_level >= 2:
191
+ if order.coupon:
192
+ if order.coupon.is_valid():
193
+ return order.total * 0.7
194
+ else:
195
+ return order.total * 0.85
196
+ else:
197
+ return order.total * 0.85
198
+ else:
199
+ return order.total * 0.95
200
+ else:
201
+ return order.total
202
+ else:
203
+ return 0
204
+ else:
205
+ return 0
206
+ else:
207
+ return 0
208
+ ```
209
+
210
+ ### 正确示例
211
+ ```python
212
+ def get_discount(user: User | None, order: Order | None) -> Decimal:
213
+ if not user or not user.is_active:
214
+ return Decimal(0)
215
+ if not order:
216
+ return Decimal(0)
217
+ if order.total <= 100:
218
+ return order.total
219
+
220
+ base_rate = _vip_discount_rate(user.vip_level)
221
+ coupon_rate = _coupon_discount_rate(order.coupon)
222
+ return order.total * min(base_rate, coupon_rate)
223
+
224
+
225
+ def _vip_discount_rate(vip_level: int) -> Decimal:
226
+ return Decimal("0.85") if vip_level >= 2 else Decimal("0.95")
227
+
228
+
229
+ def _coupon_discount_rate(coupon: Coupon | None) -> Decimal:
230
+ if coupon and coupon.is_valid():
231
+ return Decimal("0.70")
232
+ return Decimal("1.0")
233
+ ```
234
+
235
+ ### 检测方法
236
+ - 缩进深度 > 3 层(使用 `ruff` 的 `C901` 规则或 `pylint` 的 `too-many-nested-blocks`)。
237
+ - 代码呈箭头形状(左侧缩进逐步增大后再逐步回收)。
238
+ - ESLint 规则 `max-depth` 设为 3。
239
+
240
+ ### 修复步骤
241
+ 1. 使用 Guard Clause(卫语句)提前返回,消除外层条件。
242
+ 2. 将嵌套内部逻辑提取为独立函数。
243
+ 3. 使用策略模式或查找表替代多层 if-else。
244
+ 4. 确保每个分支都有对应的测试用例。
245
+
246
+ ### Agent Checklist
247
+ - [ ] 嵌套深度 <= 3 层
248
+ - [ ] 所有失败路径使用卫语句提前返回
249
+ - [ ] 无箭头型代码
250
+ - [ ] 每个分支路径有测试覆盖
251
+
252
+ ---
253
+
254
+ ## 4. 魔法数字 / 魔法字符串(Magic Numbers / Strings)
255
+
256
+ ### 描述
257
+ 代码中直接使用字面量数字或字符串,不解释其业务含义,导致维护时无法理解意图,修改时容易遗漏。
258
+
259
+ ### 错误示例
260
+ ```python
261
+ def calculate_shipping(weight, distance):
262
+ if weight > 30:
263
+ return distance * 0.15 + 25.0
264
+ elif distance > 500:
265
+ return distance * 0.08 + 10.0
266
+ else:
267
+ return 5.0
268
+
269
+ def check_user_status(user):
270
+ if user['status'] == 3: # 3 是什么状态?
271
+ send_email(user, 'reactivation')
272
+ if user['role'] == 'adm': # 为什么是 adm 不是 admin?
273
+ grant_access(user, 7) # 7 天?7 级?
274
+ ```
275
+
276
+ ### 正确示例
277
+ ```python
278
+ # constants.py
279
+ MAX_STANDARD_WEIGHT_KG = 30
280
+ LONG_DISTANCE_THRESHOLD_KM = 500
281
+ HEAVY_RATE_PER_KM = Decimal("0.15")
282
+ HEAVY_BASE_FEE = Decimal("25.0")
283
+ STANDARD_RATE_PER_KM = Decimal("0.08")
284
+ STANDARD_BASE_FEE = Decimal("10.0")
285
+ DEFAULT_SHIPPING_FEE = Decimal("5.0")
286
+
287
+ class UserStatus(IntEnum):
288
+ ACTIVE = 1
289
+ SUSPENDED = 2
290
+ DEACTIVATED = 3
291
+
292
+ class UserRole(str, Enum):
293
+ ADMIN = "admin"
294
+ MEMBER = "member"
295
+
296
+ REACTIVATION_GRACE_DAYS = 7
297
+
298
+ def calculate_shipping(weight_kg: Decimal, distance_km: Decimal) -> Decimal:
299
+ if weight_kg > MAX_STANDARD_WEIGHT_KG:
300
+ return distance_km * HEAVY_RATE_PER_KM + HEAVY_BASE_FEE
301
+ if distance_km > LONG_DISTANCE_THRESHOLD_KM:
302
+ return distance_km * STANDARD_RATE_PER_KM + STANDARD_BASE_FEE
303
+ return DEFAULT_SHIPPING_FEE
304
+ ```
305
+
306
+ ### 检测方法
307
+ - `ruff` 规则或 `pylint` 的 `magic-value-comparison`。
308
+ - ESLint `no-magic-numbers` 规则。
309
+ - Code Review 中搜索未命名的数字字面量(排除 0、1、-1 等常见哨兵值)。
310
+
311
+ ### 修复步骤
312
+ 1. 搜索代码中所有数字和字符串字面量。
313
+ 2. 为每个字面量确定其业务含义并命名为常量。
314
+ 3. 将相关常量集中到 `constants.py` 或专门的枚举类中。
315
+ 4. 全局替换字面量为常量引用。
316
+ 5. 运行测试确认行为不变。
317
+
318
+ ### Agent Checklist
319
+ - [ ] 无未命名的数字字面量(0、1、-1 除外)
320
+ - [ ] 无硬编码的业务状态字符串
321
+ - [ ] 所有业务枚举使用 Enum 类定义
322
+ - [ ] 常量集中管理且命名体现业务语义
323
+
324
+ ---
325
+
326
+ ## 5. Copy-Paste 编程(Duplicated Code)
327
+
328
+ ### 描述
329
+ 通过复制粘贴实现功能复用,导致相同逻辑散布在多处。修复 Bug 时只改了一处,其他副本仍然存在问题。是技术债增长最快的来源之一。
330
+
331
+ ### 错误示例
332
+ ```python
333
+ # user_api.py
334
+ def get_user(user_id):
335
+ try:
336
+ resp = requests.get(f"{API_BASE}/users/{user_id}", timeout=5)
337
+ resp.raise_for_status()
338
+ data = resp.json()
339
+ if 'error' in data:
340
+ logger.error(f"API error: {data['error']}")
341
+ return None
342
+ return data
343
+ except requests.Timeout:
344
+ logger.error(f"Timeout fetching user {user_id}")
345
+ return None
346
+ except requests.RequestException as e:
347
+ logger.error(f"Request failed: {e}")
348
+ return None
349
+
350
+ # order_api.py -- 几乎完全相同的代码
351
+ def get_order(order_id):
352
+ try:
353
+ resp = requests.get(f"{API_BASE}/orders/{order_id}", timeout=5)
354
+ resp.raise_for_status()
355
+ data = resp.json()
356
+ if 'error' in data:
357
+ logger.error(f"API error: {data['error']}")
358
+ return None
359
+ return data
360
+ except requests.Timeout:
361
+ logger.error(f"Timeout fetching order {order_id}")
362
+ return None
363
+ except requests.RequestException as e:
364
+ logger.error(f"Request failed: {e}")
365
+ return None
366
+ ```
367
+
368
+ ### 正确示例
369
+ ```python
370
+ # http_client.py
371
+ class ApiClient:
372
+ def __init__(self, base_url: str, timeout: int = 5):
373
+ self._session = requests.Session()
374
+ self._base_url = base_url
375
+ self._timeout = timeout
376
+
377
+ def get(self, path: str) -> dict | None:
378
+ try:
379
+ resp = self._session.get(
380
+ f"{self._base_url}{path}", timeout=self._timeout
381
+ )
382
+ resp.raise_for_status()
383
+ data = resp.json()
384
+ if "error" in data:
385
+ logger.error("API error on %s: %s", path, data["error"])
386
+ return None
387
+ return data
388
+ except requests.Timeout:
389
+ logger.error("Timeout on %s", path)
390
+ return None
391
+ except requests.RequestException as e:
392
+ logger.error("Request failed on %s: %s", path, e)
393
+ return None
394
+
395
+ # user_api.py
396
+ def get_user(user_id: str) -> dict | None:
397
+ return api_client.get(f"/users/{user_id}")
398
+
399
+ # order_api.py
400
+ def get_order(order_id: str) -> dict | None:
401
+ return api_client.get(f"/orders/{order_id}")
402
+ ```
403
+
404
+ ### 检测方法
405
+ - `jscpd`(JavaScript/Python 通用重复代码检测器),阈值设为 5%。
406
+ - `pylint` 的 `duplicate-code` (R0801) 检查。
407
+ - Code Review 中搜索相似的 try-except 块、相似的 CRUD 函数签名。
408
+
409
+ ### 修复步骤
410
+ 1. 使用 `jscpd` 或 IDE 的 "Find Duplicates" 定位重复块。
411
+ 2. 分析重复代码的差异点(通常只有 URL、参数名不同)。
412
+ 3. 将共同逻辑抽取为通用函数或基类方法,差异点作为参数传入。
413
+ 4. 替换所有副本为对通用函数的调用。
414
+ 5. 运行全量测试确认行为一致。
415
+
416
+ ### Agent Checklist
417
+ - [ ] `jscpd` 重复率 < 5%
418
+ - [ ] 无结构相同但参数不同的函数对(应抽取公共方法)
419
+ - [ ] CRUD 操作使用统一的 Repository / Client 基类
420
+ - [ ] 修复 Bug 时无需修改多处相同代码
421
+
422
+ ---
423
+
424
+ ## 6. 过早优化(Premature Optimization)
425
+
426
+ ### 描述
427
+ 在没有性能数据支撑的情况下引入复杂的优化手段(自定义缓存、手写数据结构、内联汇编),牺牲了可读性和可维护性,而实际性能瓶颈往往不在此处。
428
+
429
+ ### 错误示例
430
+ ```python
431
+ # "为了性能"手写了 LRU 缓存和位运算优化
432
+ class HandRolledCache:
433
+ def __init__(self, capacity):
434
+ self._capacity = capacity
435
+ self._map = {}
436
+ self._order = [] # 手动维护访问顺序
437
+
438
+ def get(self, key):
439
+ if key in self._map:
440
+ self._order.remove(key) # O(n) 操作,实际上更慢
441
+ self._order.append(key)
442
+ return self._map[key]
443
+ return None
444
+
445
+ def put(self, key, value):
446
+ if len(self._map) >= self._capacity:
447
+ oldest = self._order.pop(0) # O(n) 操作
448
+ del self._map[oldest]
449
+ self._map[key] = value
450
+ self._order.append(key)
451
+
452
+ def compute_tax(amount):
453
+ # "位运算更快" -- 实际上编译器已经做了这个优化
454
+ return (amount * 13) >> 7 # 不等于 * 0.1,结果错误
455
+ ```
456
+
457
+ ### 正确示例
458
+ ```python
459
+ from functools import lru_cache
460
+
461
+ @lru_cache(maxsize=1024)
462
+ def get_product_details(product_id: str) -> Product:
463
+ """使用标准库 LRU 缓存,经过充分测试,O(1) 操作。"""
464
+ return product_repo.get(product_id)
465
+
466
+ def compute_tax(amount: Decimal, rate: Decimal = Decimal("0.13")) -> Decimal:
467
+ """清晰的十进制运算,无精度损失。"""
468
+ return (amount * rate).quantize(Decimal("0.01"), rounding=ROUND_HALF_UP)
469
+ ```
470
+
471
+ ### 检测方法
472
+ - Code Review 中发现自定义实现了标准库已有的功能(缓存、排序、连接池等)。
473
+ - 优化代码没有附带基准测试结果或性能分析报告。
474
+ - 代码注释中出现 "为了性能" 但无对应的 profiling 数据。
475
+
476
+ ### 修复步骤
477
+ 1. 使用 `cProfile` / `py-spy` / Chrome DevTools 定位实际瓶颈。
478
+ 2. 删除无 profiling 数据支撑的自定义优化代码。
479
+ 3. 替换为标准库或成熟第三方库的实现。
480
+ 4. 对真正的瓶颈进行有数据支撑的优化,并记录基准测试结果。
481
+
482
+ ### Agent Checklist
483
+ - [ ] 无自定义实现的标准库功能(缓存、排序、序列化等)
484
+ - [ ] 所有性能优化附带 profiling 数据或基准测试
485
+ - [ ] 使用 Decimal 处理金融计算,不用浮点位运算
486
+ - [ ] 优化代码可读性未明显下降
487
+
488
+ ---
489
+
490
+ ## 7. 无意义命名(Poor Naming)
491
+
492
+ ### 描述
493
+ 变量、函数、类使用无业务语义的名称(`data`、`info`、`temp`、`x`、`handler`、`process`),导致代码阅读者必须追踪上下文才能理解意图。
494
+
495
+ ### 错误示例
496
+ ```python
497
+ def process(data):
498
+ result = []
499
+ for item in data:
500
+ if item['t'] == 1:
501
+ tmp = item['v'] * 1.1
502
+ if tmp > item['l']:
503
+ result.append({'id': item['id'], 'val': tmp, 'flag': True})
504
+ else:
505
+ result.append({'id': item['id'], 'val': item['v'], 'flag': False})
506
+ return result
507
+
508
+ class Manager:
509
+ def handle(self, info):
510
+ d = self.get_data(info)
511
+ r = self.do_stuff(d)
512
+ return r
513
+ ```
514
+
515
+ ### 正确示例
516
+ ```python
517
+ def apply_price_adjustments(products: list[Product]) -> list[PriceResult]:
518
+ results = []
519
+ for product in products:
520
+ if product.category == ProductCategory.TAXABLE:
521
+ adjusted_price = product.base_price * TAX_MULTIPLIER
522
+ exceeds_limit = adjusted_price > product.price_ceiling
523
+ results.append(
524
+ PriceResult(
525
+ product_id=product.id,
526
+ final_price=adjusted_price if exceeds_limit else product.base_price,
527
+ tax_applied=exceeds_limit,
528
+ )
529
+ )
530
+ return results
531
+
532
+ class PricingService:
533
+ def calculate_order_total(self, order: Order) -> OrderTotal:
534
+ line_items = self._compute_line_totals(order)
535
+ discount = self._apply_promotions(order, line_items)
536
+ return OrderTotal(items=line_items, discount=discount)
537
+ ```
538
+
539
+ ### 检测方法
540
+ - 变量名 <= 2 个字符(循环变量 `i`、`j` 除外)。
541
+ - 函数名为泛型词:`process`、`handle`、`do`、`run`、`manage`、`get_data`。
542
+ - 类名为泛型词:`Manager`、`Handler`、`Helper`、`Utils`(无业务前缀)。
543
+ - `pylint` 的 `invalid-name` 规则,ESLint 的 `id-length` 规则。
544
+
545
+ ### 修复步骤
546
+ 1. 为每个变量/函数/类确定其业务含义。
547
+ 2. 使用 "名词 + 动词" 或 "形容词 + 名词" 命名法。
548
+ 3. 函数名以动词开头,描述其行为(`calculate_tax`,而非 `process`)。
549
+ 4. 类名使用具体业务名词(`PricingService`,而非 `Manager`)。
550
+ 5. 在 PR 描述中注明命名变更的理由。
551
+
552
+ ### Agent Checklist
553
+ - [ ] 无 <= 2 字符的变量名(循环索引除外)
554
+ - [ ] 无泛型函数名(process / handle / do / manage)
555
+ - [ ] 无泛型类名(Manager / Handler / Helper / Utils 无业务前缀)
556
+ - [ ] 命名能让不熟悉项目的人理解其业务意图
557
+
558
+ ---
559
+
560
+ ## 全局 Agent Checklist
561
+
562
+ | 检查项 | 阈值 | 工具 |
563
+ |--------|------|------|
564
+ | 单类行数 | <= 300 | `wc -l` / IDE |
565
+ | 单类方法数 | <= 15 | `radon` / `pylint` |
566
+ | 单方法行数 | <= 50 | `wc -l` / IDE |
567
+ | 圈复杂度 | <= 15 | `radon cc` / `eslint complexity` |
568
+ | 嵌套深度 | <= 3 | `pylint` / `eslint max-depth` |
569
+ | 代码重复率 | < 5% | `jscpd` |
570
+ | 魔法数字 | 0 个 | `ruff` / `eslint no-magic-numbers` |
571
+ | 泛型命名 | 0 个 | Code Review / `pylint` |