ai coding流程

因为之前我只在编码时使用ai,并且也只限于一些模块功能的实现上。所以借着这次的机会,我看了一些视频,试图去系统性的了解ai工作流并加以总结,以便在将来的工作中更好的利用ai辅助工作。

1. 使用ai辅助编码

(1)积极使用ai,让它成为编程助手

  • 指导思想:

    • 抛弃必须每一行代码都自己写的思想。应从单纯的需求实现者转变为业务需求分析者、系统的架构设计者、问题的解决者
    • 专业者不应抵触ai工具,而应当使用专业知识去驾驭vibe coding,并成为一个顶级的viber coder。利用专业性更精准的指挥ai实现解决问题。
    • 应提前预见系统可能在将来迭代、扩展过程中可能遇到的困难。比如:从设计整体框架的时候,就提前做好相应处理,让系统的“地基”稳固,在将来的扩展中能够保证不会产生多米诺骨牌式的崩塌。
  • 核心要点:

    • 🚀 加速开发流程:快速生成样板代码、实现常见功能
    • 💡 激发创意:提供多种实现思路,探索最佳方案
    • 📚 学习新语言/框架:即时获取语法、API使用示例
    • 🛡️ 减少低级错误:自动补全避免拼写和语法失误

    不仅是代码生成器,更是学习伙伴和效率倍增器。

  • 工具列举:

    • ChatGPT / Claude():对话式生成、解释、重构代码
    • Gemini(Google): 多模态代码分析、支持超大上下文窗口、可上传代码库进行深度分析、跨文件代码理解与重构建议
    • deepseek / kimi:快速生成样板代码、实现常见功能、解释代码提示词生成、询问学习新概念、系统的架构设计参考
    • GitHub Copilot:实时代码补全,支持多种IDE集成,自动补全复杂表达式。
    • openclaw:直接操控电脑完成相应的操作。
    • nano banana:按照提示词修改原图。
    • seedance: 音视频生成。
    • TRAE(字节):AI原生IDE、自然语言编程、智能代码补全、项目级理解、自动Debug、SOLO模式自主开发复杂任务
    • Cursor:AI驱动的编辑器、内置Chat面板、代码库全局理解、一键应用AI建议、支持多种编程语言

(2)ai辅助编码工作流

  • 整体思路

    先自己设计每个模块的接口,写需求文档描述各个接口的功能,让ai实现各个模块的功能,并作单元测试。
    这样虽然人工需要多写一些东西,但对整个工程是有把控的,并且每次加功能的时候,人工快速看一下加的功能是否合理,不至于将所有内容都交给ai去做。
    完全的vibe coding,在不断的加功能的过程中,容易导致混乱,导致后面每次加功能都出一堆的bug。

  • 流程具体来说:

    • 写需求文档

      不必像专业产品经理那样一开始就写的很细,可以让ai问你问题,进行细化。可以用不要钱的gemini网页版、chatGPT,不消耗token。

    • 写框架代码(重要

      • 只包含接口和数据结构定义,没有任何逻辑实现的代码。

        • 把系统通过接口定义,拆成在1000行以内的多个小模块
        • 每个小模块的功能尽量单一
        • 剥离出可自动测试的逻辑(重要),让ai可以通过写单元测试的代码自己验证正确性。
        • 每个模块可以依赖其他模块的接口,但不能依赖它们的具体实现。
          为什么拆分后ai犯错少?
        • 模块少,上下文少。ai不需要关注太多的上下文。
        • 模块要么简单到不需要测试,要么可被ai自动编写代码测试。
    • 如果对系统没有足够的了解无法设计整个架构,可让ai辅助先给出架构的设计,再审核并按照需要补全。

      • 把需求文档给ai,让ai写技术方案
      • 自己审核ai的设计方案,不懂的问它。比如问它:你设计的每个怎么单独做自动化测试。
        千万不要在不懂ai给出的设计逻辑前,就采纳它的方案和实现,那它的设计将成为黑盒。
  • 让ai实现和测试各个模块的具体实现

    不用细看实现逻辑,但需要确保ai有没有为了逻辑在设计好的框架里乱加接口。
    ai若破坏了设计,就把约束规则写进规则文件。

  • 主流工具的规则文件

    • Claude Code:CLAUDE.md
    • Cursor:.cursor/rules/*.mdc
    • Open Code:AGENTS.md
  • 这个工作流程的好处

    AI时代,设计能力大于实现能力。

    • 强制先做代码结构设计

    • 强制锻炼问题的拆分能力

  • 关键技巧:

    • 📝 清晰描述意图:用自然语言写出详细的注释或需求

    • 反向索取:与其猜测ai完成任务需要什么,不如反过来让ai引导你提供它需要的资料:你需要完成我给你的任务,你需要我提供什么信息,请你采访我。

    • 利用ai的多模态:不能认为只能文字生成文字、图片生成图片。以文字作为纽带,让文字、图片、pdf文档、代码、视频、音频这些素材之间互相转化。

      比如:想让ai生成想要的图片、视频时,可以先用简短的提示词让ai生成具体的图片、视频的描述,然后按照自己的需求加以修改,再让ai根据这段描述生成图片、视频。

  • 告别ai的幻觉:

    当ai陷入幻觉一本正经的胡说八道时,专业者应当对它们给出的设计方案、代码实现进行把关,并快速的定位出发生问题的地方。

    这也引出了一个更加根本的问题:事先就做正确,比事后花很多时间去修正要高效的多。而程序员应对做的就是通过把关、有意识的优化某些关键地方,让系统后续运行时的时间成本、经济成本更加的低。

2. 使用ai调试代码

  • 核心做法:

    • 🔎 解释错误信息:将晦涩的报错信息、堆栈信息翻译成易懂的问题描述,快速定位错误根源
    • 🛠️ 提供修复建议:直接给出修改后的代码片段,可参考或直接使用。同时让AI编写相关模块的单元测试代码,并自动验证修复效果
    • 📊 分析日志:让AI从海量日志中发现问题,分析异常模式、性能瓶颈和潜在风险
    • 🧠 推理逻辑错误:通过描述行为与预期的差异,定位潜在bug,提供debug方向和排查思路
    • 验证修复效果:让AI设计测试用例,验证bug是否真正修复,避免回归问题
    • 🔄 知识沉淀:将遇到的bug和解决方案整理成文档,建立团队错误知识库
    • 📈 性能优化:分析代码执行效率,找出性能瓶颈,提供优化建议

    调试占开发时间的很大比例,AI可以大幅缩短这一过程,提升效率。

  • AI调试的局限性:

    • ⚠️ 复杂逻辑错误:AI可能无法理解深层业务逻辑

    • 🔗 依赖外部系统:网络、数据库等问题需要手动排查

    • 🔒 数据隐私:避免将生产环境敏感数据输入AI

    • 🤔 仍需人工判断:AI建议可能不完全适合当前架构

将AI作为辅助工具,关键的错误排查还是需要开发者结合经验、业务分析。

3. 手动定位问题

手动调试是软件工程师的基本功,需要耐心和细致,可以结合ai给出的可能方向,然后手动调试

  • 核心方法:
    • 日志分析法:在关键位置添加日志输出变量、流程信息
    • 断点调试:使用IDE调试器或gdb逐行执行,观察状态变化
    • 二分法:注释一半代码,确定问题在哪一半,逐步缩小范围,精准定位bug位置
    • 回溯法:从错误点反向追踪调用栈,寻找源头
    • 单元测试:编写测试用例隔离验证模块正确性

4. 一些概念

  • prompt

    提示词,一次性的指令。

  • Rule

    长期有效,影响 AI 对所有问题的响应风格。它不定义任务流程,只定义“如何说话”、“遵循什么规范”。

  • skill(工作流)

    TRAE功能skills,通过描述文件,结构化的描述一个可复用的工作流程,类似工作手册。

    AI 按照 Skill 中定义的步骤(步骤1、2、3...)执行,确保输出的一致性和质量。

  • MCP(Model Context Protocol,模型上下文协议)

    它不是告诉 AI 做什么(指令),也不是规定怎么做(流程),而是赋予 AI 连接外部世界的能力。通过 MCP,AI 可以实时查询数据库、调用搜索引擎、操作本地文件系统。

  • RAG(检索增强生成)

    在 AI 回答问题前,先从你提供的知识库(如公司内部文档、项目技术手册)中检索相关片段,然后将这些片段作为“参考资料”连同问题一起发给 AI,让 AI 基于这些资料回答,避免胡编乱造。

5. 搭建个人知识库

(1)为什么不直接用网页大模型

  • 数据隐私性

    联网使用大模型数据或代码的隐私性无法得到保证。可以通过对话大模型(如DeepSeek)的本地部署解决隐私问题。

  • 上传文件的限制

    • 网页版ai对文件上传的数量、大小一般有限制并且通常需要付费。
    • 每次在新对话中提问相关问题时,仍需要重新上传附件。

(2)搭建流程

  • 本地部署对话大模型
  • 使用RAG技术构建个人知识库
    • 本地部署开源框架RAGFlow
    • 本地部署Embedding大模型(或者直接部署自带Embedding模型的RAGFlow版本)

6. 其他常用需求的ai工作流

(1)ui设计及代码生成

  • 先写详细需求文档,把页面元素、交互逻辑、状态流转全部写清楚;
  • 让 AI 根据需求生成pen设计稿文件;
  • 再让 CodeX 5.3 结合需求文档 + Pencil 设计稿,直接一把生成带交互的高保真静态页面。

(2)生成ppt

  • 让deepseek根据需求,生成ppt内容的描述
  • 对描述进行审核和修改
  • 在kimi的ppt功能里选择合适的风格生成ppt

(3)由人物图片生成动画

  • 使用nano banana或有免费额度的Lovart去掉原图背景,变为纯色背景。
  • 将图片给可以识别图片的大模型如Gemini,让它按照识别的图片和提示词要求,生成动画九宫格分镜图的文字描述。
  • 将生成的文字描述进行微调,用nano banana或Lovart输入提示词生成九宫格分镜图。
  • 选择即梦Seedance2.0模型全能参考,把分镜图、文字描述提示词都给它,让其生成视频。

(4)读写操作pdf

  • skill描述文件内,详细告诉ai如何通过python读写、操作pdf文件(文件拆分、抽取数据图表等)
  • skill文件内容,可由提示词交由ai来写。

7. 总结

AI + 手动 = 高效开发

在日常工作中不断总结自己的工作流。

posted @ 2026-02-28 21:11  仰望星河Leon  阅读(0)  评论(0)    收藏  举报