☰
校招入职后,我如何用AI Coding重构日常开发工作流
2026/10/28 5:13:05 网站建设 项目流程

1. 从校招入职到把 AI 塞进日常开发:我的完整工作流拆解

刚入职那阵子,我最大的感受不是“代码写不出来”,而是“写代码之外的事情太多了”。需求评审完要拆任务、写设计文档、建分支、配环境、写单测、跑 CI、改 review 意见、补日志、排查线上问题,一天下来真正敲键盘写业务逻辑的时间可能不到三成。后来我开始系统性地把 AI Coding 接进整条开发流程,从需求理解到代码提交再到问题排查,逐步形成了一套相对稳定的工作流。这篇文章就是把这套流程完整拆开讲清楚,包括我用到的工具、每个环节的接入方式、踩过的坑,以及哪些地方 AI 真的帮上忙、哪些地方千万别偷懒。

先明确一下这套工作流适合谁:如果你是大厂或中厂的校招生、初级工程师,日常用 IDE 写代码,团队有 Git 协作和 CI 流程,想用 AI 提升效率但不想把代码质量搞崩,那这套东西可以直接参考。如果你已经是有多年经验的工程师,也可以看看其中关于 Coding Agent 和 Codex 类命令行工具的用法,很多思路是通用的。

核心工具链其实不复杂:IDE 插件形态的 AI 补全与对话、命令行形态的 Coding Agent(比如 Codex CLI 这类)、本地代码检索与上下文管理,再加上一套自己定的使用规范。工具是壳,规范才是里子。我见过太多人装了插件之后要么不用,要么无脑接受所有建议,最后代码 review 被喷得很难看。所以下面我会把“怎么用”和“什么时候不该用”放在同等重要的位置讲。

整套流程我按开发的时间线分成四块:需求与设计阶段的 AI 辅助、编码阶段的补全与生成、提交前的自检与测试、以及问题排查与知识沉淀。每一块都有具体的操作方式和注意事项,我会尽量把参数、命令、判断标准都写清楚,方便你直接抄作业。

2. 需求与设计阶段:让 AI 先帮你把问题想清楚

2.1 为什么设计阶段就要接入 AI

很多人用 AI Coding 是从写代码那一刻开始的,其实已经晚了。需求理解偏差和设计缺陷是最贵的 bug,改一行代码的成本和改一个方案的成本差着数量级。我在拿到需求之后,会先用 AI 做两件事:一是把模糊的需求翻译成结构化的技术任务,二是让它帮我列出可能的边界条件和风险点。

具体做法是把需求文档(脱敏后)或者需求描述贴给 AI,然后问它几个固定问题:这个需求涉及哪些模块?有哪些隐含的输入输出约束?如果要做技术方案,有哪几种实现路径,各自的取舍是什么?这一步不需要它给出最终答案,而是把它当成一个“不会累的评审对象”,帮你把思考盲区补上。

注意:公司内部的需求文档、接口定义、数据表结构属于敏感信息,接入外部 AI 工具前一定要确认合规要求。我的做法是把关键信息抽象成通用描述,比如把真实表名换成order_table,把业务字段换成field_a、field_b,只保留逻辑关系。

2.2 用 AI 拆任务的具体模板

我常用的拆解模板大概是这样:先给背景,再给约束,最后给输出格式要求。举个例子,假设要做一个“用户积分过期提醒”的功能,我会这样问:

背景:系统里有用户积分表,积分有有效期,需要在过期前 7 天提醒用户。 约束:提醒渠道是站内信,每天凌晨跑一次批量任务,用户量级百万级。 请帮我输出: 1. 涉及的技术模块清单 2. 每个模块的输入输出 3. 可能的边界条件(至少 8 条) 4. 两种实现方案的对比(定时扫描 vs 事件驱动)

这样问的好处是输出结构固定,我可以直接拿它当设计文档的草稿。实测下来,边界条件那一项经常能提醒我一些容易漏的场景,比如“用户在同一天有多笔积分到期”“用户已注销”“提醒发送失败要不要重试”等等。这些点如果靠自己想,可能要等到测试阶段才暴露。

2.3 设计评审前的自查清单

在把方案发给 mentor 或团队评审之前,我会用 AI 再过一遍自查清单。这个清单是我自己攒的,主要包括:数据一致性怎么保证、并发场景有没有考虑、失败重试和幂等怎么做、监控和告警加在哪里、回滚方案是什么。让 AI 针对每一条给出“这个方案里对应的是哪部分”,如果它答不上来,说明我的方案里确实缺了这块。

这一步的价值在于,它把“评审时被问倒”的风险提前消化掉了。我刚开始的时候经常被问“你这个任务失败了怎么办”,后来养成习惯,每次方案里都主动写清楚失败处理和补偿逻辑,评审效率高了很多。

3. 编码阶段:IDE 插件与 Coding Agent 的分工

3.1 IDE 内 AI 补全的正确打开方式

IDE 里的 AI 补全(无论是哪家插件)最大的价值不是“帮你写完整函数”,而是“帮你写你本来就要写的重复代码”。比如 getter/setter、参数校验、日志埋点、单元测试的 mock 部分,这些代码逻辑简单但量大,交给补全很合适。

我的使用习惯是:先自己写函数签名和核心逻辑框架,再让 AI 补全细节。这样做的原因是,如果让 AI 从零生成整个函数,它很容易写出“看起来对但不符合项目规范”的代码,比如用了团队不推荐的工具类、异常处理方式不一致、日志格式不对。而如果我先定好骨架,它填充的内容就会贴合上下文。

还有一个细节是注释驱动。我习惯在写函数之前先写一行注释说明这个函数要干什么,比如// 根据用户ID查询订单列表,支持分页和状态过滤,然后再开始写。AI 补全会根据这行注释生成更准确的代码。这个技巧看起来很小,但实测能明显提升补全的可用率。

实操心得:补全出来的代码不要直接 Tab 接受,先扫一眼。我踩过的坑是 AI 补了一个list.get(0)但没做空判断,如果列表为空直接抛异常。这种错误在 review 时很难被发现,因为代码“看起来很正常”。

3.2 Coding Agent 在命令行里的定位

IDE 插件适合“行内补全”和“小范围对话”,但当你需要跨文件改动、批量重构、或者执行一系列命令时,命令行形态的 Coding Agent 更合适。我用的方式是在项目根目录启动 Agent,然后给它一个明确的任务描述,让它自己读文件、改代码、跑测试。

这里的关键是任务描述要足够具体。比如“帮我把UserService里所有直接抛RuntimeException的地方改成抛自定义的BizException,并补上错误码”,这种任务边界清晰,Agent 能自己找到所有相关文件并逐个修改。但如果我说“优化一下用户模块”,它就会到处乱改,最后改出一堆我不想要的东西。

Agent 执行过程中,我会盯着它的每一步操作。大部分 Agent 会先列出它打算改哪些文件,这时候如果发现它要改的文件超出预期,立刻打断。我一般会先让它“只输出修改计划,不要动代码”,确认计划没问题后再让它执行。这个习惯帮我避免了好几次“它把我没打算改的配置也改了”的事故。

3.3 上下文管理:别让 AI 猜你的项目结构

不管是插件还是 Agent,上下文给得越准,输出质量越高。我的做法是在项目里维护一个简短的AI_CONTEXT.md文件,里面写清楚项目技术栈、目录结构说明、常用工具类位置、代码规范要点。每次开新会话时先把这个文件内容贴进去,或者让 Agent 先读这个文件。

这个文件不需要很详细,一两百字就够。比如:

技术栈:Java 17 + Spring Boot 3 + MyBatis-Plus 目录:controller / service / mapper / model / util 规范:统一返回 Result<T>,异常用 BizException,日志用 @Slf4j 工具类:DateUtil、StringUtil 在 util 包下

有了这个,AI 生成的代码风格会贴近项目现状,而不是生成一套“教科书式”但和项目格格不入的代码。我试过不给上下文直接让它写,结果它用了项目里根本没有的依赖,编译都过不了。

4. 提交前的自检与测试:AI 帮你查漏但别替你把关

4.1 用 AI 做代码自检的三种问法

代码写完到提交之间,我会用 AI 做一轮自检。常用的问法有三种:

第一种是“找 bug”式:把改动的 diff 贴给 AI,问它“这段改动有没有潜在的 bug、空指针、并发问题、边界问题”。这种问法适合逻辑比较复杂的改动。

第二种是“对照规范”式:问它“这段代码是否符合我给的规范(附上规范要点),有哪些地方不一致”。这种适合团队有明确代码规范的场景。

第三种是“补测试”式:让它针对改动生成单元测试用例,特别是边界用例。我一般会自己写主流程测试,让 AI 补边界测试,比如空输入、超长输入、并发调用等。

注意:AI 找出来的问题不一定都是真问题,它有时候会“过度报警”。我的做法是把它列出的每一条都过一遍,判断是真问题还是误报,真问题就改,误报就忽略。不要因为它说了就无脑改,也不要因为它没提就以为没问题。

4.2 单元测试的 AI 辅助边界

单元测试是 AI 比较擅长的领域,因为测试代码结构固定、重复度高。但我有一个原则:核心业务逻辑的测试用例必须自己设计,AI 只负责补全和扩展。原因是核心逻辑的测试用例反映了你对业务的理解,如果让 AI 来设计,它可能只覆盖了“正常路径”,而漏掉那些真正容易出问题的边界。

我的流程是:自己先写 3 到 5 个关键用例,覆盖主流程和最重要的边界,然后让 AI 基于这些用例扩展出更多边界场景。扩展出来的用例我会逐个检查,确认断言合理后再保留。这样既保证了核心覆盖,又利用了 AI 的“穷举能力”。

4.3 提交信息的自动生成与人工修正

提交信息(commit message)我也用 AI 生成。做法是把 diff 内容给它,让它按团队规范生成一条提交信息。团队规范一般是“类型: 简短描述”,比如feat: 新增积分过期提醒任务。AI 生成之后我会手动改一下,确保描述准确。

这个环节看起来很小,但坚持下来收益不小。以前我写提交信息很随意,后来发现排查问题时git log根本看不出哪次提交改了什么。现在提交信息规范了,回溯问题方便很多。

5. 问题排查与知识沉淀:AI 当你的第二大脑

5.1 报错排查的提问技巧

线上或测试环境报错时,我会把错误堆栈、相关代码片段、以及“我已经试过什么”一起给 AI。这里最关键的是说清楚你已经排除了哪些可能,否则 AI 会重复给你那些你已经试过的建议。

比如不要只贴一个NullPointerException堆栈,而是说“这个空指针出现在订单查询接口,我已经确认入参不为空,数据库里也有数据,怀疑是中间某个转换环节出了问题,相关代码是这段……”。这样 AI 的分析会更有针对性。

实测下来,AI 在排查“常见错误模式”时很有效,比如空指针、类型转换、并发修改、事务失效等。但对于“业务逻辑层面的 bug”,它往往帮不上太多,因为那需要理解业务上下文。所以我的定位是:AI 负责技术层面的排查,业务层面的排查靠自己。

5.2 把排查过程沉淀成可复用的知识

每次排查完一个问题,我会让 AI 帮我把过程整理成一段简短的笔记,包括问题现象、排查思路、根因、解决方案。然后我把这些笔记存到自己的知识库里,按模块分类。时间长了,这个知识库就成了我个人的“故障速查手册”。

这个习惯的价值在于,很多问题是会重复出现的。比如“事务不生效”这个问题,我遇到过三次,每次原因都差不多(自调用、异常被吞、传播级别不对)。有了笔记之后,第二次遇到时直接查笔记,几分钟就定位了。

5.3 常见问题速查表

下面这张表是我整理的高频问题,配合 AI 排查时可以直接对照:

问题现象常见原因排查方向
接口返回空但数据库有数据字段映射不对、序列化配置问题检查 ORM 映射和 JSON 配置
事务不回滚自调用、异常被 catch、传播级别检查调用方式和异常处理
定时任务重复执行多实例部署、锁失效检查分布式锁配置
内存持续增长缓存未清理、监听器未注销检查集合和监听器生命周期
接口偶发超时慢 SQL、锁竞争、GC看慢查询日志和 GC 日志

这张表我会持续更新,每遇到一个新问题就加一行。配合 AI 使用的方式是:先查表定位方向,再让 AI 针对具体方向给出排查命令和检查点。

6. 工具选型与配置:少即是多

6.1 IDE 插件的选择标准

选 IDE 插件我看三点:补全延迟、上下文理解能力、以及是否支持项目级配置。补全延迟很重要,如果每次补全要等一两秒,用起来会很烦躁,最后就不想用了。上下文理解能力决定了它生成的代码是否贴合项目。项目级配置则决定了团队能不能统一规范。

我一般会同时装两个插件对比一段时间,留下更顺手的那个。不要装太多,插件之间会互相干扰,补全冲突的时候很烦。

6.2 Coding Agent 的配置要点

命令行 Agent 的配置主要关注几块:模型选择、上下文窗口大小、以及是否允许执行命令。模型选择上,代码生成任务用代码能力强的模型,文档整理任务可以用通用模型。上下文窗口尽量开大,这样它能一次读更多文件。

是否允许执行命令这一项要谨慎。我一般会允许它执行只读命令(比如ls、cat、grep),但写操作(比如rm、git commit)会手动确认。这样既保证了效率,又避免了误操作。

6.3 配置文件的常见坑

Agent 的配置文件里有一些容易踩的坑。比如配置项拼写错误会导致配置不生效,但工具不一定报错,只是默默忽略。我有一次配了个超时时间,结果拼错了一个字母,一直用的是默认值,排查了半天才发现。

还有一个坑是配置优先级。有些工具支持全局配置和项目配置,项目配置会覆盖全局配置。如果你在全局配了一个模型,项目里又配了另一个,实际生效的是项目里的。搞清楚优先级能省很多困惑。

实操心得:改完配置文件后,用工具自带的“查看当前生效配置”命令确认一下,别假设它读进去了。这个习惯帮我省了不少排查时间。

7. 我踩过的坑与真实体会

7.1 不要用 AI 替代理解

这是我最大的体会。刚开始用 AI 的时候,我图快,让它直接生成整个模块的代码,我看一眼觉得没问题就提交了。结果 review 的时候被问“这里为什么这么设计”,我答不上来,因为代码不是我写的。后来我改了策略:AI 生成的每一行代码,我都要能解释为什么。解释不了的,要么自己重写,要么彻底搞懂再提交。

这个原则看起来降低了速度,但实际上提升了质量。因为当你必须理解每一行代码时,你会自然地去思考设计是否合理,而不是盲目接受。

7.2 上下文给太多也会出问题

前面说上下文要给准,但给太多也有问题。我有一次把一个几千行的文件整个贴给 AI,结果它抓不住重点,生成的内容反而偏离了。后来我学会“按需给上下文”:只给和当前任务相关的文件片段,而不是整个项目。

判断标准是:如果一段上下文和当前任务没有直接关系,就不要给。比如改一个工具函数,只需要给这个函数和它的调用方,不需要给整个 util 包。

7.3 保持人工 review 的底线

不管 AI 多强,提交前的代码 review 不能省。我见过有人完全信任 AI 生成的代码,结果引入了一个安全漏洞。AI 不懂你的业务安全要求,也不懂团队的隐性规范,这些只能靠人来把关。

我的底线是:AI 可以生成,但人必须 review。review 的重点是业务逻辑正确性、安全性和团队规范一致性。技术细节(比如语法、常见模式)可以适当放宽,因为 AI 在这块通常不会出大错。

7.4 持续迭代自己的工作流

这套工作流不是一次成型的,是我用了几个月慢慢调出来的。中间换过工具、改过提问模板、调整过使用边界。我的建议是,你也不用一开始就追求完美,先用起来,遇到问题就调整,慢慢就会形成适合自己的节奏。

有一个小技巧是定期回顾:每个月花半小时想想这个月 AI 帮你省了哪些时间、哪些地方它帮了倒忙、下个月怎么调整。这个习惯让我的工作流一直在进化,而不是停留在某个版本。

最后分享一个我最近在用的做法:把常用的提问模板存成一个文件,需要的时候直接复制。比如“代码自检模板”“测试生成模板”“报错排查模板”,每个模板就几行字,但能保证每次提问的质量稳定。这个做法看起来笨,但实测很有效,尤其是赶时间的时候,不用现想怎么问。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询