Vibe Tutorial
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友好的技术栈

黄金三角:

  1. Framework: Next.js (App Router) 🟢

    • Web开发事实标准
    • 文档最全,AI训练语料最丰富
  2. Language: TypeScript 🔵

    • 类型系统是给AI的"约束"
    • 写JS,AI容易瞎猜;写TS,AI必须遵守接口契约
  3. 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. 本章小结

  1. 🔧 Boring is Good:选最成熟的技术,不要追逐新技术
  2. 🎯 黄金三角:Next.js + TypeScript + PostgreSQL
  3. 📚 语料丰富:技术越成熟,AI写得越好
  4. ⚠️ 避免过度设计:简单技术栈比复杂架构更可靠
  5. 🚫 拒绝新技术:AI没见过的技术容易产生幻觉