Session 3: 技术选型 - 在 AI 的建议中做明智选择

这节课是整个课程最重要的一课。学会判断 AI 的技术建议,比学会任何具体技术都重要。


🎬 开场故事:同样的问题,不同的命运

小李的灾难

小李问 AI:"我想做个个人博客,推荐什么技术?"

AI:"推荐你用 Next.js 14 + Vercel + Sanity CMS + Tailwind CSS + TypeScript。这是现代前端最佳实践,支持 SSR、ISR、Edge Functions..."

小李:听起来很专业,就用这个吧。

(一周后)

小李:"这报错是什么意思?什么是 hydration error?"

AI:"这是 Next.js 的服务端渲染和客户端渲染不匹配..."

小李:"???"

又一周后,小李的博客还没上线,他已经学了:

  • Next.js 的 App Router
  • TypeScript 的类型系统
  • Sanity 的 GROQ 查询语言
  • ISR 的 revalidate 策略

而他原本只想要一个能发文章的网页。

小李的问题:盲目相信 AI 的"最佳实践"建议,没有评估是否适合自己。


小王的成功

小王也问 AI:"我想做个个人博客,推荐什么技术?"

但他加了约束: "我是新手,完全不懂现代前端框架。我想要最简单的方案,能快速上线,以后维护也简单。"

AI 给了三个选项:

方案 A(最简):用 Markdown 文件 + HTML 模板,直接用 GitHub Pages 托管。不需要学任何框架。

方案 B(中等):用静态网站生成器 Hugo/Jekyll,有主题可用,只需写 Markdown。

方案 C(现代):用 Next.js + Headless CMS,功能强大但学习曲线陡峭。

小王用评估框架打分:

维度 权重 方案 A 方案 B 方案 C
简单性 40% 5 4 2
足够性 40% 4 5 5
成本 20% 5 5 4
加权总分 4.6 4.4 3.4

小王选了方案 A。

两天后,他的博客上线了。

小王的秘诀:用了评估框架,根据自己的约束选择了最适合的方案,而不是"最好"的方案。


🧠 核心概念:没有最好的技术,只有最适合的技术

程序员 vs 指挥官的技术选型思维

维度 程序员思维 指挥官思维
选什么 "这个技术很火/很先进" "这个技术我能驾驭"
关注点 性能、扩展性、最佳实践 简单性、可维护性、时间成本
出错时 自己解决 让 AI 解决,但要能理解和验证
升级时 追新 够用就行

关键洞察:AI 通常给出"程序员思维"的建议,因为训练数据来自程序员社区。但你需要的是"指挥官思维"的建议。


为什么 AI 会推荐过度设计?

原因 1:训练数据偏差

  • AI 学的是技术文章、教程、最佳实践
  • 这些内容通常面向专业开发者
  • "用最新技术"是技术社区的主流声音

原因 2:缺乏约束信息

  • 如果你没有明确说"我是新手",AI 假设你有一定基础
  • 如果你没有说"要简单",AI 假设你要"最佳"方案
  • 如果你没有说预算/时间限制,AI 不考虑这些

原因 3:技术人员的惯性

  • 专业程序员倾向于选择他们熟悉/喜欢的技术
  • AI 继承了这种倾向
  • "Vue 比 jQuery 好"→但对你可能是"Vue 比 jQuery 更难"

🛠️ 实战工具:技术选型评估框架

这是整个课程最重要的工具。每次 AI 推荐技术方案时,用这个框架评估。

评估维度

1. 简单性(Simple)

问自己

  • 我需要学多少新东西才能用上?
  • 出问题时,我能自己解决吗?还是需要依赖别人?
  • 部署和维护复杂吗?
  • 如果 AI 不帮我了,我还能维护这个项目吗?

评分(1-5)

  • 5 = 几乎不需要学习,出问题时能自己解决
  • 3 = 需要学一些新概念,但文档齐全
  • 1 = 需要深入理解才能使用

2. 足够性(Sufficient)

问自己

  • 能满足我的核心需求吗?
  • 性能够用吗?(不要超前优化)
  • 扩展性足够未来 6 个月吗?
  • 有没有我不需要但硬塞进来的功能?(过度设计)

评分(1-5)

  • 5 = 完美满足需求,不多不少
  • 3 = 满足需求,但有一些多余功能
  • 1 = 不够或者过度

3. 成本(Cost)

问自己

  • 金钱成本:服务器、域名、第三方服务费用
  • 时间成本:学习、开发、调试时间
  • 维护成本:后续需要投入多少时间维护
  • 迁移成本:如果以后想换技术,容易吗?

评分(1-5)

  • 5 = 几乎零成本
  • 3 = 有一些成本,但可接受
  • 1 = 成本高,超出预算

计算公式

总分 = 简单性 × 0.4 + 足够性 × 0.4 + 成本 × 0.2

权重说明:
- 简单性 40%:最重要,因为你是指挥官不是程序员
- 足够性 40%:要能解决实际问题
- 成本 20%:对大多数个人项目来说,免费/低成本很重要

使用建议

  • 总分 ≥ 4.0:值得考虑
  • 总分 3.0-4.0:勉强可用,但可能有更好的
  • 总分 < 3.0:不要选,除非有特别理由

红旗警告:AI 建议中的过度设计信号

当 AI 推荐以下技术时,提高警惕:

🚩 微服务架构 → 你的用户量可能根本不需要 🚩 Kubernetes/Docker → 部署复杂度爆炸 🚩 Redis 缓存 → 先确认有性能问题再说 🚩 消息队列 → 99% 的个人项目不需要 🚩 最新的框架版本 → 可能不稳定,文档不全 🚩 "企业级"方案 → 对你可能是杀鸡用牛刀

正确反应: "你推荐的方案听起来很复杂。根据我的约束(新手、小项目、无服务器),有没有更简单的方案?"


📝 实战案例:技术选型决策

场景:做一个待办清单工具

需求回顾

  • 功能:添加、完成、删除待办,本地存储
  • 用户:只有自己用
  • 约束:无服务器、免费、一周内上线、代码简单

AI 给出的方案对比

方案 A:纯 HTML/CSS/JS

优点:
- 一个文件搞定
- 双击就能打开
- 数据存在浏览器 localStorage
- 不需要服务器
- 代码最简单

缺点:
- 界面需要自己写样式
- 功能扩展有限
- 换浏览器数据不共享

方案 B:React + Vite

优点:
- 现代开发体验
- 组件化,代码清晰
- 生态丰富

缺点:
- 需要学 React
- 需要构建步骤
- 对新手来说概念太多(state、props、hook)

方案 C:Next.js + MongoDB

优点:
- 功能强大
- 可以做多用户
- 可以同步数据

缺点:
- 需要服务器
- 需要数据库
- 学习曲线陡峭
- 有持续成本

用评估框架打分

维度 权重 方案 A 方案 B 方案 C
简单性 40% 5 3 1
理由 无需学习,无构建步骤 需学 React 需学 Next.js + 数据库
足够性 40% 5 4 3
理由 完美满足需求 满足但有过度设计 过度设计
成本 20% 5 5 2
理由 完全免费 免费 需要服务器
加权总分 5.0 3.6 1.6

结论:方案 A 完胜。


AI 建议评估

AI 可能会推荐方案 B 或 C

  • "用 React 是行业标准"
  • "Next.js 是最佳实践"
  • "localStorage 不够专业"

你的评估

  • ❌ "行业标准"不等于"适合我"
  • ❌ "最佳实践"是给专业团队的,不是给个人项目的
  • ❌ "不够专业"不等于"不能用"

正确回应: "根据我的约束(新手、小项目、无服务器),方案 A 是最合适的。虽然 React/Next.js 更先进,但它们增加了我不需要的复杂度。"


🤖 AI 协作技巧:引导 AI 给出合适的建议

技巧 1:明确约束前置

错误做法: "推荐一个技术方案"

正确做法

我想做一个 [项目描述]。

约束条件(非常重要):
- 我是非技术人员,要最简单的方案
- 无服务器优先
- 预算:免费
- 时间:一周内上线

请给我 2-3 个技术方案,并用以下框架评分:
1. 简单性(1-5):我需要学多少新东西?
2. 足够性(1-5):能满足需求吗?
3. 成本(1-5):金钱+时间+维护成本

请推荐最适合我的方案,并解释为什么。

技巧 2:要求对比和理由

AI 推荐了方案 A,但我想知道:
1. 和方案 B 相比,优缺点是什么?
2. 如果我以后需要 [扩展功能],方案 A 还能满足吗?迁移成本如何?
3. 这个方案的"坑"是什么?(即新手容易遇到的问题)

技巧 3:质疑过度设计

当 AI 推荐复杂方案时:

你推荐的方案听起来很复杂,涉及 [技术列表]。

我的约束是 [重复约束]。

请问:
1. 这些技术都是必须的吗?有没有可以去掉的?
2. 如果只用其中 1-2 个技术,能满足需求吗?
3. 请给我一个"最小可行方案",只做核心功能。

技巧 4:要求逃生路线

如果我选择方案 A,以后想迁移到方案 B,容易吗?

请说明:
1. 数据如何导出?
2. 代码复用度如何?
3. 迁移大概需要多少工作量?

📊 常见技术选型决策表

前端方案对比

方案 简单性 足够性 成本 适合场景
纯 HTML/CSS/JS ⭐⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐⭐ 小工具、原型、学习
React/Vue/Vue ⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ 复杂应用、团队协作
低代码平台 ⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐ 快速验证、简单应用
静态站点生成器 ⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ 博客、文档站

后端/数据方案对比

方案 简单性 足够性 成本 适合场景
纯前端(localStorage) ⭐⭐⭐⭐⭐ ⭐⭐ ⭐⭐⭐⭐⭐ 单机工具、数据量小
Airtable/Notion API ⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐ 简单数据存储
Supabase/Firebase ⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐⭐ 需要用户认证
自建服务器 ⭐⭐⭐⭐⭐ ⭐⭐ 你有服务器经验

部署方案对比

方案 简单性 成本 适合场景
Vercel/Netlify ⭐⭐⭐⭐⭐ 免费 前端项目
GitHub Pages ⭐⭐⭐⭐⭐ 免费 静态网站
Cloudflare Pages ⭐⭐⭐⭐⭐ 免费 国内访问好
VPS/服务器 ⭐⭐ 付费 需要后端

⚠️ 常见陷阱

陷阱 1:追求"最新"技术

❌ "这个框架是上周发布的,应该很先进"

正确做法

  • 新技术 = 文档不全 + Bug 多 + 社区支持少
  • 对你这样的指挥官来说,稳定 > 先进
  • 选择发布至少 1 年以上的技术

陷阱 2:相信"行业标准"

❌ "大公司都用这个,我也应该用"

正确做法

  • 大公司的"标准"是给大团队、大项目、大流量设计的
  • 你的小项目不需要那些复杂度
  • 适合你的 > 行业标准的

陷阱 3:忽视维护成本

❌ "这个方案开发很快,先用着"

正确做法

  • 问自己:3 个月后,我还能维护这个项目吗?
  • 如果 AI 不帮你了,你自己能搞定吗?
  • 可持续的 > 开发快的

陷阱 4:不做逃生计划

❌ "先做这个方案,以后再说"

正确做法

  • 每个选择都要考虑:如果不行,怎么换?
  • 数据能导出吗?
  • 代码能复用吗?

✅ 本节课作业

作业 1:评估框架练习

选一个你想做的项目,列出至少 2 个技术方案,用评估框架打分。

项目:_________________

方案 A:_________________
- 简单性(1-5):_____ 理由:_____
- 足够性(1-5):_____ 理由:_____
- 成本(1-5):_____ 理由:_____
- 加权总分:_____

方案 B:_________________
- 简单性(1-5):_____ 理由:_____
- 足够性(1-5):_____ 理由:_____
- 成本(1-5):_____ 理由:_____
- 加权总分:_____

选择:方案 _____
理由:_____

作业 2:AI 对话练习

用上面的 Prompt 模板问 AI,获取技术选型建议。

然后做 AI 建议评估

  • AI 推荐的方案得分如何?
  • 有没有红旗警告(过度设计)?
  • 你会采纳 AI 的建议吗?为什么?

作业 3:质疑练习

当 AI 推荐复杂方案时,练习说"不"

写一段回复:

你推荐的方案涉及 [技术列表],听起来比较复杂。

根据我的约束 [你的约束],我担心:
1. [具体问题]
2. [具体问题]

请给我一个更简单的方案,满足 [核心需求] 即可。

作业 4(进阶):复盘一个失败经历

想想你过去某个项目失败的经历(如果有)。

分析

  • 当时选的技术方案是什么?
  • 用评估框架打分,得分如何?
  • 如果重来,你会怎么选?

📎 模板下载

技术选型决策模板

# 技术选型决策

## 项目背景
项目名称:
核心需求:
约束条件:
- 技术能力:
- 预算:
- 时间:
- 其他:

## 候选方案

### 方案 A:
描述:

评分:
- 简单性:/5 (理由:)
- 足够性:/5 (理由:)
- 成本:/5 (理由:)
- 加权总分:

优缺点:
- 优点:
- 缺点:
- 风险:

### 方案 B:
[同上格式]

### 方案 C:
[同上格式]

## 决策

选择方案:

理由:

逃生计划(如果需要迁移):

## AI 建议评估

AI 推荐方案:

评估:
- 是否符合约束:
- 是否有红旗警告:
- 是否采纳:
- 理由:

🎯 下节课预告

Session 4: 模块化设计 - 把大象切成能吃的块

我们会学习:

  • 如何把项目拆成 AI 能一口消化的小模块
  • 模块之间的接口设计
  • 如何用模块化降低复杂度

记得带上你的技术选型决策!


💬 常见问题

Q: AI 推荐的"最佳实践"真的不好吗?

A: 不是不好,是不适合你。最佳实践是给专业团队、大项目设计的。你的目标是用最简单的方式解决自己的问题。

Q: 我怎么知道一个技术"简不简单"?

A: 问自己:

  1. 我能在 1 小时内理解它的核心概念吗?
  2. 如果报错,我能根据错误信息自己解决吗?
  3. 我需要学多少新概念才能用上它?

Q: 以后需要扩展怎么办?

A: 先解决现在的问题,再考虑以后。大多数项目活不到需要"扩展"的那一天。而且,简单的方案通常也更容易扩展。

Q: AI 说"这个方案太简单了,不够专业"怎么办?

A: 坚持你的约束。对指挥官来说,"简单能用"就是专业。"复杂但用不上"才是业余。


完成这节课,你学会了最重要的技能:在 AI 的建议中做明智选择。

记住:你不是在找"最好的技术",你是在找"最适合你的技术"。

下一节课见! 🚀

results matching ""

    No results matching ""