大型vibe coding项目的一些技巧
内容提要
文章介绍使用opencode等AI编程代理开发大型项目的技巧:选择清晰、模块化的目录结构;创建并定期同步AGENTS.md,写明项目结构、功能、规范和常用命令;避免直接构建,先用plan模式对齐需求,复杂需求用grill-me澄清;每天用improve-codebase-architecture检查优化空间;编写测试用例并确保通过;搭建CI/CD并设置预生产环境。
延伸解读
大型项目的界定与维护成本
文章将“大型项目”定义为交互多、涉及后端接口、验证、数据库、多用户和S3文件存储等复杂度的项目,而非单纯代码量。这类项目维护成本高,AI难以在单次会话中处理所有需求,且更换模型或会话后需快速理解上下文。因此,作者强调目录结构、AGENTS.md等机制,本质是降低AI的探索成本,让项目在AI不可用时仍可维护。
AGENTS.md:让AI操作可控的契约
AGENTS.md是coding agent每次对话都会读取的文件,应包含项目结构、功能介绍、代码规范和常用命令。它能把AI的操作约束在指定范围内,例如统一依赖管理工具、规定api和service目录的职责。文章建议新项目或已有项目都让AI创建该文件,并每天同步一次,防止文档与代码结构脱节,否则AI会基于过时信息做出错误决策。
先对齐需求再写代码
作者强烈建议不要直接进入build模式,除非只是提交代码或写简单维护脚本。需求未对齐会浪费Token和时间,并带来挫败感。简单需求可先plan后build;只有大概方向时,可用grill-me让AI与人对齐目标,帮助发现计划不足。需求清晰后再开发,能显著降低返工概率,这对交互复杂的大型项目尤其关键。
用测试与CI/CD兜住AI的速度
AI写代码速度极快,因此需要机制检测正确性。文章建议为功能编写测试用例,开发或修改后确保全部通过,以增强对代码的信心。同时搭建CI/CD平台,省去手动执行脚本和部署的零碎时间;由于自动化程度高,应设置预生产环境,验证无误后再发布生产。作者推荐GitHub Actions,认为免费额度完全够用。
Q&A
用AI编程代理开发大型项目时,为什么不能直接让AI生成代码目录结构?
因为AI生成的目录结构可能好也可能不好,如果组织得不好,会导致你自己和AI都看不懂代码。所以应该选择一个合适成熟或熟悉的目录结构,确保清晰、模块化。
AGENTS.md文件应该包含哪些内容?
一个典型的AGENTS.md文件应该包括:项目结构、项目功能介绍、代码规范、常用命令。这样AI每次对话都会读取,减少探索时间,使操作更可控。
为什么需要定期同步AGENTS.md文件?
随着项目功能增加,代码结构和实现可能跟之前的AGENTS.md文件出现分歧,所以有必要定期同步,比如一天一次,以保持文件与项目实际一致。
在大型项目中,为什么建议先用plan模式而不是直接build?
因为需求没对齐是灾难性的,既浪费Token也浪费时间,还会带来挫败感。先用plan模式澄清需求再开发,可以避免这些问题。
grill-me这个需求工具适合什么场景?
适合那些你只有大概的设计和方向的需求,它可以帮助AI跟你对齐目标、对齐需求,让你发现自己的不足并完善计划,需求清晰后开发更顺利。
如何防止AI写的代码变成屎山代码?
每天结束前使用improve-codebase-architecture检查代码有没有可以优化的点,及时优化,避免等变成屎山代码再重构。
为什么AI写代码需要编写测试用例?
因为AI写代码速度太快,需要机制来检测。生成对应的测试用例很有必要,开发或修改功能时确保测试用例全部通过,这样会对代码更有信心。
构建CI/CD平台时,为什么需要预生产环境?
因为CI/CD太自动化,需要一个预生产环境来验证,预生产没有问题才直接发生产环境,避免直接发布到生产环境的风险。