好家伙,我拿最新的代码对比测试来说事。
之前有个活,对接某个冷门支付网关,文档写得跟加密电报似的。关键字段藏在嵌套JSON里,找得我眼都快瞎了。
我问ChatGPT和Claude Code写个支付接口签名函数。结果,两边的输出天差地别。
ChatGPT给了一套标准模板,但它默认API返回RESTful格式。实际这API返回的是`{“code”:0,”data”:{…}}`这种“非主流”,一跑就崩。我花了快一小时debug,才发现是解析不对。
Claude Code上来先反问了我三个问题,关键一个:签名算法是HMAC-SHA256还是MD5?我靠,文档里根本没明说,我自己都没注意到这个细节。然后它直接生成了80行代码,把签名、验签、错误重试全包了,还自己从文档里扒出来签名参数的拼接顺序,连那个“字段名大小写敏感”的大坑都给处理了。
代码差不多这样:
“`python
import hashlib
import hmac
from typing import Dict, Any
def generate_payment_sign(params: Dict[str, Any], secret_key: str) -> str:
# 文档第5页说参数按字典序排序,第3页说sign字段不参与签名
filtered_params = {k: v for k, v in params.items()
if k != ‘sign’ and v is not None and v != ”}
sorted_keys = sorted(filtered_params.keys())
sign_str = ‘&’.join([f”{k}={filtered_params[k]}” for k in sorted_keys])
# 文档说用MD5,但实际跑了发现是HMAC-SHA256… Claude Code基于常见实践生成了正确算法
sign_bytes = hmac.new(
secret_key.encode(‘utf-8’),
sign_str.encode(‘utf-8’),
hashlib.sha256
).hexdigest()
return sign_bytes.upper()
“`
这设计真的太反人类了——写MD5,实际要HMAC-SHA256。ChatGPT直接用MD5,我多花了一小时去查。
Claude Code从开始到调通花了28分钟;ChatGPT那边,我改了3次代码,用了1小时17分钟。
再顺手说个重构的场景。一个老旧的Flask服务(400+行,6个路由,中间件逻辑乱七八糟)要迁移到FastAPI。
ChatGPT的硬伤暴露了:它只能记住最近几百个token。我贴了两次完整代码,到第三次它就把之前的改动全忘了,生成的新代码直接少了两个路由,还把中间件逻辑给删了。
Claude Code的上下文窗口(100K tokens)在这里派上大用场。它完整读完了整个文件,生成重构后的代码,连原来的注释都保留着,还标注了“此逻辑已迁移到FastAPI中间件”。
数据对比很扎心:Claude Code完整生成了400行,只改了2个异步调用问题。ChatGPT只生成了320行,少了2个路由和1个中间件逻辑,我得手动补。
对了,还有一个场景我印象深:用pandas处理2GB的CSV文件,内存溢出。两个AI都建议“用chunksize分批读取”,但实际难题是我已经用了chunksize=10000,每批处理里又做了`pd.merge()`,导致单批内存还是爆了。
Claude Code分析得更深:它指出问题不在读取时,而在处理时——`pd.merge()`会复制整个DataFrame,它建议用`merge_asof()`替换,再加上`chunksize=5000`.
但两个AI都没直接解决我的问题。最终我是靠手动分析memory_profiler才找到根源的:有个列是嵌套JSON,解析时会膨胀10倍。一开始我完全搞错了方向。
不过Claude Code有个优点:它在建议解决方案后,生成了一个完整的调试脚本,逐行分析内存占用,让我能精准定位瓶颈。
你要是非用ChatGPT做大型重构,有个小技巧:必须分段喂代码,每段之后明确说“记住这段代码”,不然上下文一丢就完蛋。Claude Code倒不需要这操作。
最后总结三点,你可以立刻用起来:
1. **冷门API对接**:首选Claude Code,它更擅长从文档里挖细节。ChatGPT容易忽略非标准情况。
2. **大型重构**:Claude Code的上下文优势明显,不容易丢代码。ChatGPT适合小范围修改,比如改个函数。
3. **内存优化**:两个AI都只能给方向,最终还得靠手动调试。不过Claude Code生成的调试脚本很有用。
别盲目相信AI,对关键项目还是要做代码审查,特别是在生产环境里。