当前位置: 首页 > news >正文

实践1|用 Claude Code 逆向了一个陌生业务模块

实践1|用 Claude Code 逆向了一个陌生业务模块

昨天下午干了件以前要花两天的事:把手里一个从没读过的业务模块的完整调用链摸清楚,配上时序图、代码位置、发现的问题,最后整理成一份 20 页左右的文档发到了团队知识库。

写这篇是因为踩了几个坑,怕过两周自己就忘。

背景

工作区不小:5 个子仓库并排放着,前后端加起来几十万行。后端是 Spring Cloud 的一大套,商城那边做了 DDD 四层拆分(领域中心 / 平台支撑 / 聚合 / BFF 应用层);前端更杂,原生 App、H5、几个小程序、B 端后台。

我要读的这块业务,是一个售后类增值服务的下单闭环。链路挺长:H5 页面点一下,先过商城 BFF,再走 connector 出到 open-api 网关,再 Feign 调到权威域服务,同时还要往一个外部系统推数据;用户支付成功之后还有一段 MQ 驱动的异步履约。

以前干这种事我的路数很土:grep 几个关键词,打开 IDE 一层层跳,跳一会儿就得画个草图不然容易乱,再跳,再画。小半天到一天出个大概轮廓。

这次全程 Claude Code,实际投入大概三个小时。

一、让它先"选题"

一开始差点栽了。上来一句"帮我分析这个模块的代码",结果给我输出一大段模块结构、包名、类的职责。看起来专业,仔细一看全是废话——这些东西看目录名就能知道。

第二次改了思路:让它先列几条候选链路,我来挑一条。原话大概是:

这个仓库里有若干业务域,列出你觉得"业务流程最复杂、跨模块最多、值得单独写一篇文档"的候选链路,每条一句话说清楚:入口在哪、经过哪几个服务、终点是什么。别挑简单 CRUD。

它列了 7 条,我扫一眼就知道选哪个。挑的那条特别典型:前端一个动作、后端要过 4 层、还要调外部系统、支付完还有异步分支。这种链路适合写时序图——一眼能读完的功能没什么可写。

如果让它自己挑,八成会挑最容易分析的那条,写出来没什么营养。选题这一步得我自己做。

二、拆成三段问

选定链路之后,我没让它一次给我全套东西,分成了三段:

第一段是找入口。让它从某个前端页面开始追,把这个页面调用的所有 HTTP 请求、每个请求打到哪个 Controller 的哪个方法,用表格列出来。这里有个关键的要求——给我文件路径加行号。这个一开始没要求,它就写"在 XX 服务的 Controller 里"这种糊弄话。加了行号之后就能验证,不能瞎编。

第二段是画时序图。基于第一段的信息画 mermaid,参与者用真实类名,箭头上标注方法和关键参数。第一版基本都有漏——不是漏了一个缓存查询,就是把某个分支的兜底逻辑漏了。回问:“这个方法内部还调了什么?把源码给我看看。” 两三轮下来就完整了。

第三段:让它挑错。让它扮演一个挑刺的 code reviewer,找 bug、找前后端不一致的地方、找被注释掉但看起来该生效的代码、找 TODO/FIXME,每条给位置和影响。

这一步产出比较意外,翻出来 6 条问题:某个错误码分支的前端弹窗被注释掉了(用户命中会白屏)、另一个错误码前端根本没写处理分支、一个枚举字段前后端定义不一致、还有几处遗留的 FIXME。这些我自己一天可能都翻不出来。

分三段的好处是每段结束都有个可验证的东西——表格、图、清单。跑歪了我马上能看出来;一大团糊在一起就没办法了。

三、几个不太顺的地方

第一版时序图容易错。长得挺漂亮,逻辑上错的。比如把一个 Feign 同步调用画成了 MQ 异步,或者把 try-catch 里的兜底路径画到了主线上。看图的时候我给自己定了个习惯:当它是别人给我的第一稿代码,别当结论。

让它解释代码不如让它引用代码。让 AI 解释代码在做什么,它会自然语言描述一通,容易加戏、脑补。让它把原文的 20 行贴出来、再一句话点评就管用——贴出来的代码不会骗人,我自己能判断它有没有理解偏。

东西一定要落盘,别信对话历史。上下文窗口再长也有限,换个会话就没了。我的做法是每讨论完一段就让它写成一节 markdown 追加到项目里的 docs 目录下。这个 md 就变成了我们俩共同的工作记忆,下次开始之前让它先读一遍,比从零开始快十倍不止。

Claude Code 有个 memory 机制,可以把"这份文档在哪里"记一条进索引里。我就写了一条,指向那份 md。下次谁再问这个模块,AI 会先看文档再动手,不用重新梳理一遍。

分层写,一份文档给两种人看。这次的文档产品和研发都拿去用了,因为我写的时候故意分了两半:前半给业务同学,3 张 flowchart,讲流程和决策规则,不出现类名;后半给研发,3 张时序图、错误码分支表、代码位置速查、问题清单。这一步 Claude Code 不会主动做,得在 prompt 里明确说"两种读者、两种视角"。

四、最后一公里

写完只是一半。文档在我本地放着,只有我一个人能看到。

以前发文档到公司协同平台是全手工的:本地 md 复制过去、粘贴、发现 mermaid 变成了一堆代码块、手动改成绘图块、调表格、加目录、加权限。半小时起步,还容易漏。

昨天顺手装了 Claude Code 的文档平台 MCP 插件——在~/.claude/settings.json里加一段 MCP server 配置,装完重启,AI 就能直接调那个平台的 open API。之后的流程变成:让它读本地 md、调 MCP 建文档、内容写进去、挂到指定空间下。mermaid、表格、标题层级它自己处理。

第一次装踩了两个坑,都不是插件的问题:

  • 平台应用的权限没勾全。新建文档、写入 block、读写指定空间三个都要勾,我第一次只勾了"写入",AI 报 permission denied,我还以为是它的问题,回头看应用后台才发现是我自己没配好。
  • 空间 ID 没告诉它。协同平台 URL 里那段就是空间 ID,我第一次没给,它默认扔到了我个人的"我的文档"下,同事根本看不到,白发一次。

装好之后,一句话就能发过去:把docs/xxx.md发到某某空间,作为一篇新文档,标题用一级标题。30 秒,格式基本 1:1。

发布成本降下来之后,我更愿意写文档了。以前技术文档在本地烂掉是常态——不是不想写,是发布这一步太恶心,写完发不出去就懒得动,一直堆到自己都懒得看。现在发布几乎不算工作量,那就更愿意从一开始就好好写。

时间账

三个小时怎么花的:

阶段时长干了什么
选题15 min让它列候选链路,我挑一条
追代码60 min三段式 prompt 一轮一轮追
画图40 min时序图改了 3 版才对
挑错30 min让它扮 reviewer 找问题
整理成文30 min结构化,分业务向/研发向两半
收尾5 min提交 md、写 memory 索引
发布30 sMCP 一句话推到团队知识库

同样的活全手工做估计一天半到两天,而且大概率没这次系统。发布这一步以前手工半小时,现在几乎不计时。

http://www.jsqmd.com/news/1171985/

相关文章:

  • ELF 重定位实战:5 个 LinkLab 实验阶段解析符号表与节偏移计算
  • AI Agent开发实战:从原理到多Agent系统架构设计
  • 具身智能专家学习路线图
  • VS Code 1.86 粘性滚动深度配置:3个关键参数优化与终端集成实战
  • TLA2518与PIC18F86J16构建高精度数据采集系统
  • IEEE 754 单精度浮点数转换实战:3个典型十进制数(含0.15625)的完整二进制推导
  • 动画技术分析:从Netflix《缎带骑士》学习本地处理工作流
  • AI Agent平台架构设计与性能优化实战:从核心原理到生产级部署
  • 锂电池组电压主动均衡方案:MP2672A与PIC18F4620实现
  • pytest + yaml 数据驱动实战:解析框架中5种复杂业务依赖链的YAML用例设计
  • 三步让经典游戏在现代Windows上重生:DDrawCompat完整使用指南
  • 4. 理解 YaRN
  • 4K影视《失误的爱》:双线叙事下的代际情感深度解析
  • SCP vs Rsync vs SFTP:3 种远程文件传输工具性能与场景对比
  • Wget 1.21.3 Windows 3种安装方案对比:从System32到Chocolatey自动化
  • 华三 AC+AP 无线部署:3个关键VLAN规划与DHCP配置实战(附拓扑)
  • CTF实战:维吉尼亚密码原理、识别与自动化破解全攻略
  • 离散傅里叶变换 (DFT) 帕斯瓦尔定理:3种编程语言 (Python/Matlab/C) 验证与误差分析
  • Selenium 4 + Python 自动化测试实战:3种元素定位策略与5个常见异常处理
  • OpenBoardView深度解析:如何用开源方案破解电路板逆向工程的技术壁垒?
  • 解决MySQL安装报错:VC++ 2013运行库缺失问题详解
  • 用二进制整数规划(BILP)建模求解数独
  • 大模型智能体开发实战:从原理到可运行系统的完整指南
  • Gemini API授权密钥迁移指南:2025年安全接入实战
  • 【SkyWalking从入门到精通】第35篇:OAP Server模块化框架:像搭积木一样构建可观测平台
  • 工业时序的“存“已国产化,“用“呢?——从 TimechoDB 安可测评到 TimechoAI 时序大模型落地实录
  • 自动驾驶技术演进的工程逻辑:BEV、端到端与VLA的分阶段落地
  • 广西白切鸡凉拌适用花生油,背后技术经验大复盘,解锁独特风味秘诀
  • SOLIDWORKS Composer 与 Visualize 对比:4个维度解析技术文档与营销渲染差异
  • 7周数据分析实战:Excel/SQL/Python/Power BI从零到项目整合