小马的 AI 工具集
899 · 一对一 · 包教包会 AI CodingClaude Code部署上线Vercel调试实战

完整 AI Coding 到上线

用 AI 从零写代码、调试、到真正部署上线的全流程,不停在 demo。

现在让 AI 写出一个能跑的 demo 很容易,难的是把它变成公网上真在跑、别人能用、改一处不会坏三处的东西。这门课讲的就是从空目录到线上的整条链路:写清楚要做什么、让 AI 照着写、卡住时怎么介入、上线前怎么验证、上线后会踩哪些改不动的坑。所有内容我都自己从头到尾跑过一遍——majianhan.com 就是这么一条 spec→计划→72 次提交→上线的时间线,现在还开着。一对一带你走一遍,你自己也能拿到一个线上的 URL。

有点编程基础、或想认真把一个想法做成能上线的东西的人。完全没写过代码也能跟,但目标始终是「真上线」,不是跑通就算。
报名这门课 · 899 →

学完你能做到

  • 能把一个想法从空目录做到真在公网上跑的网站,自己拿到能打开的 URL
  • 会先写清楚要做什么(spec)和任务清单,让 AI 照着做,而不是丢一句话让它瞎写
  • AI 卡住、第一次没搞定时知道怎么介入,而不是干等或整个推倒重来
  • 上线前会自己跑测试、读 diff、看控制台核对,不把「跑起来了」当成「做完了」
  • 懂得 CSP/HSTS 安全头、CI 门禁这些上线必须守的底线,红的 main 不许进生产
  • 知道哪些东西一旦上线就改不动(比如烧进客户端的域名),提前避开而不是上线后变砖

真实案例 · 都是跑通过的产物,不是演示 demo

majianhan.com:一条从空目录到上线的完整时间线

superpowers:brainstormingsuperpowers:writing-planssuperpowers:executing-plans

我自己的个人主页,现在还开着(实测在线)。它证明的不是「AI 能写网页」,而是整条链路可复盘:spec → 任务清单 → 72 次提交 → 上线,第一次提交到上线全程约 20 小时,git 历史精确到分钟,每一步为什么这么做都能翻出来。这是这门课的旗舰样本。

git log —— 一晚上的提交时间线
21:44  init:create-astro + 部署骨架
21:48  首页与基础样式
21:49  写 README
22:02  修 WCAG AA 对比度(正文对比度不达标)
…       共 72 次提交,每次只干一件事
次日   接 Vercel git 集成,push 即上线
majianhan.com(现在还开着)

上线前的设计文档 + 任务清单(真实原件)

superpowers:writing-planshuashu-design

majianhan.com 上线前我真写的那份 spec 和 plan。里面有明确的「非目标(本期不做什么)」、技术选型的理由表、反 AI slop 清单、以及一份能逐条勾的验收标准。证明「先想清楚再让 AI 动手」不是口号,是有具体形态的东西——学员看完就知道自己该写成什么样。

上线前 spec 节选(真实原件)
## 2. 非目标(本期不做)
- 完整个人主页内容(bio、作品集、博客)
- 国内 CDN 加速 / 备案 / SEO 元数据优化
- Dark mode 切换器

**反 AI slop 清单**(来自 huashu-design):
- 不用 linear-gradient(135deg,#667eea,#764ba2) 这种典型紫蓝渐变
- 不放虚假的 “AI generated” 光晕图
- 不用 emoji 装饰
- 不写 “Welcome to my website” 式的废话

上线之后会踩什么:一份真实的迁移死锁手册

superpowers:systematic-debuggingcodegraph

某桌面客户端产品的账号/域名迁移手册,每一条结论都带源码文件行号。它讲的是新手最想不到的坑:有些字符串一旦烧进客户端二进制,改了就让已经装机的用户集体变砖、还无法远程补救。这个案例证明「上线」不是终点,是另一类问题的起点——demo 阶段永远学不到。

迁移死锁手册节选(已脱敏)
## 绝对不能变的三样(存量命脉)
| 项 | 为什么不能改 |
|---|---|
| 网关域名 | 存量客户端所有后端(登录/鉴权/媒体生成)唯一入口,硬编码进二进制;指新域会被拒、回落老域,运行时无开关可救 |
| 更新源 OSS 桶名 | 自动更新唯一通道,硬编码;桶不可达=永久断更,而断更又断了推修复版的唯一路径——与上一条构成死锁 |
| 更新签名私钥 | 存量客户端只认这把私钥签的包;换新钥=存量全部拒装 |

铁律:这三样逐字节不变,只迁背后的 DNS / 服务器 / 账号归属。

上线后的自动化与门禁(两套真实 CI 配置)

deployment-patterns

本站 xmcourse.com 的每日自动同步:定时抓取 → 提交 → 触发 Vercel 重新构建,还配了一整套 CSP/HSTS 安全响应头。另一套是后端服务的部署流水线:Postgres 测试门禁卡在部署前面,测试不过就不许上线——一条红的 main 绝不能到生产。证明「上线后让它自己稳稳活着」是能配置出来的。

deploy 门禁:红的 main 不许进生产
jobs:
  # Test gate: a red `main` must not reach production. The deploy job
  # explicitly `needs: test`, so a broken commit can be reverted before
  # production ever sees it.
  test:
    runs-on: ubuntu-latest
    services:
      postgres: { image: postgres:16-alpine }   # 真起一个库跑集成测试
  deploy:
    needs: test          # ← 测试不过,这一步根本不会执行
    runs-on: ubuntu-latest

14 篇真实调试战报:AI 走过的弯路

superpowers:systematic-debugging

我攒下来的一批调试记录,写的都是 AI 一开始判断错了、走了弯路、最后被真机测试推翻的完整过程——比如某功能其实没坏,真凶是采集不稳被误判成登录失效。证明这门课的调试部分不是纸上谈兵,讲的是真实卡壳时人怎么一步步把它救回来。

调试战报节选(已脱敏)
# 一次被真机推翻的误判(调试战报节选)

现象:某功能“私信发不出去”,第一判断是发送接口坏了。
真相:接口没坏(send=200 实测)。真凶是上一步的采集不稳,
      加上页面水合瞬间的一次闪跳,被误判成“登录已失效”。
教训:AI(和人)都容易把“下游报错”当成“下游的锅”。
      先把每一步的真实返回值打出来,再定位——而不是顺着第一直觉改。
      这一版把“降级到备用流程”当解药也是红鲱鱼,绕了远路。

主线录屏:从空目录到一个网站上线的全程

superpowers:writing-planssuperpowers:executing-planstest-media

整门课最核心的动态证据。全程录屏还原 majianhan.com 那条时间线:空目录起步,写 spec、拆任务、让 AI 写、跑起来、部署、拿到线上 URL,中间不剪掉卡壳的地方。学员看完能对「上线」到底要做哪些动作有完整心理预期。

真实终端录屏:从空目录到 majianhan.com 上线

调试实录:AI 第一次没搞定,人怎么介入

superpowers:systematic-debuggingtest-media

专门录「AI 卡住」那一段——不是顺风顺水的演示。从真实调试战报里复刻一个 AI 走弯路的场景,演示怎么先复现、再定位、把它一步步掰回正轨,而不是让 AI 反复瞎改。这是新手最缺、也最值钱的那部分手感。

课上现场演示 这个案例在一对一课上带你从头跑一遍,用到 superpowers:systematic-debugging / test-media。

验证特写:跑测试 + 看控制台 + 读 diff

superpowers:test-driven-developmenttest-media

把「没有验证的 vibe coding 只是速度幻觉」这句话录成看得见的动作:跑一遍测试、开浏览器截图核对、逐行读 diff、看控制台有没有报错。让学员明白「验证」不是抽象态度,是四个具体、能照着做的步骤。

真实终端录屏:跑测试 + 读 diff + 拉真站

一对一会带你走这些 · 8 个模块 · 按你的进度来

01
想法到骨架:先想清楚再动手
  • 用 brainstorming 把模糊想法问成明确需求,逼出「非目标」——本期不做什么和做什么一样重要
  • 写一份真正的 spec:技术选型的理由、目录结构、验收标准
  • 为什么 5 分钟想清楚能省后面 2 小时返工
02
先写计划再写代码
  • 把 spec 拆成一条条可勾选的任务清单,AI 照着一步步做
  • 小步提交:每个 commit 只干一件事,坏了能精确回滚
  • 什么时候值得写测试、什么时候可以不写——诚实的取舍,不教条
03
让 AI 写对代码
  • 给足上下文:AI 不是读心术,它写错多半是你没说清
  • 用 codegraph 先查再改,别让 AI 凭空猜代码结构
  • 反 AI slop:识别并拒掉那些一眼假的模板化代码和废话
04
调试实战:AI 第一次没搞定的时候
  • 还原一次真实的「AI 判断错了、走了弯路」的完整过程
  • systematic-debugging:先复现、再定位、别急着让 AI 乱改
  • 被真机 / 真数据推翻时,人怎么介入把方向掰回来
05
验证:没有验证的 vibe coding 只是速度幻觉
  • 跑测试、读 diff、看浏览器和控制台,四件事一件都不能省
  • 「它跑起来了」不等于「它做对了」——怎么亲眼确认
  • 把验证做成习惯,而不是上线出事了才回头补
06
真正上线
  • 部署到 Vercel / 服务器,配 DNS、HTTPS、域名解析
  • 首次上线到拿到能打开的 URL 的完整动作清单
  • 本地好用 ≠ 线上好用:上线前后各测一遍
07
上线后的安全、性能与门禁
  • CSP / HSTS 这些安全响应头为什么必须配,配漏了会怎样
  • CI 门禁:测试不过就卡住部署,红的 main 不许到生产
  • 自动化同步 → 提交 → 重新构建,让站点自己活着
08
上线之后会踩的坑 + 可复盘的 Git
  • 哪些东西一旦上线就改不动:烧进二进制的域名 / 桶名会让存量用户集体变砖
  • 「改一处坏三处」的连锁反应怎么提前识别
  • 用 worktree 隔离、让 commit 时间线精确到分钟,出事能复盘能回滚
899元 · 一对一 · 包教包会

报名「完整 AI Coding 到上线」

扫码加我微信,备注你想学的课程名(如「AI Coding」),我会先跟你聊清楚你的需求和目标,再决定要不要报名。

  • 五门任选一门,一口价 899,不分级不加价
  • 一对一带着做,不是录播,卡在哪讲到哪
  • 拿你自己的真实需求练,学完手里有能交付的成品
  • 包教包会,跟到你能独立跑通为止

想看别的课?五门课任选一门 →

报名咨询微信二维码 扫码加微信,备注「AI Coding」