什么是 Vibe Coding
Vibe Coding 是一种开发方式:你用自然语言告诉 AI 你要什么,AI 来写代码、跑测试、修 bug、发版本。你全程不需要打开编辑器写一行代码,但需要能看懂 AI 写了什么,能在关键节点做判断。
它和传统开发的区别在于,人的角色从"写代码的"变成了"提需求的"和"审代码的"。你不需要会写 Python,但需要能说清楚你要什么,能看懂 AI 的产出是否靠谱。
这种方式不是万能的。AI 写的代码可能有 bug,可能有安全漏洞,可能架构不合理。所以你需要检查,需要用真实数据验证,需要在 AI 走偏的时候拉回来。但如果你只是想快速做一个能用的工具,Vibe Coding 的效率非常高。
下面用一个实际项目来展示整个过程。
项目背景
做地质研究的时候,经常要处理 GeoRoc 数据库导出的 Excel 文件,几十 MB,几万行数据。用 Excel 打开就卡,筛选下拉菜单等半天,非常痛苦。
所以需要的是一个能快速打开大表格、筛选和高亮行列的工具。这是唯一的初始需求。
第一轮:一句话启动
我对 OpenCode 说:
做一个叫 ChaBiao(查表)的 Python 项目,功能是快速查看和筛选大型 Excel/CSV 文件。要求:CLI 界面、PySide6 GUI 界面、FastAPI Web 界面,支持常见表格格式,列筛选、全文搜索、聚光灯高亮行列,OpenAI function-calling 工具定义,用 ToolResult 统一返回格式,多线程加速大文件加载,发布到 PyPI,GitHub 组织 EasyCam。
这一段话就是全部初始输入。没有产品文档,没有设计稿,没有技术选型讨论。
AI 自己做了所有决策:用 pandas + openpyxl 做引擎(Python 生态最成熟的方案),PySide6 做 GUI(比 tkinter 更现代),FastAPI 做 Web(异步支持好),argparse 做 CLI,hatchling 做构建。
大概一个小时后,AI 交付了:完整的 8 个模块、77 个测试、PyPI v0.1.0 发布、GitHub 推送。我只需要看一眼测试结果和 pip install chabiao 能不能装上就行。
这个阶段的关键是:不要过度设计,让 AI 先跑起来。能跑比完美重要。
第二轮:贴报错修 bug
装好之后我运行 GUI,崩了。报错信息是:
运行 chabiao-gui 后崩溃了,报错:QLineEdit.setPlaceholder 不存在
我就把这句话原样贴给 AI。AI 马上定位到问题:PySide6 里这个方法叫 setPlaceholderText(),不是 setPlaceholder()。

改了一行代码,发了 v0.1.1。
这里的要点是:贴报错,不要描述报错。你不需要自己查文档找正确的方法名,AI 比你查得快。把终端里的错误信息完整复制过去就行。
第三轮:性能优化
我试了一下大文件,GUI 有卡顿。对 AI 说:
打开大文件(50K行)时 GUI 卡顿,需要分页和更多多线程
AI 做了几件事:GUI 加了分页(500 行一页),多 sheet 加载改并行,多列搜索自动并行(超过 4 列且超过 5000 行时每个列开一个线程),Web 界面的列统计也并行了。还顺手写了个 50K 行的测试数据生成脚本,跑了一下性能数据:筛选 4-18ms,搜索 307ms,聚光灯 5ms。

这个阶段的要点是:用真实场景暴露问题。AI 写的测试数据不可能覆盖所有边界情况,真正用起来才会发现卡顿在哪里。
第四轮:修布局
GUI 跑起来了,但顶部有大片空白,看起来不专业。对 AI 说:
GUI 顶部有空白区域,布局不够紧凑,需要改进
AI 重写了整个 GUI 布局:去掉空白区域,筛选栏合并到一行,表头加了蓝色主题样式表,表格占满剩余空间,聚光灯按钮直接放在头部。发了 v0.1.2。

这里的要点是:每次迭代只改一件事。不要一次说"布局不好看、加暗色模式、加多语言、性能也要优化",那样 AI 容易顾此失彼。一次一个改进,改完验证,再下一个。
第五轮:多语言和暗色主题
对 AI 说:
继续改进,要支持多语言切换,亮色暗色主题切换,多语言要有中英日法俄德西班牙葡萄牙意大利韩国
AI 创建了两个新模块:i18n.py(10 种语言翻译,每个语言约 50 个 key)和 theme.py(亮色主题和 Catppuccin 风格暗色主题)。然后重写了 GUI,把所有硬编码的中文和英文字符串替换成 t() 翻译函数调用,在 View 菜单加了 Language 和 Theme 子菜单。设置自动保存到 ~/.chabiao/gui_config.json。聚光灯的高亮颜色也根据当前主题自动切换。发了 v0.2.0。

这个阶段有个值得注意的点:AI 不只做了 GUI 的国际化,还主动做了 Web 界面的国际化。Web 界面也加了 10 种语言翻译和暗色主题,通过 URL 参数 ?lang=zh&theme=dark 切换,还有页面顶部的语言和主题下拉菜单。这是 AI 自己判断"Web 也应该有这些功能"然后做的,我并没有明确要求。
第六轮:完善和发布
对 AI 说:
继续改进,推送 GitHub 和 PyPI
AI 发现了几个可以改进的地方:Web 界面的国际化字符串用的是硬编码中英双语,改成了和 GUI 一样的翻译系统;README 文档没有提到多语言和暗色主题,更新了中英文两个 README;代码有些 lint 问题(长行、未使用的 import),全部修了。版本号递增到 v0.3.0,build、上传 PyPI、git push 一条龙。

这里的要点是:说"继续改进"比说"请把 Web 也加上国际化"更高效。因为 AI 对整个项目有全局视图,它知道哪里还需要补,会自己排优先级。你只需要确认方向对不对。
第七轮:真实数据
最后我让 AI 从 GeoRoc 数据库里提取岩浆岩数据做测试:
从 GeoRoc.db 抽取岩浆岩的所有数据作为一个 xlsx 来测试用
AI 用 sqlite3 读了数据库,发现 774 列 110 万行,筛选了 ROCK TYPE 为火山岩和深成岩的行(37 万行),从 774 列中选了地质学常用的 85 列(主量氧化物、微量元素、同位素比值),去掉了化学值全为空的行,采样了 2 万行,生成了一个 4.9MB 的 xlsx 文件。
这个过程中 AI 做了好几个合理的决策:全量数据太大(82MB 的 xlsx),选关键列而不是全部 774 列,采样而不是全量导出。这些决策不需要我逐个指定,AI 自己就能判断。

技术栈
核心依赖是 pandas 和 openpyxl,用它们来读表格数据。CLI 用 argparse,GUI 用 PySide6,Web 用 FastAPI 加 uvicorn。多线程用 Python 标准库的 ThreadPoolExecutor。国际化用自己写的字典映射,暗色主题用 QSS 样式表。构建用 hatchling,测试用 pytest,代码格式用 ruff。
可选依赖只有 PySide6(GUI)和 FastAPI 加 uvicorn(Web),基础安装只需要 pandas 和 openpyxl,非常轻量。
迭代时间线
v0.1.0 是一句话启动,AI 用了一小时左右交付了全部骨架加 77 个测试,发布到 PyPI。
v0.1.1 是修一个崩溃 bug,改了一行代码,顺带加了分页和多线程,大概半小时。
v0.1.2 是修 GUI 布局,改了样式表,大概二十分钟。
v0.2.0 是加了多语言和暗色主题,代码改动比较大(新增 i18n.py 和 theme.py,重写 GUI),大概四十分钟。
v0.3.0 是完善 Web 国际化、更新文档、修 lint,大概三十分钟。
总共不到三小时,从零到有 CLI、GUI、Web 三个界面,10 种语言,亮暗主题,89 个测试,PyPI 和 GitHub 都有。
当然,这不意味着项目已经完美。它还缺少很多功能:没有数据可视化图表、没有列排序、没有多 sheet 切换、Web 界面没有拖拽排序、大数据导出可能超时等等。但作为一个 Vibe Coding 的起步成果,它已经是一个可以用的工具了。
几个关键技术选择
为什么用 pandas 而不是直接操作 Excel?因为大文件用 pandas 的 read_excel 比纯 openpyxl 逐 cell 读取快很多,pandas 底层用 C 扩展做向量化操作,openpyxl 是 Python 循环逐行读。
为什么分页 500 行?因为 5 万行数据如果全部渲染成 QTableWidget 的 QTableWidgetItem,要创建 100 多万个对象,内存会爆,渲染要十几秒。500 行一页的话内存稳定在 50MB 左右,翻页不到 50 毫秒。
为什么 i18n 用字典而不用 gettext?gettext 是 Python 标准方案,但需要 .po/.mo 编译步骤,翻译条目分散在代码各处不好检查。10 种语言各 50 个 key,总共 500 条翻译,用字典更直观。翻译函数也很简单:查字典,找不到就回退到英语,支持格式化参数。
暗色主题为什么选 Catppuccin?对比度适中不刺眼,色板定义完整,是现在终端和编辑器圈子里最受欢迎的暗色方案之一。我们用了 Mocha 变体(最深的那个),直接硬编码在 QSS 里,不依赖外部资源。
给新手的建议
从一句话开始,不要花时间写产品文档,直接告诉 AI 你要什么,让它先跑起来。能跑比完美重要。遇到 bug 就把终端里的报错信息完整复制过去,比你自己描述"报了个错"管用一百倍,AI 定位问题的速度远超你翻文档的速度。
每次迭代只改一件事。修 bug 就是修 bug,加功能就是加功能,改布局就是改布局。如果一次提三个需求,AI 很容易顾此失彼。改完验证没问题了,再说下一个。反过来,如果你只是说"继续改进",AI 会自己判断哪里还需要补,它对项目有全局视图,很多时候比你列清单更高效。
用真实数据验证。AI 写的测试数据覆盖不了所有边界情况,只有拿你自己的数据跑一遍,才能发现真正的问题。版本号、代码风格检查、发布流程这些机械性的事情全交给 AI 做就行,python -m build、twine upload、git push 一条龙,比手动操作快得多。但测试全通过不等于没有 bug,尤其是边界条件,这一点要心里有数。
最后也是最重要的:人在 Vibe Coding 里的核心价值是判断力和品味,不是写代码的能力。你决定做什么、不做什么,比你怎么写代码重要得多。
项目链接
PyPI: https://pypi.org/project/chabiao/
GitHub: https://github.com/EasyCam/ChaBiao
安装: pip install chabiao[all]
当前版本: 0.3.0
许可证: GPL-3.0-or-later
预览时标签不可点
Close
更多
Name cleared
微信扫一扫赞赏作者
Like the AuthorOther Amount
赞赏后展示我的头像
作品
暂无作品
Like the Author
Other Amount
¥
最低赞赏 ¥0
OK
Back
Other Amount
更多
赞赏金额
¥
最低赞赏 ¥0
1
2
3
4
5
6
7
8
9
0
.
大语言模型 · 目录
大语言模型
上一篇Token自由-用MoXing在7900xtx-24G显卡上本地运行Qwen3.6-27B模型给OpenCode用来文档编撰润色下一篇重新审视-「思维链」未必是真思维-一篇ICML 2026 论文的论证与启示
Close
更多
搜索「」网络结果
Close
调整当前正文文字大小
更多
100%