🎯 AI 指挥术:从想法到产品的系统设计课
基于 Alex Xu《System Design Interview》理念重构
核心理念:你不是在学写代码,你是在学习指挥 AI 为你写代码
📚 为什么这门课与众不同?
❌ 普通 AI 编程课的问题
- "让 AI 写代码" → 得到看不懂的代码,报错就放弃
- 没有判断标准 → AI 说什么就信什么,容易被带偏
- 缺乏系统思维 → 做着做着就乱了,项目烂尾
✅ 这门课的解决思路
1. 心理建设先行(克服恐惧)
- 第 0 课:破除"写代码很难"的心魔
- 全程强调:你是导演,AI 是演员
- 每个 session 都有"心理安全区"设计
2. 培养 AI 判断力(识别好坏建议)
- 每个 session 都有"AI 建议评估清单"
- 教你看懂 AI 给出的代码/方案
- 建立"为什么这样选"的判断标准
3. 指挥官思维(可控感)
- 需求分析 = 你的战略意图
- 架构设计 = 你的作战地图
- 技术选型 = 你的资源配置
- AI 编程 = 你的战术执行
🗓️ 重新设计的 7 个 Session
Session 0: 破冰课 - 你不是在学编程,你是在学指挥
核心目标:破除心理恐惧,建立"指挥官"心态
关键问题:
- 为什么普通人也能用 AI 做产品?
- 你不是在写代码,你是在描述问题
- AI 是你的外包团队,你是产品经理 + 架构师
核心概念:
传统编程:你写代码 → 你实现功能
AI 编程:你描述需求 → AI 写代码 → 你验收结果
你的角色变化:
程序员(自己写)→ 指挥官(告诉 AI 写什么)→ 验收官(判断写得好不好)
AI 建议评估入门:
- 好建议的特征:具体、有理由、有边界
- 坏建议的特征:模糊、过度设计、忽视你的约束
- 练习:给 AI 同一个问题的 3 种问法,比较结果
心理建设工具:
- "我不会写代码" → "我会描述问题"
- "代码报错怎么办" → "让 AI 解释并修复"
- "AI 写得太复杂" → "这是我的问题,我问得不够清楚"
产出:建立"我能指挥 AI"的信心
Session 1: 需求分析 - 清晰的意图是成功的一半
核心目标:学会把模糊想法变成清晰指令
核心概念(来自 System Design): Functional vs Non-Functional Requirements
普通人版本:
- 功能需求:这个工具要解决什么问题?
- 非功能需求:要多快?给多少人用?要花多少钱?
AI 建议评估 - 需求篇:
当 AI 说"你可以加这个功能"时,问自己:
1. 这是核心需求吗?(没有它能用吗?)
2. 这会增加多少复杂度?
3. 我现在需要吗?(MVP 思维)
4. AI 为什么建议这个?(有理由吗?)
实战练习: 用 "5W1H + 约束清单" 模板描述你的想法:
Who: 谁用?
What: 做什么?
When: 什么时候用?
Where: 在哪里用?
Why: 为什么不用现有工具?
How: 怎么用?
约束清单(告诉 AI 你的边界):
□ 我不懂代码,要最简单的方案
□ 不要服务器/数据库(如果可能)
□ 预算:免费/低成本
□ 时间:一周内上线
AI 协作技巧:
- 如何让 AI 帮你发现遗漏的需求
- 如何让 AI 识别"伪需求"
- Prompt 模板:"请帮我分析这个想法的可行性,列出 3 个潜在问题和 3 个类似产品"
产出:一页纸的需求文档 + 约束清单
Session 2: 架构设计 - 画一张 AI 能看懂的地图
核心目标:学会用图形表达系统结构
核心概念: High-level Design - 从宏观视角规划系统
AI 建议评估 - 架构篇:
当 AI 给出架构建议时,问自己:
1. 这个架构适合我的约束吗?(复杂度匹配)
2. 每一层都有必要吗?(能合并吗?)
3. 数据流向清晰吗?(跟着走一遍)
4. 如果用户量翻倍,哪里会崩?(可扩展性检查)
红旗警告(AI 可能过度设计):
🚩 "你需要微服务架构" → 小项目不需要
🚩 "建议上 Kubernetes" → 99% 的项目不需要
🚩 "用 Redis 缓存" → 先确认有性能问题再说
实战练习: 用简单的框图工具画出你的系统:
【三层架构简化版】
用户 → 界面层(用户看到什么)→ 逻辑层(处理什么)→ 数据层(存什么)
【数据流图】
用户操作 → 系统响应 → 数据变化 → 用户看到结果
AI 协作技巧:
- 让 AI 根据你的描述生成架构图代码(Mermaid/DOT)
- 如何用约束条件防止 AI 过度设计
- Prompt 模板:"根据以下需求,画出最简单的架构图。约束:单机版、无服务器、数据存本地"
产出:一张架构图 + AI 可读的模块清单
Session 3: 技术选型 - 在 AI 的建议中做明智选择
核心目标:学会评估和选择技术方案
核心概念: Trade-offs - 每个选择都有代价
AI 建议评估 - 技术选型篇(重点 Session):
技术选型评估框架:
1. 简单性评分(1-5):
- 我需要学多少新东西?
- 出问题时我能自己解决吗?
- 部署复杂吗?
2. 足够性评分(1-5):
- 能满足我的核心需求吗?
- 性能够用吗?(不要超前优化)
- 扩展性满足未来 6 个月吗?
3. 成本评分(1-5):
- 金钱成本
- 时间成本
- 维护成本
总分 = 简单性 × 0.4 + 足够性 × 0.4 + 成本 × 0.2
(高分 = 更适合你的方案)
红旗警告:
🚩 AI 推荐最新最火的技术 → 可能不稳定/学习成本高
🚩 AI 推荐你完全不懂的技术 → 出问题时你会卡住
🚩 "这个方案更好"但没有理由 → 质疑它
实战练习: 为你的项目选择技术栈,用评估框架打分:
前端选项:
□ 纯 HTML/CSS/JS(最简单)
□ React/Vue(AI 可能推荐,但学习成本高)
□ 低代码平台(如 Webflow)
后端/数据选项:
□ 纯前端(localStorage/IndexedDB)- 无服务器
□ Airtable/Notion API - 现成的"数据库"
□ Supabase/Firebase - 托管后端
□ 自建服务器(除非你清楚为什么,否则不选)
AI 协作技巧:
- 如何让 AI 给出多个方案供你选择
- 如何让 AI 解释每个方案的 trade-offs
- Prompt 模板:"我是一个非技术人员,想做 [项目],约束是 [简单、无服务器、免费]。请给我 3 个方案,用上面的评分框架打分并解释"
产出:技术选型决策表 + 评分理由
Session 4: 模块化设计 - 把大象切成能吃的块
核心目标:学会拆分项目,降低复杂度
核心概念: Decomposition - 把大问题拆成小问题
AI 建议评估 - 模块化篇:
当 AI 建议模块划分时,问自己:
1. 每个模块有清晰的输入输出吗?
2. 模块之间耦合度高吗?(高 = 不好)
3. 我能独立理解/测试每个模块吗?
4. 这个拆分符合我的开发顺序吗?
好的模块特征:
✅ 单一职责(只做一件事)
✅ 清晰接口(输入输出明确)
✅ 可独立测试
✅ 符合我的理解能力
红旗警告:
🚩 模块之间有循环依赖 → 需要重新设计
🚩 一个模块超过 200 行代码 → 考虑再拆分
🚩 AI 建议的模块你完全不理解 → 要求解释
实战练习: 把你的项目拆成 3-5 个模块:
版本 1.0(MVP):只做核心功能
- 模块 A:用户输入(界面)
- 模块 B:数据处理(逻辑)
- 模块 C:结果展示(输出)
【模块接口设计】
模块 A → 输出:{用户输入的数据}
模块 B → 输入:{用户输入的数据}, 输出:{处理后的结果}
模块 C → 输入:{处理后的结果}, 输出:{展示给用户}
AI 协作技巧:
- 模块化 Prompt:一次只让 AI 做一个模块
- 用 AI 生成模块接口文档
- 让 AI 检查模块耦合度
- Prompt 模板:"请帮我设计 [模块名] 的接口,包括输入输出。约束:简单易懂,一行代码解释一个参数"
产出:模块化拆分表 + 接口定义 + 开发顺序
Session 5: 指挥 AI 写代码 - Prompt 工程实战
核心目标:学会写出让 AI 产出高质量代码的 Prompt
核心概念: Prompt 就是代码的代码 - 你写的 Prompt 质量决定 AI 产出质量
AI 建议评估 - 代码篇(核心技能):
收到 AI 代码后,问自己这 5 个问题:
1. 【能跑吗?】
- 复制粘贴能运行吗?
- 有报错吗?报错信息清楚吗?
2. 【能懂吗?】
- 每行代码你知道在做什么吗?
- 看不懂的地方有注释吗?
- 变量名有意义吗?
3. 【能改吗?】
- 如果要改一个小功能,容易找到地方吗?
- 逻辑清晰吗?还是一团乱麻?
4. 【有必要吗?】
- 有没有过度设计?(比如小工具用了复杂框架)
- 有没有冗余代码?
5. 【安全吗?】
- 有没有明显的安全问题?(如暴露 API Key)
- 用户输入有验证吗?
评分标准:
- 5 个都通过 → 好代码,直接用
- 3-4 个通过 → 还行,需要小改
- 1-2 个通过 → 回去重问 AI,Prompt 不够清楚
红旗警告:
🚩 AI 用了你没要求的技术 → 让它换
🚩 代码超过 100 行却没有注释 → 让它加
🚩 你看不懂但 AI 说"这是标准做法" → 要求解释或换种写法
实战练习: 学习写结构化 Prompt:
【角色】你是一个 [专业角色]
【任务】请帮我 [具体任务]
【背景】项目情况是 [上下文]
【约束】需要注意 [限制条件]
【输入】[输入数据描述]
【输出】[期望的输出格式]
【输出要求】[代码规范要求]
示例:
你是一个资深前端工程师。请帮我写一个待办事项组件。
项目使用 React + Tailwind。
要求:支持添加、删除、标记完成,有本地存储。
请提供完整可运行的代码,并解释关键部分。
约束:代码不超过 100 行,每行都要有注释。
迭代式开发流程:
第 1 轮:生成基础版本(能跑就行)
↓ 检查:能跑吗?
第 2 轮:添加样式/验证
↓ 检查:能懂吗?
第 3 轮:让 AI 审查代码
↓ 检查:能改吗?
第 4 轮:优化和重构
↓ 最终检查:5 个问题都通过了吗?
AI 协作技巧:
- 先写伪代码确认逻辑
- 用 AI 解释你不理解的代码
- 让 AI 生成测试用例来验证代码
- Prompt 模板:"请为这段代码写 3 个测试用例,验证它能处理边界情况"
产出:一个功能模块的完整开发流程 + 代码评估报告
Session 6: 测试与迭代 - 建立质量反馈循环
核心目标:学会验证 AI 产出,建立持续改进机制
核心概念: Fault Tolerance & Monitoring - 系统要健壮
AI 建议评估 - 测试篇:
当 AI 给出测试方案时,问自己:
1. 测试覆盖了正常情况吗?
2. 测试覆盖了边界情况吗?(空值、超大值、特殊字符)
3. 测试覆盖了异常情况吗?(网络中断、文件不存在)
4. 测试本身好理解吗?(测试代码也要能懂)
5. 运行测试能发现实际问题吗?
好的测试特征:
✅ 独立(一个测试不依赖其他测试)
✅ 可重复(每次运行结果一样)
✅ 快速(几秒就能跑完)
✅ 有意义(测试失败时能指出具体问题)
实战练习: 建立测试清单:
功能测试:
□ 正常输入能得到正确结果
□ 边界情况(空值、超大值)
□ 异常情况(网络中断、文件不存在)
用户体验测试:
□ 第一次用能看懂吗?
□ 出错时知道怎么办吗?
□ 响应速度能接受吗?
AI 测试 Prompt:
"请扮演一个新手用户,尝试使用这个功能,列出你遇到的困惑"
AI 协作技巧:
- 让 AI 扮演用户测试你的产品
- 用 AI 生成边界测试用例
- 让 AI 分析测试结果
- Prompt 模板:"这段代码在 [条件] 下会出什么问题?请生成测试用例验证"
产出:测试报告 + 修复清单 + 改进计划
Bonus Session 7: 部署与维护 - 让你的作品活下去
核心目标:学会上线和持续运维
核心概念: Scalability & DevOps - 系统要可持续发展
AI 建议评估 - 部署篇:
当 AI 建议部署方案时,问自己:
1. 这个方案符合我的技术能力吗?
2. 出问题了我能自己解决吗?还是需要找人?
3. 成本在我的预算内吗?(包括时间成本)
4. 这个方案的"逃生路线"是什么?(如果不行,怎么迁移?)
部署方案简单度排名(推荐从上到下尝试):
1. Vercel/Netlify(纯前端)- 最简单
2. GitHub Pages(静态网站)- 免费
3. Cloudflare Pages(国内访问好)- 简单
4. Supabase/Firebase(需要后端)- 中等
5. VPS/自建服务器 - 除非必要,否则不推荐
红旗警告:
🚩 需要配置服务器的方案 → 对新手太复杂
🚩 需要备案的域名 → 时间成本高
🚩 需要写 Dockerfile 的 → 除非你很清楚为什么
实战练习: 一键部署清单:
□ 代码推到 GitHub
□ 连接到 Vercel/Netlify
□ 配置环境变量
□ 设置自动部署
□ 测试线上版本
□ 分享给朋友收集反馈
AI 协作技巧:
- 让 AI 帮你写部署配置
- 用 AI 分析部署错误
- 让 AI 生成运维检查清单
- Prompt 模板:"我的网站部署后 [问题描述],错误信息是 [错误],请帮我分析可能的原因"
产出:一个上线的项目 + 运维手册
🛠️ 配套工具箱
AI 建议评估清单(全 Session 通用)
每次收到 AI 建议时,过一遍这个清单:
□ 这个建议符合我的约束条件吗?(简单、低成本、我能理解)
□ AI 给出理由了吗?还是只是陈述?
□ 如果按这个建议做,出问题时我能自己解决吗?
□ 有没有更简单的替代方案?
□ 这个建议是否过度设计?
□ 我能向一个外行解释清楚这个建议吗?(如果不能,可能太复杂)
Prompt 模板库
1. 需求分析
我想做一个 [项目描述]。
目标用户是 [用户群体]。
核心功能是 [功能列表]。
约束条件:
- 我是非技术人员,要最简单的方案
- 预算:[免费/低成本/可接受范围]
- 时间:[一周/一个月内]
- 技术能力:[完全不懂/略懂 HTML/有其他基础]
请帮我:
1. 分析这个需求的可行性(简单/中等/困难)
2. 列出 3 个潜在风险
3. 建议 MVP 版本应该包含什么功能
4. 指出我可能忽略的约束条件
2. 技术选型
根据以下需求,推荐技术方案:
[需求描述]
约束条件:
- 简单性优先(我不懂复杂技术)
- 无服务器优先(如果可能)
- 免费/低成本
请给我 3 个方案,按以下框架评分(1-5分):
1. 简单性:我需要学多少新东西?
2. 足够性:能满足需求吗?
3. 成本:金钱+时间成本
推荐哪个方案?为什么?
3. 代码生成
请帮我实现 [模块名]。
技术栈:[技术列表,明确说不要什么]
输入:[输入描述]
输出:[输出描述]
约束:[约束条件]
请提供:
1. 完整可运行的代码(不超过 [X] 行)
2. 每行代码的注释
3. 关键概念的解释(假设我是新手)
4. 如果报错,可能的修复方法
4. 代码审查
请审查以下代码:
```代码
【背景】这段代码用于 [功能描述] 【我的理解】我认为这段代码 [你的理解]
请检查:
- 我的理解正确吗?
- 是否有明显 Bug?
- 是否有安全隐患?
- 是否过度设计?
- 如果我要修改 [具体功能],应该改哪里? ```
5. 测试生成
请为以下函数写测试用例:
```代码
要求覆盖:
- 正常情况
- 边界情况(空值、最大值、最小值、特殊字符)
- 异常情况(错误输入、网络中断等)
每个测试用例请说明:测试什么、期望结果、为什么重要
---
## 📖 学习路径建议
### 零基础路线(推荐)
Session 0(心理建设)→ Session 1 → Session 2 → Session 3(重点)→ 选一个简单项目实战 → Session 4 → Session 5(重点)→ Session 6 → Session 7
### 有基础路线
Session 0(快速过) → Session 3(重点) → Session 5(重点) → 做项目 → 其他 Session 查漏补缺
### 进阶路线
完整走一遍 → 做 2-3 个不同项目 → 形成自己的 AI 评估方法论 ```
💡 核心理念总结
- 你不是程序员,你是指挥官 - 你的价值在于定义问题,不是写代码
- AI 是强但不是全知 - 学会判断 AI 建议的好坏是关键技能
- 简单胜过完美 - 能跑的简单方案 > 跑不起来的完美方案
- 约束是好朋友 - 告诉 AI 你的限制,它会给出更合适的建议
- 可控感来自理解 - 不懂就问 AI,直到你能向一个外行解释清楚
- 完成比完美重要 - 先上线,再迭代
📚 参考资源
- 《System Design Interview》by Alex Xu
- System Design Primer (免费)
- ByteByteGo (Alex Xu 的视频平台)
Created by Linggen 🧬
让每个人都能指挥 AI 创造属于自己的工具