@mison/ling 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (268) hide show
  1. package/.agents/.shared/ui-ux-pro-max/data/charts.csv +26 -0
  2. package/.agents/.shared/ui-ux-pro-max/data/colors.csv +97 -0
  3. package/.agents/.shared/ui-ux-pro-max/data/icons.csv +101 -0
  4. package/.agents/.shared/ui-ux-pro-max/data/landing.csv +31 -0
  5. package/.agents/.shared/ui-ux-pro-max/data/products.csv +97 -0
  6. package/.agents/.shared/ui-ux-pro-max/data/prompts.csv +24 -0
  7. package/.agents/.shared/ui-ux-pro-max/data/react-performance.csv +45 -0
  8. package/.agents/.shared/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
  9. package/.agents/.shared/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
  10. package/.agents/.shared/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
  11. package/.agents/.shared/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
  12. package/.agents/.shared/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
  13. package/.agents/.shared/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
  14. package/.agents/.shared/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
  15. package/.agents/.shared/ui-ux-pro-max/data/stacks/react.csv +54 -0
  16. package/.agents/.shared/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
  17. package/.agents/.shared/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
  18. package/.agents/.shared/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
  19. package/.agents/.shared/ui-ux-pro-max/data/stacks/vue.csv +50 -0
  20. package/.agents/.shared/ui-ux-pro-max/data/styles.csv +59 -0
  21. package/.agents/.shared/ui-ux-pro-max/data/typography.csv +58 -0
  22. package/.agents/.shared/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
  23. package/.agents/.shared/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
  24. package/.agents/.shared/ui-ux-pro-max/data/web-interface.csv +31 -0
  25. package/.agents/.shared/ui-ux-pro-max/scripts/core.py +258 -0
  26. package/.agents/.shared/ui-ux-pro-max/scripts/design_system.py +1067 -0
  27. package/.agents/.shared/ui-ux-pro-max/scripts/search.py +106 -0
  28. package/.agents/ARCHITECTURE.md +285 -0
  29. package/.agents/agents/backend-specialist.md +268 -0
  30. package/.agents/agents/code-archaeologist.md +106 -0
  31. package/.agents/agents/database-architect.md +225 -0
  32. package/.agents/agents/debugger.md +225 -0
  33. package/.agents/agents/devops-engineer.md +242 -0
  34. package/.agents/agents/documentation-writer.md +104 -0
  35. package/.agents/agents/explorer-agent.md +73 -0
  36. package/.agents/agents/frontend-specialist.md +618 -0
  37. package/.agents/agents/game-developer.md +162 -0
  38. package/.agents/agents/mobile-developer.md +382 -0
  39. package/.agents/agents/orchestrator.md +436 -0
  40. package/.agents/agents/penetration-tester.md +188 -0
  41. package/.agents/agents/performance-optimizer.md +187 -0
  42. package/.agents/agents/product-manager.md +112 -0
  43. package/.agents/agents/product-owner.md +95 -0
  44. package/.agents/agents/project-planner.md +405 -0
  45. package/.agents/agents/qa-automation-engineer.md +103 -0
  46. package/.agents/agents/security-auditor.md +170 -0
  47. package/.agents/agents/seo-specialist.md +111 -0
  48. package/.agents/agents/test-engineer.md +158 -0
  49. package/.agents/mcp_config.json +22 -0
  50. package/.agents/rules/GEMINI.md +273 -0
  51. package/.agents/scripts/auto_preview.py +148 -0
  52. package/.agents/scripts/checklist.py +217 -0
  53. package/.agents/scripts/session_manager.py +120 -0
  54. package/.agents/scripts/verify_all.py +327 -0
  55. package/.agents/skills/api-patterns/SKILL.md +84 -0
  56. package/.agents/skills/api-patterns/api-style.md +42 -0
  57. package/.agents/skills/api-patterns/auth.md +24 -0
  58. package/.agents/skills/api-patterns/documentation.md +26 -0
  59. package/.agents/skills/api-patterns/graphql.md +41 -0
  60. package/.agents/skills/api-patterns/rate-limiting.md +31 -0
  61. package/.agents/skills/api-patterns/response.md +37 -0
  62. package/.agents/skills/api-patterns/rest.md +40 -0
  63. package/.agents/skills/api-patterns/scripts/api_validator.py +211 -0
  64. package/.agents/skills/api-patterns/security-testing.md +122 -0
  65. package/.agents/skills/api-patterns/trpc.md +41 -0
  66. package/.agents/skills/api-patterns/versioning.md +22 -0
  67. package/.agents/skills/app-builder/SKILL.md +75 -0
  68. package/.agents/skills/app-builder/agent-coordination.md +74 -0
  69. package/.agents/skills/app-builder/feature-building.md +53 -0
  70. package/.agents/skills/app-builder/project-detection.md +34 -0
  71. package/.agents/skills/app-builder/scaffolding.md +118 -0
  72. package/.agents/skills/app-builder/tech-stack.md +40 -0
  73. package/.agents/skills/app-builder/templates/SKILL.md +39 -0
  74. package/.agents/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
  75. package/.agents/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
  76. package/.agents/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
  77. package/.agents/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
  78. package/.agents/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
  79. package/.agents/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
  80. package/.agents/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
  81. package/.agents/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +122 -0
  82. package/.agents/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +122 -0
  83. package/.agents/skills/app-builder/templates/nextjs-static/TEMPLATE.md +169 -0
  84. package/.agents/skills/app-builder/templates/nuxt-app/TEMPLATE.md +134 -0
  85. package/.agents/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
  86. package/.agents/skills/app-builder/templates/react-native-app/TEMPLATE.md +119 -0
  87. package/.agents/skills/architecture/SKILL.md +57 -0
  88. package/.agents/skills/architecture/context-discovery.md +43 -0
  89. package/.agents/skills/architecture/examples.md +94 -0
  90. package/.agents/skills/architecture/pattern-selection.md +68 -0
  91. package/.agents/skills/architecture/patterns-reference.md +50 -0
  92. package/.agents/skills/architecture/trade-off-analysis.md +77 -0
  93. package/.agents/skills/bash-linux/SKILL.md +201 -0
  94. package/.agents/skills/behavioral-modes/SKILL.md +264 -0
  95. package/.agents/skills/brainstorming/SKILL.md +164 -0
  96. package/.agents/skills/brainstorming/dynamic-questioning.md +359 -0
  97. package/.agents/skills/clean-code/SKILL.md +200 -0
  98. package/.agents/skills/code-review-checklist/SKILL.md +125 -0
  99. package/.agents/skills/database-design/SKILL.md +54 -0
  100. package/.agents/skills/database-design/database-selection.md +43 -0
  101. package/.agents/skills/database-design/indexing.md +39 -0
  102. package/.agents/skills/database-design/migrations.md +50 -0
  103. package/.agents/skills/database-design/optimization.md +36 -0
  104. package/.agents/skills/database-design/orm-selection.md +30 -0
  105. package/.agents/skills/database-design/schema-design.md +56 -0
  106. package/.agents/skills/database-design/scripts/schema_validator.py +172 -0
  107. package/.agents/skills/deployment-procedures/SKILL.md +241 -0
  108. package/.agents/skills/doc.md +177 -0
  109. package/.agents/skills/documentation-templates/SKILL.md +194 -0
  110. package/.agents/skills/frontend-design/SKILL.md +418 -0
  111. package/.agents/skills/frontend-design/animation-guide.md +331 -0
  112. package/.agents/skills/frontend-design/color-system.md +307 -0
  113. package/.agents/skills/frontend-design/decision-trees.md +418 -0
  114. package/.agents/skills/frontend-design/motion-graphics.md +306 -0
  115. package/.agents/skills/frontend-design/scripts/accessibility_checker.py +183 -0
  116. package/.agents/skills/frontend-design/scripts/ux_audit.py +727 -0
  117. package/.agents/skills/frontend-design/typography-system.md +345 -0
  118. package/.agents/skills/frontend-design/ux-psychology.md +1118 -0
  119. package/.agents/skills/frontend-design/visual-effects.md +383 -0
  120. package/.agents/skills/game-development/2d-games/SKILL.md +119 -0
  121. package/.agents/skills/game-development/3d-games/SKILL.md +135 -0
  122. package/.agents/skills/game-development/SKILL.md +167 -0
  123. package/.agents/skills/game-development/game-art/SKILL.md +185 -0
  124. package/.agents/skills/game-development/game-audio/SKILL.md +190 -0
  125. package/.agents/skills/game-development/game-design/SKILL.md +129 -0
  126. package/.agents/skills/game-development/mobile-games/SKILL.md +108 -0
  127. package/.agents/skills/game-development/multiplayer/SKILL.md +132 -0
  128. package/.agents/skills/game-development/pc-games/SKILL.md +144 -0
  129. package/.agents/skills/game-development/vr-ar/SKILL.md +123 -0
  130. package/.agents/skills/game-development/web-games/SKILL.md +150 -0
  131. package/.agents/skills/geo-fundamentals/SKILL.md +155 -0
  132. package/.agents/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
  133. package/.agents/skills/i18n-localization/SKILL.md +154 -0
  134. package/.agents/skills/i18n-localization/scripts/i18n_checker.py +241 -0
  135. package/.agents/skills/intelligent-routing/SKILL.md +335 -0
  136. package/.agents/skills/lint-and-validate/SKILL.md +44 -0
  137. package/.agents/skills/lint-and-validate/scripts/lint_runner.py +184 -0
  138. package/.agents/skills/lint-and-validate/scripts/type_coverage.py +173 -0
  139. package/.agents/skills/mcp-builder/SKILL.md +176 -0
  140. package/.agents/skills/mobile-design/SKILL.md +394 -0
  141. package/.agents/skills/mobile-design/decision-trees.md +516 -0
  142. package/.agents/skills/mobile-design/mobile-backend.md +491 -0
  143. package/.agents/skills/mobile-design/mobile-color-system.md +420 -0
  144. package/.agents/skills/mobile-design/mobile-debugging.md +122 -0
  145. package/.agents/skills/mobile-design/mobile-design-thinking.md +355 -0
  146. package/.agents/skills/mobile-design/mobile-navigation.md +458 -0
  147. package/.agents/skills/mobile-design/mobile-performance.md +767 -0
  148. package/.agents/skills/mobile-design/mobile-testing.md +356 -0
  149. package/.agents/skills/mobile-design/mobile-typography.md +432 -0
  150. package/.agents/skills/mobile-design/platform-android.md +666 -0
  151. package/.agents/skills/mobile-design/platform-ios.md +561 -0
  152. package/.agents/skills/mobile-design/scripts/mobile_audit.py +670 -0
  153. package/.agents/skills/mobile-design/touch-psychology.md +537 -0
  154. package/.agents/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +311 -0
  155. package/.agents/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +241 -0
  156. package/.agents/skills/nextjs-react-expert/3-server-server-side-performance.md +489 -0
  157. package/.agents/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +263 -0
  158. package/.agents/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +581 -0
  159. package/.agents/skills/nextjs-react-expert/6-rendering-rendering-performance.md +431 -0
  160. package/.agents/skills/nextjs-react-expert/7-js-javascript-performance.md +683 -0
  161. package/.agents/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +149 -0
  162. package/.agents/skills/nextjs-react-expert/SKILL.md +286 -0
  163. package/.agents/skills/nextjs-react-expert/scripts/convert_rules.py +222 -0
  164. package/.agents/skills/nextjs-react-expert/scripts/react_performance_checker.py +252 -0
  165. package/.agents/skills/nodejs-best-practices/SKILL.md +333 -0
  166. package/.agents/skills/parallel-agents/SKILL.md +193 -0
  167. package/.agents/skills/performance-profiling/SKILL.md +149 -0
  168. package/.agents/skills/performance-profiling/scripts/lighthouse_audit.py +120 -0
  169. package/.agents/skills/plan-writing/SKILL.md +152 -0
  170. package/.agents/skills/powershell-windows/SKILL.md +166 -0
  171. package/.agents/skills/python-patterns/SKILL.md +441 -0
  172. package/.agents/skills/red-team-tactics/SKILL.md +203 -0
  173. package/.agents/skills/refactoring-patterns/SKILL.md +43 -0
  174. package/.agents/skills/rust-pro/SKILL.md +190 -0
  175. package/.agents/skills/seo-fundamentals/SKILL.md +135 -0
  176. package/.agents/skills/seo-fundamentals/scripts/seo_checker.py +215 -0
  177. package/.agents/skills/server-management/SKILL.md +161 -0
  178. package/.agents/skills/systematic-debugging/SKILL.md +114 -0
  179. package/.agents/skills/tailwind-patterns/SKILL.md +269 -0
  180. package/.agents/skills/tdd-workflow/SKILL.md +149 -0
  181. package/.agents/skills/testing-patterns/SKILL.md +178 -0
  182. package/.agents/skills/testing-patterns/scripts/test_runner.py +219 -0
  183. package/.agents/skills/vulnerability-scanner/SKILL.md +276 -0
  184. package/.agents/skills/vulnerability-scanner/checklists.md +131 -0
  185. package/.agents/skills/vulnerability-scanner/scripts/__pycache__/security_scan.cpython-310.pyc +0 -0
  186. package/.agents/skills/vulnerability-scanner/scripts/security_scan.py +524 -0
  187. package/.agents/skills/web-design-guidelines/SKILL.md +57 -0
  188. package/.agents/skills/webapp-testing/SKILL.md +187 -0
  189. package/.agents/skills/webapp-testing/scripts/playwright_runner.py +173 -0
  190. package/.agents/workflows/brainstorm.md +113 -0
  191. package/.agents/workflows/create.md +59 -0
  192. package/.agents/workflows/debug.md +103 -0
  193. package/.agents/workflows/deploy.md +176 -0
  194. package/.agents/workflows/enhance.md +63 -0
  195. package/.agents/workflows/orchestrate.md +242 -0
  196. package/.agents/workflows/plan.md +89 -0
  197. package/.agents/workflows/preview.md +80 -0
  198. package/.agents/workflows/restore-localize-compat.md +525 -0
  199. package/.agents/workflows/status.md +86 -0
  200. package/.agents/workflows/test.md +144 -0
  201. package/.agents/workflows/ui-ux-pro-max.md +295 -0
  202. package/.spec/profiles/codex/AGENTS.spec.md +7 -0
  203. package/.spec/profiles/codex/ling.spec.rules.md +4 -0
  204. package/.spec/profiles/gemini/GEMINI.spec.md +5 -0
  205. package/.spec/references/README.md +36 -0
  206. package/.spec/references/cse-quickstart.md +96 -0
  207. package/.spec/references/gda-framework.md +394 -0
  208. package/.spec/references/harness-engineering-digest.md +93 -0
  209. package/.spec/skills/cybernetic-systems-engineering/SKILL.md +792 -0
  210. package/.spec/skills/cybernetic-systems-engineering/agents/openai.yaml +5 -0
  211. package/.spec/skills/cybernetic-systems-engineering/assets/quickstart.md +96 -0
  212. package/.spec/skills/cybernetic-systems-engineering/references/README.md +36 -0
  213. package/.spec/skills/cybernetic-systems-engineering/references/gda-framework.md +394 -0
  214. package/.spec/skills/cybernetic-systems-engineering/scripts/issues.csv +20 -0
  215. package/.spec/skills/harness-engineering/SKILL.md +100 -0
  216. package/.spec/skills/harness-engineering/agents/openai.yaml +4 -0
  217. package/.spec/skills/harness-engineering/references/harness-engineering-digest.md +93 -0
  218. package/.spec/templates/driver-prompt.md +7 -0
  219. package/.spec/templates/handoff.md +9 -0
  220. package/.spec/templates/issues.template.csv +2 -0
  221. package/.spec/templates/phase-acceptance.md +9 -0
  222. package/.spec/templates/review-report.md +9 -0
  223. package/AGENT_FLOW.md +609 -0
  224. package/CHANGELOG.md +43 -0
  225. package/LICENSE +21 -0
  226. package/README.md +359 -0
  227. package/bin/adapters/base.js +63 -0
  228. package/bin/adapters/codex.js +421 -0
  229. package/bin/adapters/gemini.js +157 -0
  230. package/bin/ag-kit.js +2266 -0
  231. package/bin/core/builder.js +80 -0
  232. package/bin/core/generator.js +59 -0
  233. package/bin/core/resource-loader.js +64 -0
  234. package/bin/core/transformer.js +208 -0
  235. package/bin/interactive.js +65 -0
  236. package/bin/ling.js +3 -0
  237. package/bin/utils/atomic-writer.js +97 -0
  238. package/bin/utils/git-helper.js +68 -0
  239. package/bin/utils/managed-block.js +65 -0
  240. package/bin/utils/manifest.js +244 -0
  241. package/bin/utils.js +89 -0
  242. package/docs/PLAN.md +54 -0
  243. package/docs/TECH.md +191 -0
  244. package/package.json +56 -0
  245. package/scripts/ci-verify.js +110 -0
  246. package/scripts/clean.js +123 -0
  247. package/scripts/health-check.js +143 -0
  248. package/scripts/health-check.sh +6 -0
  249. package/scripts/postinstall-check.js +112 -0
  250. package/scripts/run-tests.js +49 -0
  251. package/tests/atomic-writer.test.js +47 -0
  252. package/tests/clean-script.test.js +77 -0
  253. package/tests/cli-smoke.test.js +479 -0
  254. package/tests/codex-adapter.test.js +132 -0
  255. package/tests/doctor.test.js +94 -0
  256. package/tests/gemini-adapter.test.js +30 -0
  257. package/tests/generator.test.js +48 -0
  258. package/tests/git-helper.test.js +53 -0
  259. package/tests/global-sync.test.js +133 -0
  260. package/tests/health-check-script.test.js +34 -0
  261. package/tests/managed-block.test.js +41 -0
  262. package/tests/manifest.test.js +97 -0
  263. package/tests/package-tarball.test.js +33 -0
  264. package/tests/phase-c.test.js +107 -0
  265. package/tests/spec-profile.test.js +86 -0
  266. package/tests/standards-compliance.test.js +303 -0
  267. package/tests/transformer.test.js +74 -0
  268. package/tests/versioning.test.js +51 -0
@@ -0,0 +1,134 @@
1
+ ---
2
+ name: nuxt-app
3
+ description: Nuxt 4 Full-Stack template(全栈模板)。Vue 3(Vapor Mode,蒸汽模式)、Pinia、Tailwind v4、Prisma。
4
+ ---
5
+
6
+ # Nuxt 4 Full-Stack Template(全栈模板,2026 版)
7
+
8
+ Nuxt 4 的现代全栈模板,使用 Vapor Mode(蒸汽模式)与 Tailwind v4 优化性能。
9
+
10
+ ## Tech Stack(技术栈)
11
+
12
+ | Component(组件) | Technology(技术) | Version / Notes(版本/说明) |
13
+ | --- | --- | --- |
14
+ | Framework(框架) | Nuxt | v4.0+(App Directory(应用目录)结构) |
15
+ | UI Engine(UI 引擎) | Vue | v3.6+(启用 Vapor Mode) |
16
+ | Language(语言) | TypeScript | v5+(Strict Mode,严格模式) |
17
+ | State(状态) | Pinia | v3+(Store syntax(Store 语法)) |
18
+ | Database(数据库) | PostgreSQL | Prisma ORM(对象关系映射) |
19
+ | Styling(样式) | Tailwind CSS | v4.0(Vite 插件,零配置) |
20
+ | UI Lib(组件库) | Nuxt UI | v3(Tailwind v4 原生) |
21
+ | Validation(校验) | Zod | Schema validation(模式校验) |
22
+
23
+ ---
24
+
25
+ ## Directory Structure(Nuxt 4 标准)
26
+
27
+ 使用 `app/` 结构保持根目录整洁。
28
+
29
+ ```
30
+ project-name/
31
+ +-- app/ # Application Source(应用源码)
32
+ | +-- assets/
33
+ | | +-- css/
34
+ | | +-- main.css # Tailwind v4 导入
35
+ | +-- components/ # Auto-imported components(自动导入组件)
36
+ | +-- composables/ # Auto-imported logic(自动导入逻辑)
37
+ | +-- layouts/
38
+ | +-- pages/ # File-based routing(基于文件路由)
39
+ | +-- app.vue # Root component(根组件)
40
+ | +-- router.options.ts
41
+ +-- server/ # Nitro Server Engine(服务端引擎)
42
+ | +-- api/ # API Routes(接口路由,例如 /api/users)
43
+ | +-- routes/ # Server Routes(服务端路由)
44
+ | +-- utils/ # Server-only helpers(仅服务端辅助,Prisma)
45
+ +-- prisma/
46
+ | +-- schema.prisma
47
+ +-- public/
48
+ +-- nuxt.config.ts # Main Config(主配置)
49
+ +-- package.json
50
+ ```
51
+
52
+ ---
53
+
54
+ ## Key Concepts(2026)
55
+
56
+ | Concept(概念) | Description(说明) | Future Update(未来更新) |
57
+ | --- | --- | --- |
58
+ | **App Directory(应用目录)** | `app/` | 分离应用源码与根配置文件。 |
59
+ | **Vapor Mode(蒸汽模式)** | 性能优先 | 无需 Virtual DOM(虚拟 DOM,类似 SolidJS)。在 `nuxt.config` 中启用。 |
60
+ | **Server Functions(服务端函数)** | RPC 风格调用 | 从客户端直接调用服务端函数(逐步替代手写 API routes(API 路由))。 |
61
+ | **Tailwind v4** | CSS-first | 主题直接在 CSS 中配置,无需 `tailwind.config.js`。 |
62
+ | **Nuxt Islands(岛屿组件)** | Server Components(服务端组件) | 在服务端隔离渲染组件(`<NuxtIsland name="..." />`)。 |
63
+
64
+ ---
65
+
66
+ ## Environment Variables(环境变量)
67
+
68
+ | Variable(变量) | Purpose(用途) |
69
+ | --- | --- |
70
+ | DATABASE_URL | Prisma connection string(PostgreSQL 连接字符串) |
71
+ | NUXT_PUBLIC_APP_URL | Canonical URL(规范 URL) |
72
+ | NUXT_SESSION_PASSWORD | Session encryption key(会话加密密钥) |
73
+
74
+ ---
75
+
76
+ ## Setup Steps(设置步骤)
77
+
78
+ 1. Initialize Project(初始化项目):
79
+ ```bash
80
+ npx nuxi@latest init my-app
81
+ # 如有提示,选择 "Nuxt 4 structure"
82
+ ```
83
+
84
+ 2. Install Core Deps(安装核心依赖):
85
+ ```bash
86
+ npm install @pinia/nuxt @prisma/client zod
87
+ npm install -D prisma
88
+ ```
89
+
90
+ 3. Setup Tailwind v4(设置 Tailwind v4):
91
+ 安装 Vite 插件(新标准):
92
+ ```bash
93
+ npm install tailwindcss @tailwindcss/vite
94
+ ```
95
+
96
+ 添加到 `nuxt.config.ts`:
97
+ ```ts
98
+ import tailwindcss from '@tailwindcss/vite'
99
+ export default defineNuxtConfig({
100
+ vite: {
101
+ plugins: [tailwindcss()]
102
+ },
103
+ css: ['~/assets/css/main.css']
104
+ })
105
+ ```
106
+
107
+ 4. Configure CSS(配置 CSS):
108
+ 在 `app/assets/css/main.css` 中:
109
+ ```css
110
+ @import "tailwindcss";
111
+ @theme {
112
+ --color-primary: oklch(0.6 0.15 150);
113
+ }
114
+ ```
115
+
116
+ 5. 开发运行:
117
+ ```bash
118
+ npm run dev
119
+ # 使用 Turbo/Vite 运行
120
+ ```
121
+
122
+ ---
123
+
124
+ ## 最佳实践
125
+
126
+ - **Vapor Mode(Vapor 模式)**:为渲染密集型组件启用:
127
+ ```ts
128
+ <script setup lang="ts" vapor>
129
+ // 此组件会编译为 Vapor 模式(无 VDOM)
130
+ </script>
131
+ ```
132
+ - **Data Fetching(数据获取)**:对仅客户端任务使用 `useFetch` + `server: false`,或使用 Server Functions 获得更好的类型安全。
133
+ - **State(状态)**:使用 `defineStore`(Pinia)管理全局状态,Nuxt 的 `useState` 用于服务端/客户端共享的简单状态。
134
+ - **Type Safety(类型安全)**:为 API routes(API 路由)自动生成类型(`$fetch` 自动类型化)。
@@ -0,0 +1,83 @@
1
+ ---
2
+ name: python-fastapi
3
+ description: FastAPI REST API template principles(API 模板原则)。SQLAlchemy、Pydantic、Alembic。
4
+ ---
5
+
6
+ # FastAPI API Template(API 模板)
7
+
8
+ ## Tech Stack(技术栈)
9
+
10
+ | Component(组件) | Technology(技术) |
11
+ | --- | --- |
12
+ | Framework(框架) | FastAPI |
13
+ | Language(语言) | Python 3.11+ |
14
+ | ORM | SQLAlchemy 2.0 |
15
+ | Validation(校验) | Pydantic v2 |
16
+ | Migrations(迁移) | Alembic |
17
+ | Auth(认证) | JWT + passlib(密码哈希) |
18
+
19
+ ---
20
+
21
+ ## Directory Structure(目录结构)
22
+
23
+ ```
24
+ project-name/
25
+ +-- alembic/ # Migrations(迁移)
26
+ +-- app/
27
+ | +-- main.py # FastAPI app(应用)
28
+ | +-- config.py # Settings(配置)
29
+ | +-- database.py # DB connection(数据库连接)
30
+ | +-- models/ # SQLAlchemy models(模型)
31
+ | +-- schemas/ # Pydantic schemas(模式)
32
+ | +-- routers/ # API routes(路由)
33
+ | +-- services/ # Business logic(业务逻辑)
34
+ | +-- dependencies/ # Dependency Injection(依赖注入)
35
+ | +-- utils/
36
+ +-- tests/
37
+ +-- .env.example
38
+ +-- requirements.txt
39
+ ```
40
+
41
+ ---
42
+
43
+ ## Key Concepts(关键概念)
44
+
45
+ | Concept(概念) | Description(说明) |
46
+ | --- | --- |
47
+ | Async(异步) | async/await throughout(全程 async/await) |
48
+ | Dependency Injection(依赖注入) | FastAPI Depends |
49
+ | Pydantic v2 | Validation + serialization(验证 + 序列化) |
50
+ | SQLAlchemy 2.0 | Async sessions(异步会话) |
51
+
52
+ ---
53
+
54
+ ## API Structure(API 结构)
55
+
56
+ | Layer(层) | Responsibility(职责) |
57
+ | --- | --- |
58
+ | Routers(路由层) | HTTP handling(HTTP 处理) |
59
+ | Dependencies(依赖层) | Auth, validation(认证、校验) |
60
+ | Services(服务层) | Business logic(业务逻辑) |
61
+ | Models(模型层) | Database entities(数据库实体) |
62
+ | Schemas(模式层) | Request/response(请求/响应) |
63
+
64
+ ---
65
+
66
+ ## Setup Steps(设置步骤)
67
+
68
+ 1. `python -m venv venv`
69
+ 2. `source venv/bin/activate`
70
+ 3. `pip install fastapi uvicorn sqlalchemy alembic pydantic`
71
+ 4. Create `.env`(创建)
72
+ 5. `alembic upgrade head`
73
+ 6. `uvicorn app.main:app --reload`
74
+
75
+ ---
76
+
77
+ ## Best Practices(最佳实践)
78
+
79
+ - Use async everywhere(全程使用 async)
80
+ - Pydantic v2 for validation(用于验证)
81
+ - SQLAlchemy 2.0 async sessions(异步会话)
82
+ - Alembic for migrations(迁移)
83
+ - pytest-asyncio for tests(测试)
@@ -0,0 +1,119 @@
1
+ ---
2
+ name: react-native-app
3
+ description: React Native mobile app template(移动应用模板)原则。Expo、TypeScript、导航。
4
+ ---
5
+
6
+ # React Native App Template(应用模板,2026 版)
7
+
8
+ 现代移动应用模板,针对 New Architecture(新架构)与 React 19 优化。
9
+
10
+ ## Tech Stack(技术栈)
11
+
12
+ | Component(组件) | Technology(技术) | Version / Notes(版本/说明) |
13
+ | --- | --- | --- |
14
+ | Core(核心) | React Native + Expo | SDK 52+(启用新架构) |
15
+ | Language(语言) | TypeScript | v5+(Strict Mode,严格模式) |
16
+ | UI Logic(UI 逻辑) | React | v19(React Compiler(编译器),自动记忆化) |
17
+ | Navigation(导航) | Expo Router | v4+(File-based(基于文件)、Universal Links(通用链接)) |
18
+ | Styling(样式) | NativeWind | v4.0(Tailwind v4,CSS-first 配置) |
19
+ | State(状态) | Zustand + React Query | v5+(异步状态管理) |
20
+ | Storage(存储) | Expo SecureStore | 加密本地存储 |
21
+
22
+ ---
23
+
24
+ ## Directory Structure(目录结构)
25
+
26
+ Expo Router 与 NativeWind v4 的标准化结构。
27
+
28
+ ```
29
+ project-name/
30
+ +-- app/ # Expo Router(基于文件的路由)
31
+ | +-- _layout.tsx # Root Layout(Stack/Tabs 配置)
32
+ | +-- index.tsx # Main Screen(主屏幕)
33
+ | +-- (tabs)/ # Tab Bar Route Group(标签栏路由组)
34
+ | | +-- _layout.tsx
35
+ | | +-- home.tsx
36
+ | | +-- profile.tsx
37
+ | +-- +not-found.tsx # 404 Page(404 页面)
38
+ | +-- [id].tsx # Dynamic Route(类型化)
39
+ +-- components/
40
+ | +-- ui/ # Primitive Components(Button, Text)
41
+ | +-- features/ # Complex Components(复杂组件)
42
+ +-- hooks/ # Custom Hooks(自定义 hooks)
43
+ +-- lib/
44
+ | +-- api.ts # Axios/Fetch 客户端
45
+ | +-- storage.ts # SecureStore wrapper(封装)
46
+ +-- store/ # Zustand store(状态仓库)
47
+ +-- constants/ # 颜色、主题配置
48
+ +-- assets/ # 字体、图片
49
+ +-- global.css # NativeWind v4 entry(入口点)
50
+ +-- tailwind.config.ts # Tailwind 配置(如需自定义主题)
51
+ +-- babel.config.js # NativeWind Babel 插件
52
+ +-- app.json # Expo 配置
53
+ ```
54
+
55
+ ---
56
+
57
+ ## Navigation Patterns(Expo Router)
58
+
59
+ | Pattern(模式) | Description(描述) | Implement(实现) |
60
+ | --- | --- | --- |
61
+ | Stack(堆栈) | 层级导航(Push/Pop) | `<Stack />` 在 `_layout.tsx` |
62
+ | Tabs(标签) | 底部导航栏 | `<Tabs />` 在 `(tabs)/_layout.tsx` |
63
+ | Drawer(抽屉) | 侧滑菜单 | `expo-router/drawer` |
64
+ | Modals(模态) | 覆盖屏幕 | Stack 页面中的 `presentation: 'modal'` |
65
+
66
+ ---
67
+
68
+ ## Key Packages & Purpose(关键依赖与用途)
69
+
70
+ | Package(依赖) | Purpose(用途) |
71
+ | --- | --- |
72
+ | expo-router | 基于文件的路由(类似 Next.js) |
73
+ | nativewind | 在 React Native 中使用 Tailwind CSS 类 |
74
+ | react-native-reanimated | 平滑动画(在 UI(用户界面)线程上运行) |
75
+ | @tanstack/react-query | 服务端状态管理、缓存、预取 |
76
+ | zustand | 全局状态管理(比 Redux 更轻) |
77
+ | expo-image | 优化图像渲染以提升性能 |
78
+
79
+ ---
80
+
81
+ ## Setup Steps(2026 标准)
82
+
83
+ 1. Initialize Project(初始化项目):
84
+ ```bash
85
+ npx create-expo-app@latest my-app --template default
86
+ cd my-app
87
+ ```
88
+
89
+ 2. Install Core Dependencies(安装核心依赖):
90
+ ```bash
91
+ npx expo install expo-router react-native-safe-area-context react-native-screens expo-link expo-constants expo-status-bar
92
+ ```
93
+
94
+ 3. Install NativeWind v4(安装 NativeWind v4):
95
+ ```bash
96
+ npm install nativewind tailwindcss react-native-reanimated
97
+ ```
98
+
99
+ 4. Configure NativeWind(Babel 与 CSS):
100
+ - 在 `babel.config.js` 添加插件:`plugins: ["nativewind/babel"]`。
101
+ - 创建 `global.css` 并包含:`@import "tailwindcss";`。
102
+ - 在 `app/_layout.tsx` 中导入 `global.css`。
103
+
104
+ 5. Run Project(运行项目):
105
+ ```bash
106
+ npx expo start -c
107
+ # 按 'i' 启动 iOS 模拟器或按 'a' 启动 Android 模拟器
108
+ ```
109
+
110
+ ---
111
+
112
+ ## Best Practices(更新)
113
+
114
+ - **New Architecture(新架构)**:确保 `app.json` 中 `newArchEnabled: true`,以利用 TurboModules 与 Fabric Renderer。
115
+ - **Typed Routes(类型化路由)**:使用 Expo Router 的 “Typed Routes” 特性实现类型安全路由(例如 `router.push('/path')`)。
116
+ - **React 19**:借助 React Compiler(编译器,如已启用)减少 `useMemo` 或 `useCallback` 的使用。
117
+ - **组件**:使用 NativeWind `className` 构建 UI(用户界面)原语(Box, Text),提高可复用性。
118
+ - **资产**:使用 `expo-image` 代替默认 `<Image />`,提升缓存与性能。
119
+ - **API(接口)**:使用 TanStack Query 包装 API 调用,避免在 `useEffect` 中直接调用。
@@ -0,0 +1,57 @@
1
+ ---
2
+ name: architecture
3
+ description: Architectural decision-making framework(架构决策框架)。Requirements analysis(需求分析)、trade-off evaluation(权衡评估)、ADR documentation(架构决策记录)。Use when making architecture decisions or analyzing system design(用于架构决策与系统设计分析)。
4
+ allowed-tools: Read, Glob, Grep
5
+ ---
6
+
7
+ # Architecture Decision Framework(架构决策框架)
8
+
9
+ > "Requirements drive architecture. Trade-offs inform decisions. ADRs capture rationale."(需求驱动架构,权衡决定结论,ADR 记录依据。)
10
+
11
+ ## Selective Reading Rule(选择性阅读规则)
12
+
13
+ **Read ONLY files relevant to the request(仅阅读与请求相关的文档)!** Check the content map, find what you need(查阅内容地图,找到所需信息)。
14
+
15
+ | File(文件) | Description(描述) | When to Read(阅读时机) |
16
+ | ---- | ---- | -------- |
17
+ | `context-discovery.md` | Questions to ask, project classification(提问列表、项目分类) | Starting architecture design(开始架构设计) |
18
+ | `trade-off-analysis.md` | ADR templates, trade-off framework(ADR 模板、权衡分析框架) | Documenting decisions(记录决策) |
19
+ | `pattern-selection.md` | Decision trees, anti-patterns(决策树、反模式) | Choosing patterns(选择模式) |
20
+ | `examples.md` | MVP, SaaS, Enterprise examples(示例) | Reference implementations(参考实现) |
21
+ | `patterns-reference.md` | Quick lookup for patterns(模式速查) | Pattern comparison(模式对比) |
22
+
23
+ ---
24
+
25
+ ## Related Skills(相关技能)
26
+
27
+ | Skill(技能) | Use For(用途) |
28
+ | ------------ | ---- |
29
+ | `@[skills/database-design]` | Database schema design(数据库模式设计) |
30
+ | `@[skills/api-patterns]` | API design patterns(API 设计模式) |
31
+ | `@[skills/deployment-procedures]` | Deployment architecture(部署架构) |
32
+
33
+ ---
34
+
35
+ ## Core Principle(核心原则)
36
+
37
+ **"Simplicity is the ultimate sophistication."(至简即至繁)**
38
+
39
+ - Start simple(从简单开始)。
40
+ - Add complexity ONLY when proven necessary(仅在必要时增加复杂性)。
41
+ - You can always add patterns later(随时可补充模式)。
42
+ - Removing complexity is MUCH harder than adding it(移除复杂性远比增加难)。
43
+
44
+ ---
45
+
46
+ ## Validation Checklist(验证检查清单)
47
+
48
+ Before finalizing architecture(最终确定架构之前):
49
+
50
+ - [ ] **Requirements clearly understood(需求已清晰理解)。**
51
+ - [ ] **Constraints identified(约束条件已明确)。**
52
+ - [ ] **Each decision has trade-off analysis(每项决策有权衡分析)。**
53
+ - [ ] **Simpler alternatives considered(已考虑更简单替代方案)。**
54
+ - [ ] **ADRs written for significant decisions(重大决策已编写 ADR)。**
55
+ - [ ] **Team expertise matches chosen patterns(团队能力与模式匹配)。**
56
+
57
+ ---
@@ -0,0 +1,43 @@
1
+ # 上下文发现
2
+
3
+ > 在提出任何架构方案前,先收集上下文信息。
4
+
5
+ ## 问题层级(先问用户)
6
+
7
+ 1. **规模(Scale)**
8
+ - 用户量级是多少?(10、1K、100K、1M+)
9
+ - 数据规模是多少?(MB、GB、TB)
10
+ - 事务速率是多少?(每秒/每分钟)
11
+
12
+ 2. **团队(Team)**
13
+ - 个人开发还是团队协作?
14
+ - 团队规模与能力结构?
15
+ - 是分布式团队还是同地办公?
16
+
17
+ 3. **时间线(Timeline)**
18
+ - 是 MVP(最小可行产品)/原型,还是长期产品?
19
+ - 上线时效压力有多大?
20
+
21
+ 4. **业务域(Domain)**
22
+ - 以 CRUD(增删改查)为主,还是业务逻辑复杂?
23
+ - 是否有实时性要求?
24
+ - 是否有合规/监管要求?
25
+
26
+ 5. **约束条件(Constraints)**
27
+ - 是否有预算限制?
28
+ - 是否要集成遗留系统?
29
+ - 是否有技术栈偏好?
30
+
31
+ ## 项目分类矩阵
32
+
33
+ ```
34
+ MVP(最小可行产品) SaaS(软件即服务) Enterprise(企业级)
35
+ +----------------------------------------------------------------------------+
36
+ | 规模 | <1K | 1K-100K | 100K+ |
37
+ | 团队 | 单人 | 2-10 | 10+ |
38
+ | 时间线 | 快(周级) | 中(月级) | 长(年级) |
39
+ | 架构 | 简单架构 | 模块化架构 | 分布式架构 |
40
+ | 模式 | 最小模式集 | 选择性模式 | 全面模式体系 |
41
+ | 示例 | Next.js API(接口) | NestJS | Microservices(微服务)|
42
+ +----------------------------------------------------------------------------+
43
+ ```
@@ -0,0 +1,94 @@
1
+ # 架构示例
2
+
3
+ > 按项目类型给出现实世界的架构决策示例。
4
+
5
+ ---
6
+
7
+ ## 示例 1:MVP(最小可行产品)电商(单人开发)
8
+
9
+ ```yaml
10
+ 需求:
11
+ - 初期 <1000 用户
12
+ - 单人开发
13
+ - 快速上线(8 周)
14
+ - 预算敏感
15
+
16
+ 架构决策:
17
+ 应用结构: Monolith(单体,更适合单人)
18
+ 框架: Next.js(全栈、开发快)
19
+ 数据层: Prisma 直连(避免过度抽象)
20
+ 认证: JWT(JSON Web Token,比 OAuth(授权协议)更轻量)
21
+ 支付: Stripe(托管支付方案)
22
+ 数据库: PostgreSQL(订单场景需要 ACID)
23
+
24
+ 接受的权衡:
25
+ - Monolith -> 无法独立扩缩(团队规模暂不支持)
26
+ - 不使用 Repository(仓储模式) -> 可测性较弱(简单 CRUD 阶段可接受)
27
+ - JWT -> 初期无社交登录(后续可补)
28
+
29
+ 后续迁移路径:
30
+ - 用户 > 10K -> 拆分支付服务
31
+ - 团队 > 3 -> 引入 Repository pattern(仓储模式)
32
+ - 需要社交登录 -> 增加 OAuth(授权协议)
33
+ ```
34
+
35
+ ---
36
+
37
+ ## 示例 2:SaaS(软件即服务)产品(5-10 人团队)
38
+
39
+ ```yaml
40
+ 需求:
41
+ - 1K-100K 用户
42
+ - 5-10 名开发者
43
+ - 长期(12 个月以上)
44
+ - 多业务域(计费、用户、核心)
45
+
46
+ 架构决策:
47
+ 应用结构: Modular Monolith(模块化单体,适合团队规模)
48
+ 框架: NestJS(天然模块化)
49
+ 数据层: Repository pattern(仓储模式,利于测试与替换)
50
+ 领域模型: Partial DDD(部分领域驱动)
51
+ 认证: OAuth(授权协议) + JWT(JSON Web Token)
52
+ 缓存: Redis
53
+ 数据库: PostgreSQL
54
+
55
+ 接受的权衡:
56
+ - Modular Monolith -> 模块间仍有耦合(微服务时机未到)
57
+ - Partial DDD -> 不做完整聚合(缺少强领域专家)
58
+ - RabbitMQ(消息队列)后置 -> 初期先同步调用(需求验证后再引入)
59
+
60
+ 迁移路径:
61
+ - 团队 > 10 -> 考虑微服务
62
+ - 域冲突加剧 -> 拆分有界上下文
63
+ - 读性能问题 -> 引入 CQRS(命令查询职责分离)
64
+ ```
65
+
66
+ ---
67
+
68
+ ## 示例 3:企业级(100K+ 用户)
69
+
70
+ ```yaml
71
+ 需求:
72
+ - 100K+ 用户
73
+ - 10+ 开发者
74
+ - 多业务域
75
+ - 不同扩缩需求
76
+ - 7×24 可用性
77
+
78
+ 架构决策:
79
+ 应用结构: Microservices(微服务,独立扩缩)
80
+ API 网关: Kong/AWS API GW(网关)
81
+ 领域模型: Full DDD(完整领域驱动)
82
+ 一致性: Event-driven(事件驱动,接受最终一致性)
83
+ 消息总线: Kafka
84
+ 认证: OAuth(授权协议) + SAML(企业 SSO)
85
+ 数据库: Polyglot(按场景选数据库)
86
+ CQRS(命令查询职责分离): 选定服务
87
+
88
+ 运行要求:
89
+ - Service mesh(Istio/Linkerd)
90
+ - Distributed tracing(分布式追踪,Jaeger/Tempo)
91
+ - Centralized logging(集中日志,ELK/Loki)
92
+ - Circuit breakers(熔断器,Resilience4j)
93
+ - Kubernetes/Helm
94
+ ```
@@ -0,0 +1,68 @@
1
+ # 模式选择指南
2
+
3
+ > 选择架构模式的决策树。
4
+
5
+ ## 主决策树
6
+
7
+ ```
8
+ 开始:你的主要关注点是什么?
9
+
10
+ +- 数据访问复杂度?
11
+ | +- 高(复杂查询,需要测试)
12
+ | | -> Repository Pattern(仓储模式)+ Unit of Work(工作单元)
13
+ | | 验证:数据源会频繁变化吗?
14
+ | | +- 是 -> Repository(仓储模式)值得增加间接层
15
+ | | +- 否 -> 考虑更简单的 ORM(对象关系映射)直连访问
16
+ | +- 低(简单 CRUD(增删改查),单一数据库)
17
+ | -> ORM(对象关系映射)直连(Prisma, Drizzle)
18
+ | 越简单 = 越好、越快
19
+ |
20
+ +- 业务规则复杂度?
21
+ | +- 高(领域逻辑复杂,规则随上下文变化)
22
+ | | -> Domain-Driven Design(领域驱动设计,DDD)
23
+ | | 验证:团队里有领域专家吗?
24
+ | | +- 是 -> Full DDD(聚合、值对象)
25
+ | | +- 否 -> Partial DDD(富实体、清晰边界)
26
+ | +- 低(主要是 CRUD,简单校验)
27
+ | -> Transaction Script(事务脚本)模式
28
+ | 越简单 = 越好、越快
29
+ |
30
+ +- 需要独立扩缩吗?
31
+ | +- 是(不同组件扩缩方式不同)
32
+ | | -> Microservices(微服务)值得承担复杂性
33
+ | | 要求(必须全部满足):
34
+ | | - 清晰的领域边界
35
+ | | - 团队 > 10 名开发者
36
+ | | - 各服务有不同的扩缩需求
37
+ | | 未全部满足 -> Modular Monolith(模块化单体)
38
+ | +- 否(整体一起扩缩)
39
+ | -> Modular Monolith(模块化单体)
40
+ | 以后在确有必要时再拆服务
41
+ |
42
+ +- 实时性需求?
43
+ +- 高(即时更新,多用户同步)
44
+ | -> Event-Driven Architecture(事件驱动架构)
45
+ | -> Message Queue(消息队列)(RabbitMQ, Redis, Kafka)
46
+ | 验证:你能处理最终一致性(eventual consistency)吗?
47
+ | +- 是 -> 事件驱动可行
48
+ | +- 否 -> 同步 + 轮询
49
+ +- 低(可接受最终一致性)
50
+ -> 同步(REST/GraphQL)
51
+ 越简单 = 越好、越快
52
+ ```
53
+
54
+ ## 三个问题(选择任何模式前)
55
+
56
+ 1. **问题是否被解决**:该模式解决的具体问题是什么?
57
+ 2. **更简单的替代方案**:是否存在更简单的方案?
58
+ 3. **延迟复杂性**:能否在必要时再引入该模式?
59
+
60
+ ## 红旗(反模式)
61
+
62
+ | 模式 | 反模式 | 更简单的替代方案 |
63
+ | ---- | ------ | ---------------- |
64
+ | Microservices(微服务) | 过早拆分 | 从单体开始,后续再拆 |
65
+ | Clean/Hexagonal(整洁/六边形) | 过度抽象 | 先写具体实现,后引入接口 |
66
+ | Event Sourcing(事件溯源) | 过度设计 | 追加式审计日志 |
67
+ | CQRS(命令查询职责分离) | 不必要的复杂性 | 单一模型 |
68
+ | Repository(仓储模式) | 对简单 CRUD 的 YAGNI(你不会需要它) | ORM 直连 |
@@ -0,0 +1,50 @@
1
+ # 架构模式参考
2
+
3
+ > 常用模式快速参考及使用指南。
4
+
5
+ ## 数据访问模式
6
+
7
+ | 模式 | 适用场景 | 不适用场景 | 复杂度 |
8
+ | ---- | -------- | ---------- | ------ |
9
+ | **Active Record(活动记录)** | 简单 CRUD(增删改查),快速原型开发 | 复杂查询,多数据源 | 低 |
10
+ | **Repository(仓储模式)** | 需要测试,多数据源 | 简单 CRUD(增删改查),单一数据库 | 中 |
11
+ | **Unit of Work(工作单元)** | 复杂事务 | 简单操作 | 高 |
12
+ | **Data Mapper(数据映射)** | 复杂领域、性能要求高 | 简单 CRUD(增删改查),快速开发 | 高 |
13
+
14
+ ## 领域逻辑模式
15
+
16
+ | 模式 | 适用场景 | 不适用场景 | 复杂度 |
17
+ | ---- | -------- | ---------- | ------ |
18
+ | **Transaction Script(事务脚本)** | 简单 CRUD(增删改查),过程式逻辑 | 复杂业务规则 | 低 |
19
+ | **Table Module(表模块)** | 基于记录的逻辑 | 需要丰富领域行为 | 低 |
20
+ | **Domain Model(领域模型)** | 复杂业务逻辑 | 简单 CRUD(增删改查) | 中 |
21
+ | **DDD(完整领域驱动)** | 复杂领域,有领域专家 | 简单领域,无领域专家 | 高 |
22
+
23
+ ## 分布式系统模式
24
+
25
+ | 模式 | 适用场景 | 不适用场景 | 复杂度 |
26
+ | ---- | -------- | ---------- | ------ |
27
+ | **Modular Monolith(模块化单体)** | 小团队,边界不清晰 | 上下文清晰、扩缩需求不同 | 中 |
28
+ | **Microservices(微服务)** | 不同扩缩需求、大团队 | 小团队、简单领域 | 极高 |
29
+ | **Event-Driven(事件驱动)** | 实时性、松耦合 | 简单工作流、强一致性 | 高 |
30
+ | **CQRS(命令查询职责分离)** | 读写性能分化明显 | 简单 CRUD(增删改查)、同一模型 | 高 |
31
+ | **Saga(补偿事务)** | 分布式事务 | 单一数据库、简单 ACID(事务特性) | 高 |
32
+
33
+ ## API 模式
34
+
35
+ | 模式 | 适用场景 | 不适用场景 | 复杂度 |
36
+ | ---- | -------- | ---------- | ------ |
37
+ | **REST(表述性状态转移)** | 标准 CRUD(增删改查),资源导向 | 实时性、复杂查询 | 低 |
38
+ | **GraphQL(图查询语言)** | 灵活查询,多客户端 | 简单 CRUD(增删改查)、强缓存需求 | 中 |
39
+ | **gRPC(远程过程调用)** | 内部服务、高性能 | 公共 API、浏览器客户端 | 中 |
40
+ | **WebSocket(全双工通信)** | 实时更新 | 简单请求/响应 | 中 |
41
+
42
+ ---
43
+
44
+ ## 简单原则
45
+
46
+ **“从简单开始,只有在证明有必要时才增加复杂性。”**
47
+
48
+ - 你可以随时在以后添加模式。
49
+ - 移除复杂性远比增加复杂性难得多。
50
+ - 有疑问时,选择更简单的选项。