|
前言:AI时代,我们该如何与AI Coding协作? 随着AI技术在软件开发领域的快速发展,AI Coding作为一款强大的AI辅助开发工具,正在深刻改变着我们的开发模式。然而,在实际应用过程中,许多开发人员在早期使用这类工具时存在一些认知误区,影响了工具效能的最大化发挥。 误区一:过分依赖最终输出,忽视实现过程许多开发者认为有了AI加持后,可以不去详细了解功能和实现的过程,只关注最终的输出。这是一个非常大的误区。AI在后台开发中的输出过程存在非常大的不确定性。 误区二:把AI当作具有丰富业务经验的专家另一个常见误区是把AI当成了和自己一样有着丰富所在业务方向经验的人,提示词写得过于简单。然而,受限于上下文长度,AI其实更像是一个有着丰富编程经验的编程高手,但他最缺乏的是思路。
本文档基于在AI Coding应用中的实践经验,旨在为后端开发人员提供系统性的使用指导。通过本次分享,开发者将重点掌握以下两个核心能力: - 在AI Coding之外构建有效的个人上下文管理体系。
我们期望通过本次分享,帮助开发者在享受AI带来效率提升的同时,能够保持对代码质量和需求理解的精准把控,真正实现人机协同的高效开发模式。 在AI Coding的实际应用中,我们发现有效的个人上下文管理是提升AI辅助开发效率的关键因素之一。这主要基于以下几个方面的考虑: - AI Coding上下文长度限制:AI工具的上下文窗口有限,如何在有限空间内传递最有价值的信息成为关键挑战。
- 有效利用上下文空间的重要性:合理分配和利用上下文空间,能够显著提升AI输出的准确性和相关性。
- 个人上下文管理的价值:通过结构化的上下文管理,开发者能够在复杂项目中保持思路清晰,确保开发过程的连贯性。
1.2.1 需求理解与文件筛选在启动AI辅助开发之前,系统性的需求理解和文件筛选是必不可少的准备工作: - 如何从需求中提取关键信息,明确核心功能点和约束条件;
- 建立需求与代码的映射关系,为后续提示词设计提供依据;
1.2.2 .md文档的创建与维护.md文档作为上下文管理的核心载体,其创建和维护需要遵循一定的规范: - 创建需求上下文文档,系统性记录关键信息和设计思路;
- 持续更新和完善文档内容,保持信息的时效性和准确性;
- 遵循文档结构的最佳实践,确保信息的可读性和可维护性;
1.2.3 跨会话记忆传递 在需要开启新会话时,如何有效传递和恢复上下文信息是保证开发连贯性的关键: 注:将1.2.2产生的.md文件跨会话引用,节省大量重复阅读所消耗的token。基于在多个项目中的实践经验,我们总结了以下关键技巧: - 关键信息提炼方法:用结构化的方式记录核心要点,提高信息传递效率;
- 文档组织结构建议:按照逻辑关系和重要性组织文档内容,便于快速查找;
- 版本控制与变更追踪:通过版本管理机制追踪文档变更历史,确保信息一致性;
- 分步骤保存:像输出代码仓库整体架构的文档会阅读大量文件,需要定义阶段,并分阶段进行保存,防止一次阅读过多,导致的上下文压缩后的记忆丢失问题。
在AI辅助开发实践中,准确理解AI的能力边界是确保开发质量的前提。基于实践经验,我们需要重新审视以下几个关键认知: - "模糊的输入,混乱的输出"的现实:AI输出质量与输入质量密切相关,精心设计的提示词和上下文信息是获得高质量输出的基础。
- AI在代码生成中的优势与局限:AI在模板代码生成、常见模式实现等方面具有显著优势,但在复杂业务逻辑处理、架构设计决策等方面仍存在局限性。
- 祛魅:AI是辅助工具而非替代品:AI应当被视为提升开发效率的有力工具,而非完全替代开发者思考和判断的自动化系统。
2.2.1 需求分析方法准确的需求理解是判断AI输出是否符合预期的基础,这要求开发者具备以下能力: - 技术需求与业务需求的关联分析,确保技术实现与业务目标一致;
2.2.2 代码仓库理解对现有代码仓库的深入理解是判断AI输出准确性的关键参考: - 项目架构与模块划分的理解,确保新代码与现有架构保持一致;
- 关键接口与数据流理解,确保新功能与现有系统良好集成;
2.3.1 判断标准建立建立系统性的判断标准是确保AI输出质量的关键: - 功能正确性验证(结果):检查AI生成的代码是否正确实现了预期功能;
- 代码质量评估(过程):从可读性、可维护性、性能等方面评估代码质量;
- 性能与安全性考量(影响范围):识别潜在的性能瓶颈和安全风险;
2.3.2 常见错误识别在实际应用中,我们总结了以下常见的AI输出问题类型: - 逻辑错误识别方法:通过边界条件测试、异常路径验证等方式识别逻辑缺陷;
- 代码规范问题检查:确保生成代码符合团队编码规范和最佳实践;
- 潜在风险点分析:识别可能影响系统稳定性或安全性的风险因素;
2.3.3 反馈与迭代机制建立有效的反馈和迭代机制能够持续提升AI输出质量: - 与AI的交互式优化策略,通过多轮对话逐步完善输出(结合1.2 上下文管理方法论);
通过AI辅助开发的实践,我们发现开发者需要实现从单纯编码向全局思考的思维转变: - 全局视角的重要性:不仅关注代码实现,更要关注系统架构、业务逻辑、用户体验等多维度因素;
- 需求、技术、团队的综合考量:在开发过程中需要平衡业务需求、技术实现等多重因素。
3.1.1 PRD理解与系统分析基于实践经验,我们推荐采用以下标准化流程进行PRD理解与系统分析: 
该流程的具体实施要点如下: - 输入PRD文件:将产品的PRD文档作为输入提供给AI Coding,确保文档内容完整、需求明确。在实际操作中,建议对PRD进行结构化处理,提取关键信息点。
- 人工介入分析:开发人员首先需通过经验/AI Coding分析当前代码仓库,识别三类内容:
- 可复用的现有代码模块:识别可直接复用或稍作调整即可使用的现有功能;
- 需要新增的功能模块:明确需要从零开始开发的新功能点;
- 需要调整的现有功能:识别需要修改或扩展的现有功能模块;
- 生成开发概要:将PRD、代码分析结果和人工理解一并提供给AI Coding,要求AI Coding结合这些信息生成开发概要或大纲。此阶段建议采用分步骤渐进式方式,避免一次性处理过多信息。
- 审核与指正:人工审核生成的开发概要,对不正确或不完善的部分进行指正,重复此过程直到产出准确的系统分析文档。审核时应重点关注架构设计的合理性、技术选型的恰当性等关键点。
3.1.2 代码开发与迭代代码开发阶段建议采用以下迭代式开发流程: 

该流程的实施要点包括: - 会话管理:建议开启新的会话进行代码开发,新会话直接读取第一阶段产出的.md文件以获取上下文。这样既能保持会话的清晰性,又能有效传承关键信息。
- 开发准备:指定代码开发的目标目录,提供参考代码以帮助AI Coding理解项目结构。参考代码应包含项目中典型的代码模式和架构规范。
- 代码开发与版本管理:AI Coding根据系分文档进行代码生成,重要的版本管理策略:
- 及时提交可用版本:确保每个可运行的版本都能及时提交,便于回溯和协作
- 避免积累过多修改:防止大量修改积压导致问题定位困难
- 防止多轮修改后难以回退:通过合理的版本控制策略确保能够快速回退到稳定状态
- 功能验证与迭代:对生成的代码进行功能验证,发现问题时及时提出并要求修改,完善相关文档内容,循环执行此过程直到满足所有需求。验证应包括单元测试、集成测试等多个层次。
- 上下文管理:当上下文不足时,开启新的会话,新会话直接阅读.md文件以补全上下文。通过文档化管理确保上下文信息的完整性和一致性。
3.1.3 最佳实践建议基于多个项目的实践经验,我们总结了以下关键建议: - 分阶段处理:严格区分PRD理解和代码开发两个阶段,每个阶段都有明确的输入和产出。这种分阶段处理方式有助于降低复杂度,提高处理效率。
- 文档驱动开发:以.md文件作为核心文档进行开发指导,确保文档与代码保持同步更新。文档不仅是信息载体,更是开发过程的重要指导工具。
- 版本控制:频繁提交,避免大量积压修改,便于问题追踪和版本回退。建议采用语义化的提交信息,便于理解每次修改的内容和目的。
- 会话管理:合理使用新会话避免上下文混乱,利用文档快速恢复上下文。在复杂项目中,良好的会话管理策略能够显著提升开发效率。
3.2.1 应用场景在日常开发工作中,除了核心的代码开发任务,我们还会遇到大量重复性的脚本工作,如数据处理(csv转json《合并技能评估提示词》)、批量操作(国际化信息数据录入《多语言》、sql脚本数据迁移)等。通过合理运用AI Coding结合Python脚本,能够显著提升这类任务的处理效率和质量。 典型的应用场景包括但不限于: *注:由大模型底层架构决定了,模型本身就非常适合做寻找规律的事情,所以使用脚本来协助我们梳理日常的业务数据、寻找规律、提取内容都是非常适合的。 3.2.2 实现思路基于实践经验,我们推荐采用以下标准化流程来实现Python脚本辅助的数据处理任务: 该流程的具体实施步骤如下: - 利用AI Coding生成处理脚本的框架和核心逻辑
3.2.3 成果收益通过采用上述方法,我们观察到以下显著收益: 1. 效率提升:相比手工处理,自动化脚本能够大幅缩短处理问题的时间;2. 质量保障:自动化处理有效避免了手工操作中常见的错误;3. 可复用性:标准化的脚本结构可轻松复用于其他类似处理任务,降低重复开发成本;3.2.4 最佳实践建议基于多个项目的实践经验,我们总结了以下关键建议: - 标准化输入:统一数据格式要求,规范配置文件格式,确保脚本的通用性和可维护性
- 模块化设计:将不同处理逻辑封装为独立模块,使脚本结构清晰,便于维护和扩展
- 自动化程度:尽可能减少人工干预环节,提供详细的日志记录和监控信息,便于问题追踪
- 可扩展性:在设计时考虑支持更多数据类型的处理能力,确保脚本的长期可用性
3.3.1 应用场景在面对较为复杂的Agent应用开发时,提示词工程和工作流设计变得至关重要。通过合理运用AI Coding作为辅助工具,开发者能够更高效地整理思路、设计提示词和工作流,从而显著提升Agent应用的开发效率和质量。 典型的应用场景包括: 3.3.2 开发流程基于在多个Agent项目中的实践经验,我们推荐采用以下标准化开发流程: 该流程的具体实施要点如下: - 应用背景定义:明确Agent应用的具体场景和目标,确保与业务需求对齐;
- 服务人群识别:确定应用面向的用户群体及其特点,为用户体验设计提供依据;
- 输入格式规范:定义用户输入的数据格式和类型,确保输入处理的准确性;
- 输出格式要求:明确应用需要返回的结果格式,保证输出的一致性和可用性;
- 复杂度评估:判断是否需要分布式处理或工作流设计,为技术选型提供指导;
- 方案应包含:架构设计、模块划分、数据流设计、错误处理机制等关键要素;
- 单LLM场景:利用AI Coding生成针对性的提示词文本;
- 多LLM工作流场景:通过AI Coding生成一整套提示词体系;
- 提示词应包含:角色定义、任务描述、输出格式约束、示例输入输出等关键要素;
- 问题反馈:将验证中发现的问题返回给AI Coding;
*注:通过AI Coding对工作的编排能力,协助我们完成一些复杂的agent提示词构建,可以快速的论证一些agent方案的可行性,并且是后续的调整成本更低,也更加灵活。 3.4.1 应用场景在日常工作中,我们经常需要整理和输出各类文档,包括但不限于工作汇报、系统设计文档、技术方案等。通过合理运用AI Coding作为文档辅助工具,能够帮助我们快速生成结构化、高质量的文档,显著提升文档编写效率。 典型的应用场景包括: 3.4.2 工作流程基于实践经验,我们推荐采用以下标准化流程进行文档整理与输出: 该流程的具体实施要点如下: - 文档大纲:提供文档的整体框架和章节划分,确保结构清晰;
- 重点内容:明确哪些部分需要详细描述,哪些部分可以由AI Coding发散;
- 结构要求:定义文档的组织方式和逻辑关系,保证内容连贯性;
- 图文形式:指定需要使用的图表类型(如mermaid、plantuml等),提升文档可读性;
- 对于非重点内容,允许AI Coding进行合理发散以提升效率;
- 如结构不符合预期,将问题反馈给AI Coding;
注:文档整理和输出具有天然的跨会话记忆管理的优势,因为每次对话都会整理内容到.md文档中,很适合作为夸回话记忆管理的入门实践。 3.4.3 实际应用日常工作汇报: 系统设计文档: 3.4.4 支持的图表类型publicclassUserService{publicUsergetUserById(Longid){//查询用户逻辑returnuserRepository.findById(id);}publicList<User>getAllUsers(){//获取所有用户returnuserRepository.findAll();}}3.4.5 最佳实践建议基于多个项目的实践经验,我们总结了以下关键建议: - 明确分工:重要内容由人工提供详细指导,次要内容可由AI Coding合理发散,保持人工审核关键内容;
- 结构优先:先确定文档结构再填充内容,使用标准模板提高效率,保持章节间逻辑关系清晰;
- 图表规范:统一图表风格和配色,为图表添加必要的说明文字,确保图表与文字内容一致;
- 版本管理:保留文档的多个版本,记录每次修改的内容和原因,建立文档审核流程;
- 平台适配:了解目标平台的格式支持情况,测试文档转换效果,建立标准化的转换流程。
在使用AI Coding进行开发的过程中,我们会积累大量的提示词和最佳实践流程。为了更好地管理和复用这些知识资产,建议使用专门的知识管理平台来沉淀和优化我们的提示词。 - 支持新功能开发、BUG修复、接口文档编写、系分文档编写等常见场景;
- 提供版本控制和变更历史追踪,确保知识资产的可追溯性;
3.5.1 应用场景- 建立从需求分析到代码实现的完整流程,提升开发效率;
- 建立BUG分析和修复的标准提示词,提升问题解决效率;
3.5.2 使用建议基于团队在多个项目中的实践经验,我们总结了以下关键建议: - 在完成重要开发任务后,及时将有效的提示词和流程沉淀到平台;
通过本篇文章,希望开发者能够: 1. 建立有效的个人上下文管理体系,在有限的AI上下文空间中发挥最大价值;2. 具备准确判断AI输出的能力,确保代码质量和功能正确性;3. 实现从单纯编码向全局思考的思维转变,成为具备超级单兵能力的研发人员;AI Coding作为强大的辅助工具,其价值的发挥最终还是取决于使用者的需求理解能力和技术判断能力。只有将AI工具与个人能力有效结合,才能真正提升开发效率和质量。 本文档的五个主要部分涵盖了AI Coding在后台开发中的主要应用场景: 1. 个人上下文管理:解决AI上下文限制问题,通过外部文档管理实现上下文传承;2. AI输出准确性判断:培养开发者对需求和代码仓库的理解能力,以准确判断AI输出质量;3. AI Coding核心使用流程:从PRD理解到代码开发的完整流程,Python脚本协助数据处理,Agent应用与提示词工程,文档整理与输出;4. 实践案例与练习:通过具体案例和练习,巩固培训内容,提升实际应用能力; |