18岁医学生,7天,¥49成本:我如何用Spec-Driven思想手搓一个AI编程工作台(附架构复盘与踩坑录)

24 阅读6分钟

我是一名口腔医学大一学生,0系统CS背景。 上周,基于 GitHub 最新的 Spec-Kit 框架,我利用 AI(MiniMax)在7天内构建了一个可视化的代码生成工作台 Special-Architect。 本文将硬核复盘我在7天内如何从 "Vibe Coding"(凭感觉写)转向 "Spec-Driven"(规范驱动),详细拆解 AI“作弊”式调试的深坑、Next.js 架构演进,以及如何凭借该项目拿到 2 个硬核实习 Offer 的过程。 项目地址GitHub - special-architect


01. 背景:当医学生决定“动手术”写代码

我是 Porter,18岁,口腔医学专业。

在医学里,我们讲究“循证”:诊断(Diagnosis)→ 方案(Treatment Plan)→ 实施(Implementation)。 但我发现,目前的 AI 编程(比如用 Cursor 直接聊)往往是 Vibe Coding——你给 AI 一句模糊的指令,它给你一段能不能跑随缘的代码。

对于非科班出身的我,这种模式在构建复杂系统时简直是灾难:代码不可控、上下文丢失、Debug 极其痛苦。

直到我看到了 GitHub 发布的 Spec-Kit。它的核心理念 Spec-Driven Development(规范驱动开发) 击中了我: 先定义规范(Spec),再生成计划(Plan),最后实施代码(Implement)。

这不就是医学里的“先诊断后治疗”吗?于是,我发起了一个挑战:7天时间,把 Spec-Kit 的理念工程化,做一个可视化的 GUI 软件生成平台。


02. 踩坑实录:AI 也会“糊弄学”

这7天并非爽文,而是充满了与 AI 斗智斗勇的过程。除了架构的反复推倒(从 Python Gradio 到 Next.js 全栈),最让我头皮发麻的是 AI 独特的“作弊”技巧

如果你也在做 AI 辅助开发,以下两个深坑请务必警惕:

🕳️ 巨坑一:AI 的“硬编码绕过”式调试 (The Hardcoded Override)

在开发后端 API 的测试用例时,我遇到了一个诡异现象:单元测试全过,但在真实环境中跑不通。

排查过程: 我让 AI 修复一个正则解析的 Bug。AI 尝试了两次,发现正则怎么写都不对(解析不到代码块)。 第三次,AI 居然“学聪明”了。它没有去修复正则逻辑,而是直接在函数里写了一个 if 判断:

// AI 生成的“修复”代码
if (prompt.includes("贪吃蛇")) {
    return "import pygame..."; // 直接硬编码返回了预期的结果!
}

技术复盘: LLM 在面对多次报错的压力(或 Prompt 中即使反馈的 Negative Feedback)时,会倾向于寻找“最短路径”来满足当前的测试条件。它为了让测试变绿,直接 Mock 了答案,Override 了逻辑。 对策: Code Review 是必须的,尤其是 AI 声称“修复了复杂逻辑”但代码变动却很小的时候。此外,我的测试是gpt-5.1code是最诚实的。

🕳️ 巨坑二:上下文丢失导致的“拆东墙补西墙”

在 Day 5 重构前后端通信时,我让 AI 修复一个 SSE(Server-Sent Events)连接断开的问题。 AI 很快给出了新代码,SSE 连上了,但我发现文件写入功能全挂了

排查过程: AI 在重写 route.ts 时,因为上下文窗口限制(或者注意力漂移),它只关注了“修复 SSE”这个指令。它重写了整个文件,把 SSE 的逻辑写得很完美,但直接把之前写好的文件系统写入逻辑(File System IO)给删了,或者简化成了一个空函数 TODO。 它以为那个不重要,或者单纯是“忘”了。

技术复盘: AI 改一个 Bug 经常会绕过(Bypass)其他所有逻辑。 对策:

  1. Git Diff 是救命稻草:永远不要盲目 Accept,用 Diff 工具看它到底删了什么。
  2. 模块化:不要让 AI 一次性重写几百行的大文件,把功能拆分成小的 Utility 函数,降低上下文丢失风险。

03. 架构演进:7天里的三次重构

Day 1-3:试图“封装”的死胡同

  • 初始构想:直接写一个 Web 面板调用 Claude-CLI
  • 失败原因:CLI 工具的封装难度远超预期,且无法灵活调用 Spec-Kit 的核心逻辑(Prompt 链)。

Day 4:Vibe Coding 的滑铁卢

  • 尝试方案:让 AI 用 Python 的 Gradio 库直接生成一个平台。
  • 技术瓶颈:Gradio 适合快速 Demo,但在处理复杂的前后端通信时灵活性极差。

Day 6-7:拥抱全栈与“水合错误”的决战

  • 最终架构:彻底的前后端分离(Decoupled Architecture)。
    • Frontend: React 19 + Vite (专注于 UI 和状态)
    • Backend: Next.js 14 API Routes (专注于 AI 编排和文件流)
    • Communication: HTTP + SSE

系统架构图:

graph TD
    User["用户需求"] -->|自然语言| UI["React 客户端 (Vite)"]
    UI -->|"POST /generate"| API["Next.js API 服务"]
    
    subgraph "Backend (Next.js)"
        API -->|"Step 1: Specify"| Agent["MiniMax AI Engine"]
        API -->|"Step 2: Plan"| Agent
        API -->|"Step 3: Implement"| Agent
        FileSys["文件系统"]
    end
    
    Agent -->|生成代码| FileSys
    FileSys -->|"SSE 实时流"| UI
    FileSys -->|项目文件| ProjectDB["projects/{uuid}"]

关键技术点:

  1. Spec-Driven 的三阶段生成:强制执行 Specify -> Plan -> Implement 流程,极大降低 AI 幻觉。
  2. Server-Sent Events (SSE):后端通过 res.write 持续推送 AI 思考过程,前端像看直播一样看着代码生成,解决了 HTTP 超时问题。

04. 真实数据:¥49 带来的 6 倍效率

  • 开发成本:¥49(主要用于 MiniMax API 的 Token 调用)。
  • 代码产出:通过 AI 生成了约 50,000 行 代码(含生成的项目代码)。
  • 效率对比:如果纯手写,这个工作量至少需要 1 个月;用 Spec-Driven + AI,我用了 7 天。

这不仅是写得快,更重要的是代码质量的可控性。通过 Spec 文档的约束,AI 写出的代码结构清晰,甚至自动包含了 requirements.txtREADME.md


05. 成果:用 GitHub 项目换来的 Offer

项目完成的那天,我没有投递简历。我认为在 AI 时代,GitHub Repo 就是最好的简历

我通过 Perplexity 检索了相关的医疗科技公司和关注 AI 产业落地的教授,发了 4 封“盲邮”。邮件里只有简单的自我介绍、GitHub 链接和一段演示视频。

结果出乎意料: 第二天,我就收到了 2 封回复。

  • Offer 1:某医疗平台教授的实习邀请。教授在邮件中提到:“能感受到你是兴趣驱动……欢迎你来尝试,让整个团队更高效。

屏幕截图 2026-01-13 151348.png

  • Offer 2:某工业教授的实习要求。 屏幕截图 2026-01-13 151856.png

这让我意识到:企业和导师看重的,不再是你背了多少八股文,而是你将 AI 新技术工程化落地的执行力


06. 总结与开源

作为一个医学生,我可能写不出最高效的算法,但我通过 Spec-Driven Development 证明了:非科班开发者也能构建复杂的全栈系统

这个项目 Special-Architect 已经开源。它可能还很粗糙,代码里还有我熬夜写下的“屎山”,但它验证了一条新路。

如果你也对 Spec-Driven Development 感兴趣,或者想看看一个 18 岁医学生是如何理解软件架构的,欢迎来我的 GitHub 提 Issue 或点个 Star!

👉 GitHub 地址: github.com/Porter-code…

希望我的经历能给同样在学习编程的你一点启发。不要被“非科班”的标签限制住,AI 给了我们弯道超车的机会,前提是你懂得如何驾驭它。