如何用AI Agent处理PR、写单测、修Bug,以及IT从业者的角色从“码农”向“架构师+审阅者”转变的一些经验与感受分享
目录
AI的飞跃:从副驾驶到问题完成者
IT从业者的AI Agent实践:处理PR、写单测、修改Bug的真实经验
1. AI代理处理Pull Request (PR)
2. AI Agent编写单元测试(Unit Tests)
3. AI Agent修复Bug(Bug Fixing)
IT从业者的角色转变:从“码农”到“架构师+审阅者+AI协调员”
从“写代码”到“设计系统”
从“独立完成”到“AI协作”
从“基础审查”到“高级质量关”
从“解决问题”到“定义问题与创新”
真实感受
总结
如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。
本文将全面探讨AI如何从代码补进化为可独立完成Issue的智能体,以及“IT从业者”如何用AI Agent处理PR、写单测、修改Bug的实践经验,以及“IT从业者”角色从“码农”向“架构师+审阅者”转变的真实感受。
AI的飞跃:从副驾驶到问题完成者
几年前,GitHub Copilot 让我们高效地实现了 AI 在代码补全和生成上的能力。它就像一个默契的搭档,理解上下文,提供的代码片段。但后来的 AI,更多的是一个“高阶的工具”,开发者不断地“指挥”和“修正”。
如今,AI的演进速度超乎想象。以AI Agent为代表的新一代AI,不再是代码补全,它们开始具备理解复杂性、需求规划执行步骤、与环境(如代码库、测试框架、CI/CD系统交互),甚至独立完成一个Feature或Bug修复的潜力。这种进化,不仅仅是效率的提升,更是对我们开发模式和定位角色的替代。
IT从业者的AI Agent实践:处理PR、写单测、修改Bug的真实经验
已经很多文章一直在积极传播和实践这些AI Agent技术,放入其北极电路开发流程。以下是一些相关的具体经验:
1. AI代理处理Pull Request (PR)
- 过去:写完代码,提交PR,等待同事审查。这个过程可能需要几个小时到几天,审查主要关注代码质量、逻辑正确性和风格。
- AI Agent介入:
- 自动代码审查器:IT从业者可以设置一个AI Agent(可以想象成一个高度定制化的Devin-like Agent),当IT从业者的PR提交后,它会自动执行以下任务:
- 静态代码分析与 Linting:检查代码是否符合团队的编码规范(ESLint、Prettier 规则),发现常见的语法错误、未使用的标记、潜在的性能陷阱。
- 需求高度评估:代理阅读PR的描述,理解其要解决的问题,然后分析代码实现是否与需求高度契合。它会标记出任何可能增加需求的代码。
- 安全漏洞扫描:Agent能够扫描代码,识别常见的模式,如SQL注入、XSS安全漏洞、不安全的API调用等。
- 测试覆盖率分析:Agent 分析 PR 中新增或修改的代码,检查是否生成了对应的单元测试。如果测试不足,会根据内容修改,自动生成恢复的单元测试示例。
- 架构项目一致性检查:Agent能够了解架构的整体架构(例如,通过分析已有的架构图和代码结构),检查新代码是否符合既定的架构原则。
- IT从业者的角色:
- “提示设计师”和任务定义者:IT从业者不再是简单的提交代码,而是要学会如何“指导”代理。例如,IT从业者会明确告诉它:“请审查这个 PR,确保代码遵循 XXX 规范,覆盖 YYY 场景,并特别关注 ZZZ 模块的安全问题。”
- “AI协作伙伴”&审阅者:代理的审查报告会提交给IT从业者。IT从业者需要快速浏览报告,判断代理的建议是否合理。代理能够发现很多IT从业者可能忽略的细节,这很大程度上了解了IT从业者的审查负担。
- “决策者”:Agent只是提供建议。IT从业者需要结合项目需求、业务逻辑和IT从业者的经验,最终决定是否采用Agent的最终修改意见。Agent可能会犯错,或者提出的优化不符合项目实际情况。
- 自动代码审查器:IT从业者可以设置一个AI Agent(可以想象成一个高度定制化的Devin-like Agent),当IT从业者的PR提交后,它会自动执行以下任务:
2. AI Agent编写单元测试(Unit Tests)
- 过去:写测试是“好习惯”,但往往被优先度更高的功能开发挤占。
- AI Agent介入:
- 智能测试套件生成器:当IT从业者完成一个函数或一个模块后,IT从业者将代码提供给AI Agent,并给出指令:“请为代码编写单元测试,覆盖正常路径、边界条件(如空输入、空写入、最大/最小)、异常处理(如发送错误、网络异常),并达到85%以上的覆盖率。”
- AI Agent的执行情况:Agent会:
- 分析代码逻辑:理解函数的输入、输出、内部逻辑和依赖。
- 生成测试框架:根据项目使用的测试框架(如Jest、Pytest、JUnit),生成测试文件结构。
- 生成示例测试:
- 模拟依赖:自动模拟掉依赖的外部服务或函数。
- 边界值测试:自动生成针对空值、空值、临界值等情况的测试。
- 异常测试:模拟错误情况,验证函数是否能正确处理异常。
- 覆盖率优化:根据项目设定的覆盖率目标,智能生成更多测试案例,直到达到要求。
- 初步运行测试:Agent会在本地环境中尝试运行生成的测试,并反馈运行结果。
- IT从业者的角色:
- “测试场景描述者”:IT从业者需要大声告诉代理IT从业者希望测试哪些方面,特别是业务逻辑中那些不易被AI自动推断出来的特殊场景。
- “示例测试审阅者”:代理生成的测试需要IT从业者的审核。IT从业者需要判断测试是否真正覆盖了核心逻辑,是否足够显示,以及是否存在AI遗漏的情况。
- “AI测试生成数据者”:对于需要复杂或特定业务逻辑的数据进行测试,IT从业者可能需要为AI Agent提供一些样本数据。
3. AI Agent修复Bug(Bug Fixing)
- 过去:Bug修复是一个运行且需要深度思考的过程,从错误堆栈到代码定位,再到逻辑推断,最后尝试修复。
- AI Agent介入:
- 自动错误分类和修复器:当收到错误报告(包含错误堆栈、重写步骤、日志)时,IT从业者将其喂给AI代理。
- AI Agent的执行情况:
- 错误堆栈深度解析:Agent不仅能够找到发生错误的文件和行号,还能理解错误类型(如NullPointerException、TypeError、Database Constraint Violation),并结合上下文代码进行分析。
- 代码逻辑诊断:Agent会分析错误代码的周围逻辑,尝试推断出Bug的根本原因。
- 修复生成建议:代理会给出1-3个可能的修复方案,并直接生成包含修改的代码片段,甚至是完整的PR。
- 自动生成回归测试:代理会分析Bug的根源,并自动生成新的单元测试来覆盖这个Bug,确保它不会再次出现。
- (可选)集成测试触发:Agent甚至可以根据Bug的类型,尝试触发相关的集成测试流程,进一步验证修复效果。
- IT从业者的角色:
- “Bug报告者&验证者”:IT从业者负责提供语音的Bug信息,并最终验证AI提出的修复方案。
- “AI诊断评估师”:IT从业者需要判断Agent的诊断是否准确,修复方案是否最优化、是否会引入副作用。有时,AI提出的方案可能过于简单,未能解决根本问题,或者引入了新的风险。
- “AI修复方案选择者”:在AI给出多个修复方案时,IT从业者需要根据项目的技术栈、性能要求、安全策略来选择最合适的方案。
IT从业者的角色转变:从“码农”到“架构师+审阅者+AI协调员”
AI Agent的强大能力,正在将IT从业者的角色从一个纯粹的代码执行者,转变为一个更高架构的开发者,其核心职责和关注点发生了根本性的变化:
从“写代码”到“设计系统”
- 过去:IT从业者花费了大量时间思考“如何将这个功能写出来”。
- 现在:IT从业者的精力更多地放在“系统应该如何设计”、“模块之间如何划分”、“技术选型”以及“如何让AI Agent更好地圆满完成任务”。IT从业者从执行者变成了架构师,负责整体的蓝图。
从“独立完成”到“AI协作”
- 过去:很多任务是独立完成的。
- 现在:开发变成了一个与人工智能代理协作的模式。IT从业者不再需要编写所有代码,而是需要学会如何有效地与人工智能代理沟通,理解它的输出,并给出明确的指导和反馈。IT从业者成为了“人工智能协调员”。
从“基础审查”到“高级质量关”
- 过去:审查主要关注代码风格、基本逻辑。
- 现在:AI Agent已经能处理大部分基础的审查工作。IT从业者的审查重点则提升到了架构的合理性、安全性、性能极限、潜在的技术报告、以及AI生成代码的潜在风险。IT从业者成为了一名更资深的“审阅者”,一个“质量总监”。
从“解决问题”到“定义问题与创新”
- 过去:IT从业者花费大量时间解决具体的编码实现问题。
- 现在:AI Agent 帮助IT从业者解决了许多编码和测试上的问题,这让IT从业者有更多的时间和精力去思考更宏观的业务问题、用户需求、产品创新,以及利用 AI Agent 来实现这些如何更具战略性的目标。
真实感受
- 效率的质变:AI智能体带来的效率提升是创新性的。原本需要几天的工作量,现在可能一天就能完成。这不仅仅是“快了”,而是释放了新的可能性。
- 工作内容的升维:IT从业者不再是那个埋头写代码的“码农”,而是成为一个思考者、设计者、决策者。IT从业者更关注“做什么”和“为什么课堂”,而不是“怎么做”。
- 持续学习的紧迫感:AI技术发展迅速,IT从业者需要不断学习新的AI Agent工具、及时的工程技巧,以及如何更深入地理解AI的工作原理。这带来了挑战,也带来了持续成长的动力。
- 对“开发”需求的积累:AI AgentIT从业者重新思考“软件开发”高效的本质。它不再是简单的代码堆砌,而是系统设计、智能驱动、协作、质量保障的复杂过程。
- 兴奋与有些许不安:AI极大地赋予了开发者能力,让IT从业者们能够做更多、做得更好。但同时,也需要警惕对AI的过度依赖,以及AI生成代码可能存在的潜在风险(如安全、合规性、知识产权)。最终的判断和决策,仍然在IT从业者们手中。
总结
AI Agent 正在深入挖掘软件开发的工作流程和开发人员的角色。从副驾驶到能够独立处理问题的智能体,AI 已经从“助手”进化为“协作伙伴”。IT从业者的角色正在从一个执行代码员,向一个系统设计者、AI 协调员、高级质量把关人转变。这是一个挑战,更是一个机遇,让IT从业者能够将精力投入到物资和战略性的工作上。未来的开发者,将是与 AI工作顺利的“智能开发者”。
如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。
