找回密码
 立即注册
首页 业界区 安全 当AI编程进入「Vibe Coding」模式:从脑洞到MVP产品 ...

当AI编程进入「Vibe Coding」模式:从脑洞到MVP产品

摹熹 4 天前
  传统产品开发流程是比较繁琐的,光需求调研就要花不少时间,更别说后面的技术选型、架构设计、代码实现、测试调试、部署运维——每个环节都有大量工作要做。
AI 编程不是简单地理解为 AI 替我们"写完了所有代码",而是有整套 AI-Native 工作流:以 Claude Code 这类工具为执行引擎,以 Vibe Coding 为协作理念,让 AI 真正参与到软件工程的每个阶段。
  本文将完整记录这一开发流程,通过 NewsFlow 项目的真实案例,展示 AI 如何参与从产品构思到上线的各个环节,以及 AI-Native 工作流是如何运作的。
1.png


一、工具与方法

1.1 核心工具:Claude Code 的能力边界

Claude Code 不是简单的"代码生成器",而是一个具备工程能力的 AI 智能体(Agent)。它通过终端交互环境,能够:
   文件操作:读取、编辑、批量重构代码文件
   命令执行:运行测试、安装依赖、操作 Git、部署服务
   上下文管理:通过分析项目结构理解代码库
   子代理(Subagents):并行处理多任务,如同时审查代码和检查安全漏洞
在实践中,Claude Code 扮演的角色随阶段变化:
  产品阶段:需求顾问(头脑风暴、可行性分析)
  设计阶段:架构师(技术选型、方案设计)
  实现阶段:全栈工程师(前后端代码实现)
  验证阶段:测试工程师(调试、优化、写测试)
  交付阶段:DevOps(部署脚本、本地运维配置)
1.2 方法论:Vibe Coding 的底层支撑

之所以能实现全流程 AI 协作,依赖于 Vibe Coding(氛围编程) 的工作理念——这不是一套严格的流程规范,而是一种沉浸式的协作心态
  自然语言驱动:用"做个深色主题的新闻卡片"代替详细的需求文档
  即时反馈循环:边聊边做,有疑问当场澄清,确认后立即执行
  上下文连续性:AI 记住之前的所有决策,不会每次归零重启
这种理念让 AI 能够真正参与创造性工作(如产品构思),而非仅仅是执行指令。
二、全流程开发实录

阶段一:产品构思与技术验证

阶段目标:把模糊的想法变成可执行的方案,验证技术可行性。
AI 协作过程
头脑风暴阶段
  1. 开发者:我想做个技术新闻聚合站,聚合 IT 之家和界面新闻,要简洁好看。
  2. Claude Code: 这个需求很清晰。先澄清几个产品决策:
  3. 1. 是只展示标题列表,还是要有详情页?
  4. 2. 内容怎么获取?被动等用户提交,还是主动爬取?
  5. 3. 更新频率要求?实时还是每日批量?
  6. 4. 需不需要用户系统(收藏、登录)?
  7. 开发者:先 MVP,只展示列表,跳转到原文。主动爬取,每日更新一次。不要用户系统,越简单越好。
  8. Claude Code: 明白,纯展示型产品。技术上建议:
  9. - 前端:Next.js 15 App Router(SEO 好,部署灵活)
  10. - 后端:FastAPI(Python,写爬虫方便)
  11. - 数据存储:TTLCache 内存缓存(轻量级,适合 MVP)
  12. - 部署:跨平台启动脚本 + systemd(本地开发和生产环境)
  13. 这个方案零成本启动,后期流量大了再优化。需要我现在验证一下 IT 之家的反爬策略吗?
复制代码
技术验证
Claude 直接写了段测试代码验证爬虫可行性,确认可以拿到数据。
关键产出
产品需求明确(边界清晰)
技术栈确定(Next.js 15 + FastAPI + 内存缓存)
项目初始化完成
阶段二:建立 AI 项目记忆

关键认知:AI 需要"项目记忆"来理解代码库的上下文,这样才能生成符合项目规范的代码。
AI 协作过程
当项目骨架创建后,AI 会主动分析项目结构,建立"项目记忆":
  1. Claude Code: 正在分析项目结构...
  2. 检测到技术栈:Next.js 15 (App Router), TypeScript, Tailwind CSS, FastAPI
  3. 前端架构:
  4. - App Router 模式(app/page.tsx, app/layout.tsx)
  5. - React 本地状态管理(useState,无全局状态库)
  6. - 前端 API 代理模式(/api/news → 后端)
  7. - 组件组织:src/components/(Header, StatsBar, NewsCard, NewsGrid)
  8. 后端架构:
  9. - FastAPI + uvicorn(全异步)
  10. - 爬虫实现:ithome.py(多页分页)+ jiemian.py(24小时滚动)
  11. - 数据存储:TTLCache 内存缓存(无持久化)
  12. - 中间件:速率限制、请求日志、CORS、GZip
  13. - 日志系统:loguru 结构化日志
  14. 代码质量:
  15. - TypeScript 严格模式
  16. - ESLint 严格规则
  17. - 前端:Jest 已配置但无测试文件
  18. - 后端:pytest 已配置,10 个测试文件,覆盖率 7.22%
  19. 已建立项目记忆,后续所有对话都将基于这些上下文进行。
复制代码
CLAUDE.md 的作用
  持久化记忆:避免每次对话重复项目背景和技术约束
  风格一致性:AI 生成的代码与现有代码风格统一
  减少无效确认:既然已知用 Tailwind,就不会再问"用什么 CSS 方案"
最佳实践
  1. 进入项目第一件事(或技术栈变更后):运行 /init
  2. 将 CLAUDE.md 纳入版本控制,团队协作时保持一致
  3. 在每次开发会话开始时,让 AI 分析项目结构
  4. 确认 AI 理解当前的技术约束和约定
  5. 项目架构或技术栈变更后,重新建立项目记忆
阶段三:架构设计与数据建模

阶段目标:完成数据模型设计、API 规范、组件结构。
AI 协作过程
Claude 根据已建立的上下文,直接生成了完整的架构文档,并主动考虑了扩展性
  1. Claude Code: 我看到你选择了"每日更新"的策略,建议数据模型这样设计:
  2. **数据模型(Pydantic v2)**:
  3. class NewsItem(BaseModel):
  4.     source: Literal['ithome', 'jiemian']
  5.     title: str
  6.     url: str
  7.     time: str  # YYYY-MM-DD HH:MM:SS
  8.     summary: str
  9.     category: Optional[str]  # IT之家有,界面新闻无
  10. **缓存策略(TTLCache)**:
  11. - 缓存键:`ithome_news`, `jiemian_news`, `all_news`
  12. - 过期时间:300 秒(5 分钟)
  13. - 最大条目数:1000
  14. - 特性:TTL 过期、异步锁保护、命中率统计
  15. 考虑到后期可能加搜索,是否需要将摘要扩展到更长的文本?另外,要不要考虑引入 Redis 替代内存缓存?
  16. 开发者:暂时不用,MVP 阶段够用了。爬虫逻辑怎么设计?
  17. Claude Code: 两个方案:
  18. [方案 A] 异步 HTTP 请求:httpx + BeautifulSoup4,简单直接
  19. [方案 B] 分布式爬取:Scrapy + Celery + Redis,支持大规模抓取
  20. 考虑到 MVP 阶段,我推荐方案 A,但代码结构要预留扩展性。比如抽象异步上下文管理器,后期换 Scrapy 只需修改实现。
  21. 需要我现在生成完整的数据模型和爬虫基类吗?
复制代码
关键产出
  1. Pydantic v2 数据模型(带字段验证)
  2. TTLCache 缓存实现(带统计功能)
  3. 爬虫抽象类(异步上下文管理器)
  4. API 路由规划(RESTful 规范)
  5. 前端组件结构(基于 Next.js App Router)
阶段四:核心功能开发

阶段目标:完成数据爬取、前端展示、基础交互。
AI 协作过程
这是最高强度的编码阶段。Claude Code 展现了上下文感知生成的能力——它不再询问技术细节,而是基于项目分析直接生成符合项目规范的代码。
场景示例 1:NewsCard 组件开发
  1. 开发者:做新闻卡片组件,深色主题,展示标题、摘要、时间、来源标签。
  2. Claude Code: (基于项目分析,已了解 Tailwind 配置和颜色定义)
  3. 明白,使用 slate-900 作为卡片背景,gray-100 作为文字色。
  4. 根据项目约定,摘要使用原文 summary,时间用相对时间格式化(2小时前)。
  5. 来源标签用不同颜色区分:IT 之家用橙色,界面新闻用蓝色。
  6. (生成代码...)
  7. 需要我加上 hover 时的阴影效果吗?另外,点击卡片是新标签页打开还是当前页跳转?
复制代码
场景示例 2:爬虫逻辑调试
  1. 开发者:IT 之家爬虫报 403 错误。
  2. Claude Code: (读取 scrapers/ithome.py)
  3. 检测到缺少 User-Agent 头。此外,IT 之家有简单的反爬,建议加 1-3 秒随机延时。
  4. 需要我帮你加上这些,并测试一下吗?
  5. 开发者:加吧。
  6. Claude Code: (修改代码,运行测试)
  7. 已修复。抓取 10 条测试数据成功。建议把爬取间隔配置化写到 .env 里,方便调整:
  8. ```bash
  9. ITHOME_DELAY=1.0
  10. ITHOME_TIMEOUT=10
复制代码
场景示例 3:批量重构

当需求变更(如"缓存 TTL 从 300 秒改到 600 秒")时:
  1. 开发者:所有地方的缓存 TTL 改成 600 秒。
  2. Claude Code: 正在扫描项目...
  3. 发现 3 处需要修改:
  4. 1. backend/app/config.py(CACHE_TTL 默认值)
  5. 2. backend/app/utils/cache.py(__init__ 默认参数)
  6. 3. backend/.env.example(注释说明)
  7. 已统一修改为 600 秒,并确保所有引用处同步更新。
复制代码
子代理并行处理

Agent还可以多任务并行工作,如同时处理前端样式优化和后端性能优化。Claude 创建了子代理:
  Subagent A:优化前端虚拟滚动(处理长列表性能)
  Subagent B:给 API 加缓存统计接口
两者并行工作,互不干扰,主会话保持对整体进度的把控。
阶段五:测试与质量保证

阶段目标:确保功能稳定,修复潜在问题。
AI 协作过程
传统测试中,开发者需要手动编写测试用例、反复运行、查看日志。而在 AI-Native 流程中,测试是一个对话式排查过程。
场景:性能问题诊断
  1. 开发者:新闻列表加载慢,分析一下。
  2. Claude Code: (读取前端代码和后端 API 逻辑)
  3. 发现三个问题:
  4. 1. API 没做分页,一次性返回所有数据(当前缓存已有 2000+ 条)
  5. 2. 前端图片没做懒加载,首屏加载 20 张图
  6. 3. 缓存命中率低,频繁请求后端
  7. 修复建议:
  8. [1] API 加分页(limit/offset),默认 20 条
  9. [2] 图片加 loading="lazy" 属性
  10. [3] 调整缓存 TTL 从 300 秒到 600 秒
  11. 优先级?建议先做分页,影响最大。
复制代码
测试现状评估
  1. 开发者:评估一下当前测试覆盖情况。
  2. Claude Code: 正在分析测试基础设施...
  3. 前端测试:
  4. - ✅ Jest 29.7.0 + @testing-library/react 已安装
  5. - ✅ jest.config.js 配置正确(jsdom 环境、覆盖率收集)
  6. - ❌ 0 个测试文件(*.test.tsx 或 *.spec.tsx 不存在)
  7. - ❌ 0% 覆盖率(11 个源文件完全未测试)
  8. 后端测试:
  9. - ✅ pytest 7.4.4 + pytest-asyncio + pytest-cov 已安装
  10. - ✅ pyproject.toml 配置完整(测试标记、覆盖率报告)
  11. - ⚠️ 10 个测试文件(组织混乱:根目录 6 个,backend/ 3 个,backend/tests/ 2 个)
  12. - ❌ 7.22% 覆盖率(仅 models.py 78.57%,其他核心模块 0%)
  13. 核心问题:
  14. 1. 完全未遵循 TDD 原则(所有生产代码都没有测试)
  15. 2. 测试文件组织混乱(未使用 pytest 标准组织)
  16. 3. 缺少关键测试类型(API 路由、抓取器、缓存、中间件)
复制代码
测试补充建议
  1. Claude Code: 建议分阶段补充测试:
  2. 阶段一(紧急):
  3. - 清理测试文件组织(移至 backend/tests/)
  4. - 为核心组件添加测试(NewsCard, StatsBar)
  5. - 为工具函数添加测试(utils.ts, logger.ts)
  6. 阶段二(核心):
  7. - 添加 API 路由集成测试(test_routers.py)
  8. - 添加抓取器异步测试(test_scrapers.py)
  9. - 添加缓存功能测试(test_cache.py)
  10. 阶段三(全面):
  11. - 添加 E2E 测试(Playwright)
  12. - 设置覆盖率目标(80%+)
  13. - 配置 CI/CD 自动化测试
  14. 需要我现在开始补充测试吗?
复制代码
安全审查
通过子代理自动扫描依赖漏洞,发现 lodash 版本过低,提示升级。
阶段六:文档补充

阶段目标:上线验证,补全文档,准备交接。
AI 协作过程
   Smoke Test:Claude 运行启动脚本,验证主流程通畅
   文档生成:基于代码结构自动生成项目文档
   API 文档:使用 FastAPI 自动生成交互式文档(/docs Swagger, /redoc)
最终交付物
   ✅ 可访问的网站(已上线)
   ✅ 完整代码库(含注释)
   ✅ 部署文档(README.md, frontend/README.md, backend/README.md)
   ✅ 启动和停止脚本(start.bat/start.sh, stop.bat/stop.sh)
   ✅ 环境变量示例(.env.example)
   ✅ API 文档(/docs, /redoc)
  ⚠️ 测试覆盖:前端 0%,后端 7.22%(需后续补充)
三、为什么 AI 能完成全流程

3.1 上下文连续性是关键

分析项目结构后,AI 记住了:
  产品定位:纯展示型,深色主题,每日更新
  技术约束:Next.js 15 + FastAPI,Tailwind 样式规范
  已做决策:用内存缓存而非数据库,暂时不做用户系统
  代码风格:TypeScript 严格模式,ESLint 规则,Pydantic v2 数据验证
这使得在部署阶段,AI 依然记得最初定的技术栈,不会突然问"要不要换成 Vue"。
3.2 自然语言接口降低沟通成本

在架构设计阶段,用自然语言对话完成了传统开发中需要长时间评审的技术方案。当 AI 问"要不要引入 Redis 替代内存缓存"时,回复"暂时不用,MVP 阶段够用了",这种模糊但高效的沟通只有在 Vibe Coding 状态下才能实现。
3.3 工具链集成实现闭环

Claude Code 不仅是"聊天写代码",它能:
  1. 执行命令:运行测试、部署服务、启动/停止应用
  2. 读写文件:批量重构、更新配置、生成文档
  3. 并行处理:子代理让测试和开发同步进行
复制代码
这种REPL(读取-求值-输出-循环)式的交互,让 AI 能真正参与工程实践,而不只代码建议。
3.4 诚实地面对局限

AI 协作也不是万能的。在本次开发中,真实地记录了:
  ❌ 无数据库持久化(仅内存缓存)
  ❌ 测试覆盖不足(前端 0%,后端 7.22%)
  ❌ 无 CI/CD 自动化
  ❌ 无定时任务配置
  ❌ 无分布式缓存
这些局限不是 AI 的问题,而是项目阶段的自然选择。AI 帮助我们在 MVP 阶段快速上线,同时清晰地记录了改进方向。
四、避坑指南

  正确使用项目分析:在开发前让 AI 分析项目结构,确保理解技术栈和约定
  关键节点人工确认:虽然 AI 能独立完成部署,但生产环境变量修改等高危操作必须人工确认
  定期清理上下文:长时间开发后重新分析项目结构,防止早期重要决策(如"不做用户系统")被遗忘
  保持代码审查:AI 生成的代码功能可用,但需关注边界情况处理(如空值、异常流)
  区分 Vibe 的 Ask 与机械 Ask:如果感觉像在填表而不是对话,说明需要调整提问方式。Vibe 的 Ask 应该像结对编程时的即时确认,而非面试问卷。
  诚实记录局限:不要为了"看起来完美"而隐瞒问题。诚实地记录当前状态(无数据库、测试不足),并讨论改进空间。
  TDD 是硬约束:如果选择 TDD 工作流,必须先写测试再写代码。如果暂时不遵循 TDD,也要明确记录原因。
五、AI-Native 开发的未来

NewsFlow 的开发证明了一件事:AI 已经能够承担软件工程的全流程工作,不再是简单的代码补全工具。
在这个过程中,Claude Code 作为具备工程执行能力的智能体,让我们可以用自然语言驱动从脑洞到产品的完整链路。而 Vibe Coding 作为一种工作理念,确保了这种协作是流畅、沉浸且高效的。
一个人 + AI = 产品团队(产品+架构+前后端+测试+运维)。这不再是比喻,而是已经落地的现实。
AI 协作可以让我们清楚的知道当前项目的真实状态:
  ✅ 快速实现 MVP,验证产品想法
  ✅ 技术栈现代化(Next.js 15 + FastAPI)
  ✅ 代码质量高(TypeScript 严格模式、Pydantic v2)
  ⚠️ 需要补充测试(TDD 工作流)
  ⚠️ 需要引入数据库(持久化)
  ⚠️ 需要配置 CI/CD(自动化)
AI 可以帮我们写代码,还可以帮我们看清了项目的全貌,清楚了解做得好的地方和需要改进的地方。这才是 AI-Native 开发的真正价值:不是替代开发者,可以让开发者更快地做出更好的决策。
文章首发地址:https://mp.weixin.qq.com/s/eimiw-PedLAExf69K_raHg

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册