PRD 与文档驱动开发
3.5 技术栈决策框架
Tip
学会选择合适的技术栈,选最成熟、AI最熟悉的技术,避免追逐新技术导致AI幻觉。
1. 为什么要学这个?
很多开发者在开工前会纠结一周:"是用Next.js还是Remix?用Prisma还是Drizzle?用MySQL还是Postgres?"
他们以为选了"最新"的技术就能写出最好的代码。
**真相是:AI不在乎新旧,只在乎"语料"。**一个技术被讨论得越多,Stack Overflow上的问答越多,AI写得就越好。
关键问题:
- 怎么选择技术栈?
- 为什么要选成熟的技术?
- 什么技术栈最适合AI开发?
选最无聊的技术,因为无聊意味着成熟,意味着AI已经背诵过它的几百万行代码。
2. 核心概念
2.1 Boring is Good原则
技术定义:选择最成熟、文档最全、社区最大的技术栈,避免追逐新技术。
就像选瑞士军刀。
- 不要选:激光切割光剑(虽然酷,但AI没见过使用说明书)
- 应该选:功能够用、极其可靠、全世界都会用的刀
2.2 AI友好的技术栈
黄金三角:
-
Framework: Next.js (App Router) 🟢
- Web开发事实标准
- 文档最全,AI训练语料最丰富
-
Language: TypeScript 🔵
- 类型系统是给AI的"约束"
- 写JS,AI容易瞎猜;写TS,AI必须遵守接口契约
-
Database: PostgreSQL + Prisma 🐘
- Postgres是最强大的开源数据库
- Prisma的schema文件是最好的数据库文档
3. 技术栈决策矩阵
| 🎯 场景 | 推荐技术栈 | 理由 |
|---|---|---|
| SaaS/Web App | Next.js + Tailwind + Postgres | 标准答案,兼顾SEO和交互 |
| 纯后台/重计算 | Python (FastAPI) | 只有需要跑重型AI模型时才选 |
| 官网/落地页 | Next.js (SSG) | 生成静态HTML,打开速度最快 |
4. 为什么拒绝其他技术?
| ❌ 技术 | 为什么不推荐 |
|---|---|
| Rust/Go(Web前端) | AI写前端UI的熟练度远不如JS/TS |
| Mongo/NoSQL | Schema-less意味着AI没有约束,容易写出混乱代码 |
| Python(Django/Flask) | 写算法很强,但写现代响应式前端UI还是有点隔阂 |
5. 避坑指南
| ❌ 不要这样做 | ✅ 应该这样做 | 为什么 |
|---|---|---|
| 追逐最新技术 | 选成熟版(Next.js 14而不是Canary) | AI没见过新技术,只能瞎编API |
| 混合太多语言 | Full Stack TS,前后端都用TS | 避免上下文割裂,类型定义可复用 |
| 自造轮子 | 用现成的库(Clerk/NextAuth) | 避免成为Bug制造机 |
6. 真实案例
Story
2013年,Healthcare.gov的5亿美元教训
2013年,美国联邦政府斥资5亿美元打造Healthcare.gov(奥巴马医改网站)。上线第一天,网站彻底瘫痪,数百万美国人无法购买医保。原因是承包商选用了极其复杂的企业级技术栈(Oracle、IBM WebSphere、NoSQL混合),搞了复杂的分布式架构。整个系统像过度设计的怪兽,组件之间无法通信。政府紧急召集硅谷工程师(来自Google、Facebook)救火,他们发现根本不需要那些花里胡哨的技术,用更简单、更通用的技术栈重构了核心模块,仅仅几周就修好了网站。
Vibe心法:选最成熟、语料最丰富的技术栈——Next.js + TypeScript + PostgreSQL,这是AI的舒适区。
7. 本章小结
- 🔧 Boring is Good:选最成熟的技术,不要追逐新技术
- 🎯 黄金三角:Next.js + TypeScript + PostgreSQL
- 📚 语料丰富:技术越成熟,AI写得越好
- ⚠️ 避免过度设计:简单技术栈比复杂架构更可靠
- 🚫 拒绝新技术:AI没见过的技术容易产生幻觉