全栈架构选型(Fullstack Architecture)
适用场景
- 新项目技术栈选型
- 全栈框架对比
- Monorepo vs 分仓决策
- 项目初始化模板
核心原则
1. 选熟悉的 > 选最新的
2. 选生态大的 > 选性能最高的
3. 全栈框架 > 自己拼装
4. TypeScript 端到端 > 多语言
5. 部署简单 > 架构复杂
全栈框架速查
| 框架 |
语言 |
前端 |
后端 |
DB |
部署 |
适合 |
| Next.js 15 |
TS |
React |
Server Actions / API Routes |
Prisma |
Vercel |
SaaS / 内容 |
| T3 Stack |
TS |
Next.js |
tRPC |
Prisma |
Vercel |
类型安全极致 |
| Nuxt 3 |
TS |
Vue 3 |
Nitro |
Prisma / Drizzle |
Vercel / CF |
国内 / 中小 |
| SvelteKit |
TS |
Svelte |
Endpoints |
Prisma |
Vercel / CF |
性能 |
| Remix |
TS |
React |
Loaders / Actions |
Prisma |
Fly.io |
表单密集 |
| Rails 8 |
Ruby |
Hotwire |
Rails |
ActiveRecord |
Render / Fly |
快速 MVP |
| Laravel 11 |
PHP |
Livewire / Inertia |
Laravel |
Eloquent |
Forge / Vapor |
PHP |
| Django |
Python |
HTMX / React |
Django |
Django ORM |
Railway |
AI / 数据 |
选型决策树
TypeScript 团队?
YES → 类型安全重要?
极致 → T3 Stack
一般 → Next.js / Nuxt
NO → Ruby → Rails / Python → Django / PHP → Laravel
SEO 重要?
YES → Next.js / Nuxt / SvelteKit(SSR)
NO → 任意
交付时间 < 1 周?
YES → Rails / Laravel / Django(约定多、脚手架快)
NO → Next.js / Nuxt / T3
团队 > 5 人?
YES → 考虑拆分 backend + frontend
NO → 全栈框架 OK
Monorepo vs 分仓
Monorepo(推荐小团队):
✅ 类型共享方便
✅ 一次 PR 改前后端
✅ 统一 CI
工具:pnpm workspaces + Turborepo
分仓(大团队):
✅ 独立部署
✅ 独立版本
✅ 团队边界清晰
工具:独立 repo + OpenAPI 契约
项目初始化模板
Next.js + Prisma + Tailwind
npx create-next-app@latest my-app --typescript --tailwind --eslint --app --src-dir
cd my-app
pnpm add prisma @prisma/client
pnpm add -D @types/node
npx prisma init
T3 Stack
pnpm create t3-app@latest my-app
# 选:TypeScript + tRPC + Prisma + Tailwind + NextAuth
Nuxt 3
npx nuxi@latest init my-app
cd my-app
pnpm add @prisma/client
pnpm add -D prisma
配套模板
templates/architecture-decision.md — 选型决策记录 + 对比表 + 理由
质量自检
□ 选型有明确理由(不是"最火")
□ 团队熟悉度评估
□ 生态评估(Stars / 维护 / 文档)
□ 部署方案确定
□ TypeScript 端到端
□ 项目初始化完成
□ 基础配置(Lint / Format / Git hooks)
□ 第一天就部署
常见坑
- 自己拼装——浪费时间在胶水代码
- 选不熟的框架——学习成本 > 收益
- 不用 TypeScript——联调地狱
- 不用 ORM——手写 SQL 容易注入
- 过早微服务——1 人团队不需要
- 不评估部署——选了框架部署不了
与其他 skill 的协作
下游:
e2e-feature-delivery → 用选定的栈实现
database-schema-impl → ORM 选型
deploy-preview → 部署平台