这篇不聊“AI 会不会取代程序员”,也不做夸张预测。站在开发者视角,真正有价值的问题其实是:ChatGPT 5.5 能不能帮我们把日常开发中那些重复、繁琐、容易遗漏的工作处理得更好?比如读需求、拆任务、补测试、写文档、查问题、做代码 Review。实际体验下来,它更像是一个工程协作助手,而不是一个单纯的代码生成器。
1. 开发者为什么不应该只把它当“写代码工具”
很多人刚开始用 ChatGPT 5.5,通常会这样提问:
帮我写一个接口。
帮我写一个 Vue 页面。
帮我写一个 SQL。
帮我修复这个报错。这种方式能用,但价值有限。
因为真实项目里的代码不是独立存在的。一个接口背后通常会牵涉:
- 权限校验;
- 参数校验;
- 业务状态;
- 数据一致性;
- 异常处理;
- 日志规范;
- 缓存策略;
- 并发问题;
- 接口兼容;
- 测试覆盖;
- 上线回滚。
如果只让 AI 生成一段代码,它很可能给出一个“示例级答案”。这类代码看着完整,但放到真实项目里还要大量修改。
更好的方式是把 ChatGPT 5.5 放到开发流程中使用,而不是只放到编码环节使用。
也就是说,不是问它:
帮我写代码。而是让它参与:
帮我分析这个需求是否完整。
帮我拆分开发任务。
帮我设计接口和表结构。
帮我检查这段代码有什么风险。
帮我补充测试用例。
帮我整理上线 checklist。这样才能发挥它在工程场景里的实际价值。
2. 从一个常见需求开始:用户地址管理
假设现在有一个需求:给电商项目增加“用户收货地址管理”。
产品描述可能只有几句话:
用户可以新增、编辑、删除收货地址,可以设置默认地址,下单时选择地址。
如果直接开始写代码,很容易遗漏细节。比如:
- 一个用户最多能添加多少个地址?
- 默认地址是否只能有一个?
- 删除默认地址后如何处理?
- 下单使用过的地址被删除后,订单地址是否变化?
- 地址是否需要行政区划编码?
- 手机号是否需要脱敏展示?
- 是否支持海外地址?
- 是否需要地址标签,比如“家”“公司”?
- 是否允许重复地址?
- 是否需要操作日志?
- 是否有风控限制,防止频繁修改?
这些问题如果开发前不确认,后面很容易反复改。
这时可以让 ChatGPT 5.5 先做需求补全:
我正在做一个电商系统的用户收货地址管理功能。
已知需求:用户可以新增、编辑、删除地址,可以设置默认地址,下单时选择地址。
请从后端、前端、测试、产品、安全五个角度,列出需要确认的问题,并给出建议的验收标准。它的作用不是替你定需求,而是帮你快速发现盲区。
对开发者来说,这一步非常重要。因为需求越清楚,后面写代码越顺。
3. 用它拆任务,而不是只生成结果
很多项目推进慢,并不是因为某个功能特别难,而是任务没有拆清楚。
继续以地址管理为例,一个完整功能至少可以拆成:
- 地址新增接口;
- 地址编辑接口;
- 地址删除接口;
- 地址列表接口;
- 设置默认地址接口;
- 下单页地址选择;
- 订单地址快照;
- 地址数据校验;
- 默认地址唯一性处理;
- 前端表单校验;
- 单元测试;
- 接口文档;
- 灰度上线检查。
如果让 ChatGPT 5.5 参与拆任务,可以这样输入:
请把“用户收货地址管理”拆成后端、前端、测试三个角色的开发任务。
每个任务要求包含:任务说明、依赖关系、注意事项、验收标准。
输出为 Markdown 表格。它可以很快生成一份任务清单。
这类清单不一定完全符合团队实际情况,但很适合用作研发评审前的草稿。你可以基于这份草稿删减、调整、补充,从而减少遗漏。
对于一个小团队来说,这种使用方式特别实用。因为很多时候,团队里并没有专门的人负责把需求拆得很细,开发者自己就要承担这部分工作。
4. 技术设计:让 AI 先给出低成本方案
不少开发者在做技术方案时,容易陷入两个问题:
一种是想到什么写什么,缺少完整性;
另一种是为了“显得高级”,把方案设计得过于复杂。
ChatGPT 5.5 比较适合做方案初稿。
比如地址管理功能,后端可以先让它输出:
请为用户收货地址管理设计后端方案。
技术栈:Spring Boot + MySQL + Redis。
要求包含:
1. 表结构设计;
2. 接口设计;
3. 默认地址唯一性的处理方式;
4. 删除地址时与历史订单的关系;
5. 参数校验规则;
6. 可能的并发问题;
7. 测试用例。它可能会给出类似设计:
CREATE TABLE user_address (
id BIGINT PRIMARY KEY,
user_id BIGINT NOT NULL,
receiver_name VARCHAR(64) NOT NULL,
receiver_phone VARCHAR(32) NOT NULL,
province_code VARCHAR(32),
province_name VARCHAR(64),
city_code VARCHAR(32),
city_name VARCHAR(64),
district_code VARCHAR(32),
district_name VARCHAR(64),
detail_address VARCHAR(255) NOT NULL,
is_default TINYINT NOT NULL DEFAULT 0,
deleted TINYINT NOT NULL DEFAULT 0,
created_at DATETIME NOT NULL,
updated_at DATETIME NOT NULL
);这不是最终设计,但可以作为讨论基础。
随后再继续追问:
如果一个用户同时发起两个设置默认地址请求,如何保证最终只有一个默认地址?
请给出几种方案,并比较优缺点。它通常会给出事务处理、唯一索引、乐观锁、分布式锁等方案。
对开发者来说,真正有价值的不是直接复制答案,而是利用它快速完成“方案枚举”和“风险提示”。
5. 编码:给足上下文,输出才更贴近项目
AI 生成代码最常见的问题是:代码能看,但不像项目里的代码。
比如你的项目有统一返回:
ApiResponse.success(data)有统一异常:
throw new BizException(ErrorCode.PARAM_INVALID);有统一分页:
PageResult<T>有统一权限注解:
@RequireLogin如果你不告诉模型这些约定,它就会自己编一套。
所以在使用 ChatGPT 5.5 写代码时,建议至少提供:
- 当前项目技术栈;
- 现有 Controller 示例;
- 现有 Service 示例;
- 统一返回对象;
- 异常处理方式;
- DTO 命名习惯;
- 数据库字段风格;
- 是否允许新增依赖;
- 是否需要事务;
- 是否需要日志。
例如:
下面是当前项目已有的用户模块代码风格。
请参考该风格实现“新增收货地址”接口。
要求:
1. 不引入新依赖;
2. 使用现有 ApiResponse 返回;
3. 使用 BizException 处理业务异常;
4. 手机号需要格式校验;
5. 每个用户最多保存 20 个地址;
6. 如果是用户第一条地址,自动设为默认地址;
7. 输出 Controller、Service、DTO、Mapper 层代码。这种输入方式得到的代码,会比一句“帮我写地址接口”可靠得多。
6. SQL 与索引:适合让它做第一轮检查
很多业务表刚开始数据量小,怎么查都快。等数据量上来之后,问题才暴露。
地址表看起来简单,但也有一些查询场景:
- 查询用户地址列表;
- 查询用户默认地址;
- 根据地址 ID 查询并校验 user_id;
- 删除地址时更新状态;
- 设置默认地址时更新旧默认地址。
可以让 ChatGPT 5.5 帮忙检查索引设计:
下面是 user_address 表结构和常见查询 SQL。
请帮我检查索引是否合理,是否存在慢查询风险,并给出优化建议。它通常会建议:
CREATE INDEX idx_user_address_user_id_deleted
ON user_address(user_id, deleted);
CREATE INDEX idx_user_address_user_default
ON user_address(user_id, is_default, deleted);但这里要注意:索引不是越多越好。
AI 给出的索引建议必须结合实际查询频率、数据量、写入频率和执行计划来判断。正确做法是让它提供思路,然后开发者再用 EXPLAIN 验证。
可以继续让它分析:
请解释这个 EXPLAIN 结果,判断是否命中索引,以及是否存在回表、扫描行数过多的问题。这种方式对日常排查 SQL 性能问题很有帮助。
7. 代码 Review:让它从“风险视角”检查
在真实团队里,很多 Bug 都不是语法错误,而是边界没处理好。
地址管理功能可能存在的问题包括:
- 删除地址时没有校验是否属于当前用户;
- 设置默认地址时没有处理并发;
- 更新地址时允许修改别人的地址;
- 手机号、姓名、详细地址没有长度限制;
- 删除下单地址后影响历史订单;
- 日志里打印了完整手机号;
- 前后端校验规则不一致;
- 没有处理第一条地址自动默认;
- 用户地址数量没有限制;
- 接口没有登录态校验。
可以把代码 diff 发给 ChatGPT 5.5:
请以代码 Review 的方式检查下面的 diff。
重点关注:
1. 权限越权;
2. 数据一致性;
3. 并发问题;
4. 参数校验;
5. 敏感信息日志;
6. 测试遗漏。
请按严重程度排序输出。这种用法非常适合作为人工 Review 前的预检查。
它不一定能发现所有问题,但可以帮你提前扫掉一批低级风险。
8. 测试用例:让它补充边界值和异常流程
开发者自己写测试时,很容易只覆盖正常流程。
以地址管理为例,正常用例可能只有:
- 新增地址成功;
- 编辑地址成功;
- 删除地址成功;
- 设置默认地址成功;
- 查询地址列表成功。
但真实场景要复杂得多:
| 类型 | 用例 |
|---|---|
| 参数校验 | 姓名为空、手机号为空、详细地址超长 |
| 权限校验 | 用户 A 修改用户 B 的地址 |
| 数量限制 | 用户已有 20 条地址后继续新增 |
| 默认地址 | 第一条地址自动默认 |
| 默认地址 | 删除默认地址后的处理 |
| 并发场景 | 同时设置两个地址为默认 |
| 订单关联 | 地址删除后历史订单地址不变化 |
| 安全问题 | 返回结果中手机号是否脱敏 |
| 兼容问题 | 老版本 App 是否依赖旧字段 |
可以让 ChatGPT 5.5 生成测试矩阵:
请为用户收货地址管理功能生成测试用例。
要求按正常流程、异常流程、边界值、权限、并发、数据一致性分类。
每条用例包含:前置条件、操作步骤、预期结果。对于测试人员来说,它可以作为测试用例初稿;对于开发者来说,它可以帮助提前发现需求设计的问题。
9. 文档:不要等上线后再补
很多开发者不喜欢写文档,但文档缺失会在后期带来很高成本。
地址管理功能至少需要这些文档:
- 接口文档;
- 字段说明;
- 错误码说明;
- 前后端交互说明;
- 默认地址规则;
- 地址删除规则;
- 订单地址快照说明;
- 测试说明;
- 上线注意事项。
可以在代码基本完成后,让 ChatGPT 5.5 根据接口和 DTO 生成文档:
请根据下面的 Controller 和 DTO 生成接口文档。
要求包含:
1. 接口路径;
2. 请求方式;
3. 请求参数;
4. 响应示例;
5. 错误码;
6. 注意事项。
输出为 Markdown。生成后再由开发者检查业务规则是否准确。
这种方式不能完全替代人工文档,但能显著降低从零开始写文档的阻力。
10. 上线前:让它生成 checklist
上线前最怕遗漏。
一个小功能也可能因为配置、数据、兼容问题导致线上事故。可以让 ChatGPT 5.5 生成上线检查清单:
用户收货地址管理功能即将上线。
请从后端、前端、数据库、缓存、日志、监控、灰度、回滚、数据安全几个角度生成上线 checklist。输出可能包括:
- 数据库表是否已创建;
- 索引是否已验证;
- 新接口是否加权限;
- 前端是否处理错误提示;
- 日志是否避免打印完整手机号;
- 监控是否覆盖接口异常率;
- 是否准备回滚脚本;
- 是否兼容老版本客户端;
- 是否有灰度开关;
- 是否验证订单地址快照逻辑。
这类 checklist 对小团队尤其有帮助。
很多线上问题不是技术难度高,而是上线前少检查了一步。
11. 使用时需要注意的边界
ChatGPT 5.5 很适合做辅助,但不能直接替代开发者判断。
尤其是下面这些内容,不建议完全交给 AI 决定:
- 数据库最终设计;
- 核心交易流程;
- 支付、结算、财务相关逻辑;
- 安全策略;
- 权限模型;
- 生产环境变更;
- 性能优化最终方案;
- 合规和隐私处理规则。
另外,使用时也要注意信息安全。不要直接输入:
- 线上用户手机号;
- 身份证号;
- 密钥;
- 数据库密码;
- 内部 Token;
- 未脱敏日志;
- 客户合同;
- 公司内部敏感代码。
如果需要分析,可以先做脱敏处理,把真实数据替换成结构相同的模拟数据。
12. 一个更适合开发者的使用模板
日常使用 ChatGPT 5.5,可以固定采用下面这个模板:
背景:
我正在开发/维护一个什么系统,技术栈是什么。
目标:
我希望完成什么任务。
已知信息:
已有需求、代码、表结构、接口或报错信息。
约束:
不能引入什么依赖,必须兼容什么逻辑,有哪些性能或安全要求。
希望输出:
请按什么格式输出,比如方案、代码、表格、测试用例、Review 清单。
注意事项:
请指出风险,不确定的地方不要直接假设,先列出需要确认的问题。示例:
背景:
我在维护一个 Spring Boot + MySQL 的电商系统。
目标:
新增用户收货地址管理功能。
约束:
不引入新依赖,接口必须登录后访问,每个用户最多 20 条地址,历史订单地址不能受后续地址修改影响。
希望输出:
请先输出需求确认问题,再输出表结构、接口设计、核心流程、风险点和测试用例。暂时不要写代码。这种提问方式会明显提升输出质量。
因为对 AI 来说,输入越接近真实任务说明,输出越接近可用结果。
13. 总结
ChatGPT 5.5 对开发者真正有用的地方,不是“替你写完一个功能”,而是把开发过程中的很多辅助工作变得更高效。
它可以帮你:
- 在需求阶段发现遗漏;
- 在设计阶段生成方案草稿;
- 在编码阶段补齐样板代码;
- 在 Review 阶段发现潜在风险;
- 在测试阶段补充边界场景;
- 在文档阶段生成初稿;
- 在上线前整理 checklist。
但最终的工程判断,仍然要由开发者完成。
比较合理的方式是:让 ChatGPT 5.5 做信息整理、方案枚举、初稿生成和风险提醒;让开发者负责取舍、验证、落地和兜底。
如果用得好,它不是一个“替代程序员”的工具,而是一个能显著提升研发效率的工程助手。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。