想象一下:我正盯着一个包含492期播客节目指标的CSV文件。多年的数据——收听次数、留存率、性能指标——全部静静地躺在那里,等待被讲述。但我不想花几天时间构建仪表盘和处理数据。
于是我做了任何现代开发者都会做的事:我打开VS Code,启动GitHub Copilot,选择Claude Sonnet 4.5作为推理模型,决定通过vibe编程的方式构建一个漂亮的分析平台。
剧透:第一个版本只用了5分钟就运行起来。然后又花了10分钟让它变得完美。
开场提示:大胆梦想,简单开始
我在VS Code的代理模式聊天中输入了以下内容: “附件中包含我们每期播客的所有指标数据。创建一个漂亮的网站,帮助可视化、搜索、发现主题等。为播客创作者想出一些他们可能需要的功能并构建出来。使用基于vite的应用,我可以在GitHub Pages上发布。”
就这样。没有技术规范,没有线框图,没有"请使用React 18.2与TypeScript 5.3和Tailwind 3.4"。纯粹的氛围。
为什么选择Claude Sonnet 4.5?
我选择Sonnet 4.5作为GitHub Copilot中的推理模型,因为这不仅仅是代码补全——我需要深度的架构推理。Sonnet 4.5擅长:
- 从自然语言理解复杂需求
- 基于上下文做出智能技术选择
- 架构整个系统,不仅仅是函数
- 预见边缘情况
为什么这有效
vibe编程的关键不是模糊——而是以结果为导向。我告诉GitHub Copilot:
- 我有什么:包含播客指标的CSV
- 我想要什么:一个漂亮、可搜索的网站
- 我想要的方式:基于Vite,可部署到GitHub Pages
构建过程:见证魔法发生
在短短2分钟内,GitHub Copilot就搭建好了:
|
|
智能设计决策
AI不只是创建文件——它架构了一个解决方案:
- 组件架构:将关注点分离到仪表盘、列表、分析、图表和详情视图
- 状态管理:使用React钩子
- 数据流:单一的loadEpisodes()函数,记忆化计算
- 样式系统:Tailwind工具类与自定义主题颜色
- 类型安全:完整的TypeScript覆盖与适当的接口
第一个Bug:CSV解析问题
我运行了npm run dev,打开浏览器……数字看起来不对。完全不对。
问题:标题中的逗号 我的CSV有这样的条目:
|
|
GitHub Copilot立即理解了问题并重写了解析器。
部署挑战:GitHub Actions
现在我需要将其部署到GitHub Pages。我在另一个仓库中有工作示例,所以我询问: “你能为此创建GitHub Pages部署吗?参考:https://github.com/jamesmontemagno/PinkPuffQuest/blob/main/.github/workflows/deploy.yml”
GitHub Copilot获取了工作流,理解了模式,并创建了部署配置。
TypeScript问题
首次部署失败:
|
|
典型的过度导入情况。GitHub Copilot的响应很精准,清理了未使用的导入。
我实际构建的内容
让我们谈谈最终应用中的内容,因为这确实令人印象深刻:
1. 带智能分析的仪表盘
- 总集数、收听次数、平均值、增长率
- 带Recharts的性能时间线
- 按性能排名的前10集节目
- 最佳节目聚焦
2. 高级搜索和筛选
记忆化以提高性能。响应式。优雅。
3. 带AI提取的主题分析
这是我最喜欢的功能。AI从节目标题中提取主题。
4. 留存分析
应用自动计算留存曲线。
5. 漂亮的图表
Recharts使这变得简单。
Vibe编程方法论
让我分解一下这成功的原因:
1. 结果驱动的提示
不要说:“创建带有数据属性的React组件” 要说:“构建显示我播客指标的仪表盘”
2. 让AI做技术决策
AI选择了:
- 组件架构
- 状态管理模式
- 样式方法
- 图表库
- 构建工具
3. 基于Bug迭代,而不是功能
当某些东西出错时,我描述症状:
- “数字不准确” → 修复CSV解析器
- “构建失败并报错” → 清理导入
4. 参考你自己的作品
我指向Claude我的其他GitHub仓库以获取部署工作流。它理解了模式并进行了调整。
5. 信任类型
TypeScript在运行时之前就捕获了问题。
GitHub Copilot如何施展魔法
GitHub Copilot不仅仅是建议代码——以Sonnet 4.5作为推理模型,它成为了我的架构师和结对程序员:
架构级别:
- 设计整个组件结构
- 做出技术栈决策
- 规划数据流和状态管理
- 预见边缘情况和故障模式
实现级别:
- 自动完成重复模式
- 建议合理的变量名
- 填充实用函数
- 编写测试数据转换
结果:5分钟到生产
时间线:
- 第1分钟:编写初始提示
- 第2分钟:Claude搭建整个项目
- 第3分钟:npm install && npm run dev
- 第4分钟:查看工作仪表盘,发现CSV bug
- 第5分钟:修复CSV解析器,欣赏结果
后续:
- 第10分钟:添加GitHub Actions工作流
- 第12分钟:修复TypeScript错误
- 第15分钟:在GitHub Pages上实时运行
我学到的关于Vibe编程
这不是关于懒惰
我没有避免学习。我避免了重新学习我已经知道的东西。
这是关于杠杆作用
我的工作是:
- 定义结果
- 提供数据
- 识别何时出错
- 发布
AI的工作是其他所有事情。
这是关于流程
没有上下文切换到:
- 阅读文档
- 搜索Stack Overflow
- 调试神秘错误
- 记住Recharts API语法
让我惊讶的代码
这是Claude编写的一些我认为很聪明的代码:
|
|
它创建了一个我甚至没有要求的性能分类系统。但这完全合理——现在每个节目都有一个徽章显示它与平均水平的比较。
最终想法:未来是Vibes
这不是未来——就是现在。GitHub Copilot与像Sonnet 4.5这样的高级推理模型已经从根本上改变了我们构建软件的方式。
问题不是"AI能写代码吗?"(是的,显然)。问题是:“我如何与GitHub Copilot合作以更快地构建更好的软件?”
自己尝试
想要vibe编程你自己的项目吗?这是配方:
- 从VS Code + GitHub Copilot开始(对于需要深度推理的复杂项目选择Sonnet 4.5)
- 编写结果导向的提示:“构建我做X的Y”
- 让Copilot做技术选择:除非你有强烈意见,否则不要过度指定
- 迭代问题,而不是解决方案:描述什么是错的,让Copilot修复它
- 快速发布,更快迭代:快速进入生产,基于实际使用改进
项目链接:
- 源代码:github.com/jamesmontemagno/podstats
- 实时演示:jamesmontemagno.github.io/podstats
- 播客:mergeconflict.fm
克隆它。修改它。与它共鸣。