AI真正帮我干好的事儿


记录我用AI工具实际解决的问题,记录尝试的过程,每个案例都是真实经历。

一、开发调试

作为开发人员,日常工作中最多的问题就是排查和解决Bug。AI工具在这方面的帮助超出我的预期。

1.1 解决BUG

案例1:Jar冲突导致Word导出失败

问题描述:执行Word模板填充功能时,使用EasyPoi库导出Word文档失败,抛出 NoSuchMethodError异常。

错误日志

Exception in thread "main" java.lang.NoSuchMethodError: org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblWidth.getW()Ljava/math/BigInteger;
  at cn.afterturn.easypoi.util.PoiWordStyleUtil.copyCellAndSetValue(PoiWordStyleUtil.java:34)
  at cn.afterturn.easypoi.word.parse.excel.ExcelMapParse.parseNextRowAndAddRow(ExcelMapParse.java:131)

提示词:程序启动报错 [Copy 10+] , 请修复。

AI分析错误日志,定位是Apache POI版本冲突问题,查看pom.xml中相关依赖版本,锁定 openxmlformats库版本不兼容,排除冲突依赖,统一定义版本

当天发了个朋友圈:

一个jar 冲突 的 bug  自己研究一小时,没解决。

同样的提示词
opencode(GML) 半小时没解决,还反复在哪试错,耗我token。
codex(GPT) 3分钟解决,一次命中。

看了他们的思维链,冷静的可怕。有时候得反思向Agent学习了,真是教会了徒弟饿死了师傅。


1.2 代码审查

案例:Review代码指出问题,推送评论

场景:开发完成代码后,让AI进行代码审查,发现潜在问题。

提示词:review vxlink-bill-server 项目下的 feature-workingday 分支代码

AI进行了详细的代码审查,包括:

  • 缓存逻辑Bug(重复查询)
  • 日期处理逻辑错误
  • 缓存有效期设置不合理
  • 缺少异常处理等

配合glab审核代码,推送评论

提示词:/review https://dev-git.vanxlink.com/autodev-app-repo/pn3xeltib3/vxlink-bill-server/-/merge_requests/397
提示词:把问题提交到评论里头

使用 skills: /code-review:code-review 自动评审和提交,但我更倾向于先review,我看过后经过询问跳过不必要的建议,再提交。

提示词:/code-review:code-reviewreview https://dev-git.vanxlink.com/autodev-app-repo/pn3xeltib3/vxlink-bill-server/-/merge_requests/397

1.3 生成单元测试

案例:生成单元测试

场景:写完业务代码,需要补充单元测试。或者要改动一个功能,先生成单元测试,然后在让AI改动,改动后运行测试用例,确保功能正常后,在补充新增代码的单元测试。

提示词:com.vxlink.repay.ext.util.IdCardExtractor#extract 帮我生成单元测试。

后续会让AI填充测试数据,运行测试验证。


二、编码辅助

2.1 写SQL

案例:查询缺失数据的资产包

业务需求:查询资产包表,关键字段为空的记录。

提示词:请帮我写SQL,查询资产包表 [Copy 10+ 资产包表的DDL]中,关键字段为空的记录。关键字如下
转让签约日期、债转通知公告日期、成交金额、基准日债权总额、基准日债权本金、债转协议名称、债转协议编号

AI生成了查询SQL,支持查询任意关键字段为空的记录。

案例:统计自动入账流水数量

根据银行流水表和事务项表,统计特定时间范围内特定账号的自动入账数量。

提示词:帮我写一个sql ,按照 amc_bank_no = 9012010510379392 查询,创建日期在 2026-04-17 00:00:00 到 2026-04-20 23:59:59 的银行流水中有多少自动入账的。

AI生成了包含表关联和条件筛选的复杂SQL查询。

案例:改写sql

下面是提示词

SELECT rra.debtor_name     AS '债务人姓名',
pa.id               AS '资产包ID',
pa.asset_name       AS '资产包名称',
rra.repay_total_num AS '还款期数',
rra.approval_route  AS '预测审批路线',
rra.reduce_reason   AS '减免原因',
rra.attachment_id   AS '附件',
rra.created_date    AS '创建时间',
rra.flow_status     AS '审批状态',
rra.plan_status     AS '计划状态'
FROM vxlink_restructure.rm_restructure_plan rra
INNER JOIN vxlink_asset_server.pm_asset pa
ON rra.asset_id = pa.id
WHERE pa.is_deleted = 0
AND pa.asset_name IN (
'湖北消金消费贷2025-01号第7期资产包',
'中银消金消费贷2025-10号第61期资产包',
'建行深圳消费贷2025-13号第3期资产包',
'中行河北信用卡2025-01号第3期资产包',
'全桔融担2025-01号第1期资产包',
'中行宁夏经营贷2026-01号第1期资产包',
'邮储河北消费贷2026-01号第1期资产包',
'兴业银行信用卡全国2022-01号资产包',
'平安银行消费贷2023-12号第160期资产包',
'华夏银行信用卡2023-01号第1期资产包',
'紫金农商综合类2023-01号第1期资产包',
'平安银行消费贷2023-23号第279期资产包',
'中信苏州消费贷2024-02号第1期资产包',
'建行苏州经营贷2024-02号第2期资产包',
'华润信托消费贷2024-01号第1期资产包',
'平安银行消费贷2024-08号第69期资产包',
'中信重庆消费贷2024-09号第1期资产包',
'平安银行2022年第32期个人消费及经营类不良资产包'
)
AND rra.flow_status = 'COMPLETED_PASS'
AND rra.is_deleted = 0
AND rra.plan_status IN ('SUCCESS', 'ING', 'NOT_START');

上面的sql ,根据 下表 的DDL

-- auto-generated definition
create table rm_restructure_plan
(
id                               bigint auto_increment comment 'id'
primary key,
created_by                       varchar(64)                                 not null comment '创建人',
created_date                     datetime                                    not null comment '创建时间',
last_modified_by                 varchar(64)                                 not null comment '最后更新人',
last_modified_date               datetime       default CURRENT_TIMESTAMP    not null on update CURRENT_TIMESTAMP comment '最后更新时> 间',
org_by                           varchar(64)                                 not null comment '当前组织',
owned_by                         varchar(64)                                 not null comment '组织拥有者',
tenant_id                        varchar(64)                                 not null comment '当前租户',
is_deleted                       bigint                                      not null comment '是否删除',
flow_status                      varchar(64)                                 null comment '流程状态',
flow_insert_data                 varchar(64)                                 null comment '是否插入业务数据',
apply_user_id                    varchar(255)                                not null comment '申请人',
control_type                     varchar(64)                                 null comment '控制类型',
repay_num_type                   varchar(64)                                 null comment '还款次数类型',
repay_total_num                  int                                         not null comment '还款期数',
reduce_reason                    varchar(255)                                null comment '减免原因',
cust_id                          bigint                                      null comment '债务人',
asset_id                         bigint                                      null comment '资产包',
promise_repay_date               datetime                                    not null comment '承诺还款时间',
delayable_days                   int            default 0                    null comment '可延缓天数',
repay_total_amt                  decimal(24, 6)                              not null comment '还款总金额',
reduce_total_amt                 decimal(24, 6)                              not null comment '减免总金额',
reduce_principal_amt             decimal(24, 6)                              not null comment '减免本金金额',
reduce_interest_amt              decimal(24, 6) default 0.000000             not null comment '减免利息金额',
reduce_govcost_amt               decimal(24, 6)                              null comment '减免官费金额',
reduce_fee_amt                   decimal(24, 6)                              null comment '减免费用金额',
reduce_other_amt                 decimal(24, 6) default 0.000000             null comment '减免其他金额',
repayed_amt                      decimal(24, 6) default 0.000000             null comment '已还款金额累计',
plan_status                      varchar(64)                                 null comment '计划状态',
reduce_total_rate                decimal(24, 6)                              null comment '减免总额比例',
reduce_principal_rate            decimal(24, 6)                              null comment '减免本金比例',
reduce_govcost_rate              decimal(24, 6)                              null comment '减免官费比例',
reduce_interest_fee_rate         decimal(24, 6)                              null comment '减免息费比例',
attachment_id                    varchar(1024)                               null comment '附件',
remark                           varchar(1024)                               null comment '备注',
apply_flow_id                    bigint                                      null comment '审批策略',
outer_approval_id                varchar(255)                                null comment '外部申请id',
has_reduce_principal             varchar(64)                                 null comment '本金是否减免',
debtor_name                      varchar(255)                                null comment '债务人姓名',
debtor_cert_no                   varchar(255)                                null comment '身份证号',
need_next_check                  varchar(64)                                 null comment '需要下级审批',
last_repay_date                  datetime                                    null comment '上次还款时间',
apply_org_by                     bigint                                      null comment '申请机构',
original_pricipal_amt            decimal(24, 6)                              null comment '基准日本金余额',
original_interest_fee_amt        decimal(24, 6)                              null comment '基准日息费余额',
max_gov_amt                      decimal(24, 6)                              null comment '官费合计金额',
reduce_interest_fee_amt          decimal(24, 6)                              null comment '减免费息金额',
asset_type                       varchar(64)                                 null comment '资产包业务类型',
asset_name                       varchar(255)                                null comment '资产包名称',
approval_route                   varchar(255)                                null comment '审批路线',
current_repayed_amt              decimal(24, 6)                              null comment '目前已还款金额',
original_total_amt               decimal(24, 6)                              null comment '基准日总额',
original_interest_amt            decimal(24, 6)                              null comment '基准日利息',
original_fee_amt                 decimal(24, 6)                              null comment '基准日费用',
original_gov_amt                 decimal(24, 6)                              null comment '基准日官费',
current_repayed_pricipal_amt     decimal(24, 6)                              null comment '目前已还款本金',
current_repayed_interest_fee_amt decimal(24, 6)                              null comment '目前已还款息费',
current_repayed_gov_amt          decimal(24, 6)                              null comment '目前已还款官费',
cancel_time                      datetime                                    null comment '作废时间',
cancel_reason                    varchar(255)                                null comment '作废原因',
agree_time                       datetime                                    null comment '审批通过时间',
source                           varchar(64)                                 null comment '来源',
current_principal_balance        decimal(24, 6)                              null comment '当前剩余本金',
current_interest_balance         decimal(24, 6)                              null comment '当前剩余利息',
current_gov_balance              decimal(24, 6)                              null comment '当前剩余官费',
current_fee_balance              decimal(24, 6)                              null comment '当前剩余费用',
current_interest_fee_balance     decimal(24, 6)                              null comment '当前剩余息费',
plan_flag_type                   varchar(64)    default 'RESTRUCTURE_ADVICE' null comment '重组标识类型',
phone                            varchar(512)                                null comment '加密电话'
)
comment '重组减免计划表';

更新:添加上
减免本金金额
减免利息金额
减免官费金额
减免费用金额
减免本金比例
减免官费比例
减免息费比例

基准日本金余额
基准日息费余额
目前已还款官费

并且把上面的内容,在额外拼接到一个 字段中,叫减免信息。 并按照总金额、本、官、息、费 、以及减免的比例 的顺序回车换行展示。

2.2 变量命名

案例:摆脱命名困难症

痛点:经常为一个变量名纠结半天,真正做到了见名知意。

解决: AI 生成的代码命名非常规范。像xxxPO再也没有了(非驼峰命名,idea下划线提示,但这玩意也不能在团队间规约,因为很多人这么写)

再也不用忍受这样的命名了。


三、脚本工具

3.1 启动服务

问题描述:前端启动失败,不知道原因,也不关心原因

提示词:启动服务

案例:docker启动服务

提示词:使用docker启动服务
或者,把启动方式写到 md 文件中,然后 直接 告诉 Agent 启动服务

3.2 打开本地应用

案例:一键启动开发环境

场景:每天早上需要打开多个应用(IDE、数据库工具、终端、浏览器)。

解决:让AI帮我写一个打开所有应用的脚本。

#!/bin/bash

# 一键打开常用开发工具
# 使用方法: ./cs-dev-tools.sh

echo "正在打开开发工具..."

# 打开微信
open -a "WeChat"
echo "✓ 微信"

# 打开 IntelliJ IDEA
open -a "IntelliJ IDEA"
echo "✓ IntelliJ IDEA"

# 打开 Chrome
open -a "Google Chrome"
echo "✓ Chrome"

# 打开 VSCode
open -a "Visual Studio Code"
echo "✓ VSCode"

echo ""
echo "所有应用已启动完成!"

然后抽取成commond 或者 skill 。 这样输入 开始搬砖 就会自动找到这个skill 执行对应的脚本。或者直接输入 ‘/cs-dev-tools’ 指令即可

案例:我想听歌

AI帮助编写打开网易云音乐的commond 和 skills

# 打开网易云音乐

直接执行以下命令打开本地网易云音乐:
open /Applications/NetEaseMusic.app

然后抽取成commond 或者 skill 。 这样输入 我想听歌 就会自动找到这个skill 执行对应的脚本。或者直接输入 ‘/cs-music’ 指令即可

3.4 写Shell脚本

案例:写爬虫

修复银行档案下载脚本,从API返回的JSON中提取文件URL并下载文件。

AI修复了脚本中的多个问题:

  • 检查API返回码
  • 提取下载URL和文件名
  • 使用curl下载文件
  • 删除导致提前退出的exit语句

3.3 Git批量操作

案例:批量推送项目更新

场景:需要同时更新14个git仓库。需要每一个项目都新建一个分支,都添加一个 Agent.md 文件,然后推送到远程仓库。在发起合并请求的PR。

结果

  • 成功推送:14个项目 ✅
  • 已更新:2个项目 ⏭️
  • 有冲突:1个项目 ⚠️(需要手动合并)

四、AI辅助生成图表

4.1 生成时序图,画流程图

使用自制的flow skill,支持使用mermaid和ASCII码画流程图。

提示词: /flow com.vxlink.repay.ext.service.logic.impl.BankInvoiceMatchServiceImpl#calculateAndMatch


五、源码阅读

5.1 理解代码

通过AI理解复杂代码逻辑:

  • 分析代码功能
  • 解释业务逻辑
  • 生成流程图
> 提示词:com.vxlink.registration.ext.service.caseInfo.impl.TcCaseInfoExtServiceImpl#updateCreditSubmitStatus
这段代码在干什么?

这段代码的业务逻辑是什么?

这段代码的业务逻辑使用mermaid画成流程图

> 提示词:/flow com.vxlink.registration.ext.service.caseInfo.impl.TcCaseInfoExtServiceImpl#updateCreditSubmitStatus

5.2 定位代码

案例:定位实时逾期天数计算逻辑

提示词:帮我找一下逾期天数计算逻辑

AI成功定位到逾期天数计算逻辑的具体位置和实现方式。


六、从零开发应用

案例 : 彩蛋功能

通过多轮对话,从零开发了一个完整的应用。


七、创意娱乐

7.1 生成音乐

工作之余,想用AI生成一些背景音乐。

案例:生成舒缓的背景音乐

使用的工具:豆包、Gemini

过程:描述想要的风格(轻音乐、钢琴曲、缓解压力),AI生成音乐。

7.2 生成歌曲

https://www.doubao.com/music-sharing?vid=v0d69cg10004d4g4dsnog65krb0q3e1g&source_type=mobile&creation_id=30318703976028418


八、团队规范制定

参考 Ai Coding Rules 规约,帮助制定团队编码规范。


九、PPT制作

先给AI一个话题,然后在慢慢描述,最后产出一个PPT。


十、常规搜索

使用AI进行常规的信息搜索和查询。


十一、TDD开发

案例:测试驱动开发流程

  1. 补全单元测试
  2. 写代码
  3. 补单新增场景单元测试
  4. 审测试用例(基本没人看)
  5. 运行单测,写代码直到单测全部通过

提示词 com.vxlink.repay.ext.util.IdCardExtractor#extract
针对特殊字符的场景补充测试用例

提示词 com.vxlink.repay.ext.util.IdCardExtractorTest#testExtractWithMixedSpecialChars
这个单测没有通过,为什么。修复一下,但是不要影响其他场景

中文翻译

将 ~/.claude/usage-data/report.html 翻译成中文,写到 ~/.claude/usage-data/report-zh.html 中


图片识别

  1. 豆包
  2. 终端

文章处理

  1. 章节处理
  2. 错别字
  3. 标点符号

辅助需求分析

  1. 产品写的相对详细的。问:有什么需要完善,右前后矛盾的么,技术实现思路是什么

帮我分析一下这个需求文档。输出

  1. 前后不一致的
  2. 需要二次向产品澄清的
  3. 已经明确的业务逻辑

解决问题

提示词:hexo 生成的代码框,在代码文本内容太长的时候,展示找过了文章内容区域,最好做成滚动条横向滑动展示的效果

学习网站推荐


评论
  目录