ARTICLE · 1115326
怎么用 AI 做出一个软件?我的六步实践
怎么用 AI 做出一个软件?我的六步实践大家好,我是蜗牛AI。 我用 Codex 做了一个自己的电子阅读器,叫蜗牛阅读。 它已经能在我的 Mac 上独立打开。导入一本 TXT,就能上下滚动阅读、调整字号,退出后再打开,还能接着上次的位置读。 我实际导入了《项链》,从导入、阅读到退出续读,把这个过程走了一遍。 
蜗牛阅读的正式应用书架,右上角可以导入 TXT。 我自己就是开发小白,技术方案里的东西很多都看不懂。具体怎么写代码、怎么实现功能,我交给 Codex;我负责说需求、试用,再把问题告诉它。 这次做完,我把整个过程整理成了六步。 
这篇就用蜗牛阅读这个真实案例,把流程和操作放在一起讲。你可以跟着做一个同类阅读器,也可以换成自己想做的小工具。 我用的是 M 系列芯片的 Mac,开发工具是 Codex 桌面应用。01 环境搭建 打开 Mac 的访达,点击左侧“文稿”,按 Command + Shift + N新建文件夹,命名为蜗牛电子阅读器。 回到 Codex,选择这个文件夹作为项目,在这个项目里开始聊天。 
选中“蜗牛电子阅读器”文件夹,点击“打开”。 代码、产品方案、使用说明,都放在这里,后面找起来方便。 这一阶段先准备 Git 仓库和 AGENTS.md。 Git 是版本管理工具,可以理解成给项目存档。每完成一个阶段保存一次,能查看改了什么,也方便在出问题时恢复旧版本。想多了解,可以去 B 站搜索 Git 入门教程,这篇先知道它的用途就够了。 AGENTS.md 是写给 Codex 的开发约定。比如每完成一个阶段要检查,确认后再保存版本。 不会写这个文件,可以直接让 Codex 帮忙。 帮我为这个 Mac 阅读器项目建立 Git 仓库,编写 AGENTS.md。 约定每完成一部分,你先检查,我再试用,确认后由你保存 Git 版本。 写好后给我看看。 我当时是自己提交 Git。为了方便大家跟着做,下面统一改为确认后让 Codex 帮忙保存版本。 做完后,检查 AGENTS.md 里是否写明了先检查、再试用、确认后保存版本。内容正确,就让 Codex 帮忙保存第一份版本。 内容可以了,帮我保存第一个 Git 版本。 Codex 给出提交说明和版本编号,就表示已经保存;如果它报告失败,先让它处理完成再继续。后面的产品方案、Demo、技术方案和每个开发阶段确认后,也这样保存一次。 
项目中的 AGENTS.md,记录开发和检查约定。02 产品设计 先和 Codex 聊清楚产品方案。 不需要一上来就写专业文档,用自己的话描述希望做什么、怎么用就行。 蜗牛阅读的第一版,核心只有一条流程。 导入一本书 → 打开阅读 → 退出后接着读。 你可以这样告诉 Codex。 我想做一个 Mac 电子阅读器,叫蜗牛阅读。 能导入 TXT 小说,有个书架,点开就能上下滚动阅读,可以调整字体大小,下次打开能接着上次的位置读。 我们先聊聊产品方案,你帮我看看还需要考虑什么。 TXT 就是后缀为 .txt 的纯文字文件。第一次不用自己找书,后面会让 Codex 生成测试文件。 等 Codex 给出方案,看看有没有漏掉功能。如果符合要求,回复“这个方案可以,帮我保存成产品设计.md”。如果不符合,就直接说要改哪里。 这里还有两个重点,MVP 和 Demo。 MVP,就是先做一个功能尽量少,但能解决核心问题的版本。 阅读器能加的功能很多,目录、书签、笔记、搜索、深色模式、云同步,都可以做。但第一版没必要全部塞进去。 我们先只支持 TXT,不做 EPUB、PDF,也不做账号、在线书城和 AI 功能。 可以补充一句。 第一版先做好前面说的书架、TXT 导入、阅读、字号调整和续读。暂不做其他格式、账号、在线书城和 AI 功能,帮我更新产品方案。 Demo 是先做一个能看、能试的简化版本。 阅读器很看重界面和操作体验。书架怎么摆、正文宽不宽、字号按钮放在哪里,光靠文字讨论不容易有感觉,所以我们先做了一个交互 Demo。 按已确认的产品方案做个能点击试用的 Demo,界面明亮、简洁。 放入示例内容,让我试试从书架打开书、滚动阅读、调字号和返回书架。做好后帮我打开,告诉我保存在哪。 打开后,点进一本演示书,滚动一下,再试试字号按钮。感觉哪里不舒服,直接告诉 Codex 调整。 试过觉得可以,就回复“这个 Demo 可以,就按这个样子做吧,帮我记到产品方案里”。这时确认的是样子和操作方式,后面还要做成正式应用。 不是每个产品都必须先做 Demo;如果界面和操作体验很重要,先试一下会更直观。 
产品设计阶段的 Demo,在浏览器里试用书架和阅读操作。03 技术设计 技术设计比较专业,看不懂也没关系,交给 Codex 处理就行。感兴趣的话,可以浏览一下大致方案。 我这次也是这样。Electron、React、TypeScript 这些名字,我并不了解,但不影响继续往下做。 把产品设计和确认过的 Demo 交给它。 根据已确认的产品方案和 Demo,帮我制定技术方案。 检查这台电脑能不能做、需要准备什么,并建议分几步完成。把方案保存下来。 Codex 给出的方案,是把阅读器做成独立的 Mac 应用,书籍和进度保存在电脑上,核心阅读功能不需要远程服务器。 我们也要求第一阶段就做出能双击打开的应用。先确认它能在电脑上运行,再继续加功能。 如果 Codex 提示缺少工具,就让它协助处理,需要你操作时一步步说明。等它确认条件已经具备、方案已经保存,再进入产品实现。04 产品实现 产品方案、Demo 和技术方案都有了,就让 Codex 按步骤把功能做出来。 Codex 建议分阶段推进,我同意按它的建议一步一步来。下面是它为蜗牛阅读安排的四个阶段。 阶段做到什么程度应用基础打开独立的 Mac 窗口,显示书架界面导入与书架导入 TXT,显示书籍,退出后书架仍然保留阅读体验显示完整正文,上下滚动,调整字号进度与恢复记住每本书的位置,退出后继续阅读 如果 Codex 的安排和下面不同,先让它解释每一步做什么,再按它确认的顺序推进,不用硬套编号。下面以我这次的四步为例,每次只发当前这一步,等做完、检查过,再继续。 每阶段试用通过后,让 Codex 保存 Git 版本,再继续下一阶段。 每次更新前,先在阅读器中按 Command + Q退出旧版。让 Codex 更新同一份应用、保留已有书架,并告诉你最新版的位置;之后一直用这个入口试用。 第一步,做出能打开的窗口。 根据产品方案、已确认的 Demo 和技术方案,开始第一阶段,做出独立的 Mac 窗口和书架界面。 每阶段都更新成能双击打开的应用,保留已有书架,告诉我打开位置。你先检查,再让我试用,确认后再继续。 看到独立的阅读器窗口和书架,就可以进行这一阶段的试用。导入按钮暂时不能用是正常的,我们当时标了下一阶段开放。 第二步,能导入书,书架能保留。 按方案继续第二阶段,做好 TXT 导入、书架保存和移出书架,退出重开后书还在,移出时不要删除原始文件。 再准备两份不同的中文 TXT 测试文件,能滚动多屏,标明开头、中间和结尾。检查后让我试用,告诉我文件在哪、怎么导入。 在应用里点击“导入 TXT”,会弹出选文件的窗口。找到第一份测试文件,选中后点击“打开”或“导入”;再重复一次,导入第二份。 如果找不到文件,在选文件窗口按 Command + Shift + G,粘贴 Codex 给出的测试文件所在文件夹路径,按回车,再选择文件。书架出现两份文件的名字,说明这一步成功了。 再按 Command + Q退出应用,双击刚才的应用重开,看看书还在不在。这一步先检查书架保留,完整阅读和阅读位置放到后面实现。 第三步,可以完整阅读、调整字号。 按方案继续第三阶段,做好完整正文阅读、上下滚动、字号调整和返回书架。用之前的测试文件检查后,让我试用。 点开测试书,能从开头滚动到结尾,再滚回前面。点 A+、A−,文字大小确实变化。回到书架,还能打开另一本书。 第四步,记住读到了哪里。 按方案继续第四阶段,记住每本书各自的阅读位置,同时保留字号设置,退出重开后也能恢复。检查后让我试用,告诉我怎么验证。 读到测试书的中间标记,记住眼前的文字,停止滚动片刻。先点击阅读器窗口,确保正在操作的是它,再按 Command + Q退出。 从 Codex 指出的应用位置重开,打开同一本书。能回到刚才的文字附近,说明续读已经生效。另一份测试书换一个位置重复一次,检查两本书的进度没有混在一起。 这四步都沿用同一个做法,Codex 先检查,你再试用,确认后保存版本。 试用没问题,就发送下面这句话。 这一步可以了,帮我保存 Git 版本,不要包含书籍和阅读进度。 等 Codex 确认成功,再发下一阶段的要求。如果报错,把完整提示或截图发给它,先解决当前问题,不要直接跳过。05 人工验证 人工验证,就是自己真正打开软件用一遍。 虽然文章把它单独列成一步,但实际是和开发穿插进行的。每做完一部分,都可以试,不需要等整个产品全部完成。 前面每个阶段都试过,全部做完后,再连起来检查一遍。 自己操作应该看到的结果导入两份测试文件,分别打开书名和正文对应,没有打开错书从开头读到结尾,再向上滚动前后内容都能读到,没有只显示一部分调大、调小字号文字大小变化,仍然能正常阅读两本书分别读到不同位置,退出再打开各自回到上次位置附近,字号也保留把其中一本移出书架书架不再显示它,原始测试文件仍在 第一遍用 Codex 准备的测试文本就行。确认正常后,再导入自己的 TXT 书籍。如果提示文件不能读取,把错误内容告诉 Codex,让它检查。 
使用测试文本检查阅读功能:右上角调整字号,底部显示阅读位置已保存。 这一部分,我真的发现过问题。 我导入《项链》后,退出再重开,应用出现了异常,书架无法正常读取。Codex 排查后发现,应用的退出流程有问题,界面还残留着正在退出的状态。 
当时试用遇到的报错:应用正在退出,书架无法读取。 它修复之后补了退出重开的测试,我再打开,书还在,也能继续操作。 到了进度保存阶段,我再次试读、退出、重开,确认回到了原来的阅读位置。 这些反馈不需要懂技术。直接说清楚自己做了什么、出现了什么就行。 按 Command + Q 退出再打开,书架打不开了。帮我修复,保留已有书籍和阅读进度。修好后先检查,我再试。 这里的报错只是我当时的实际例子。你遇到其他问题,就换成自己的操作和现象,有截图也一起提供。 AI 自测和自己试用,两种检查都需要。修复后再试一次,确认问题消失,再保存版本、继续下一步。06 产品交付 功能完成后,我们又做了一轮整体验收,对照最初的产品设计,检查该有的功能有没有遗漏,并整理使用说明。 最后可以这样告诉 Codex。 对照产品方案,检查功能有没有遗漏,把最新版做成能双击打开的应用,让我最后试一遍。 写一份小白能看懂的使用说明,保存在项目里,告诉我应用和说明在哪。 我确认后,帮我保存最终 Git 版本。 我们最后拿到的是蜗牛阅读 0.4.0。 打开项目文件夹,依次进入 out、蜗牛阅读-darwin-arm64,双击里面的蜗牛阅读应用即可。你的文件夹名字可能不同,让 Codex 告诉你准确位置就行。 
打开应用所在文件夹,双击“蜗牛阅读”。 想让日常打开更方便,也可以让 Codex 帮你放到应用程序文件夹。 以后双击这个应用,就可以打开阅读。 走到这里,一个能在我电脑上使用的阅读器就完成了。 这次开发,我走的是这样一个流程: 环境搭建 → 产品设计 → 技术设计 → 产品实现 → 人工验证 → 产品交付 先准备项目,聊清楚要做什么,再让 AI 制定方案、分步实现。自己动手试用,发现问题就修改,最后整理好应用和使用说明。 我觉得,这套流程是这次实践中很值得留下来的经验。以后做其他小工具,也可以按这个顺序推进。







