GLM-5写代码,我发现了它和Cursor不一样的路数
昨天半夜十一点,GLM-5出来了。
网上都在聊SOTA,聊国产智能新高度。我反正也睡不着,打开IDE,顺手开了一下。说实话,我原本没抱太大期望——毕竟这行业半年一迭代,昨天是SOTA,今天就过时了,早就习惯了。但试了一圈后,我发现有些东西确实不一样。
先说个最直观的。
我让GLM-5帮我重构一个老旧的定时任务模块。代码量不小,Spring Boot 3.2.5的项目,牵涉到Redis锁、消息队列重试、数据库分片查询。以前用GPT-4或者Claude 3.5 Sonnet,这种活儿我一般先手动理清思路,再分段喂给它。结果往往是:每段都对,拼起来逻辑有坑,特别是事务边界处理上,它经常忘加@Transactional或者搞错传播行为。
这次我直接把整个Service层代码丢给它,只说了一句“把这三处Redis分布式锁的逻辑抽成模板方法,保留异常重试机制”。
它改了之后,我跑了一下单元测试。覆盖率从78%飙到了94%。关键是那个重试逻辑——我之前一直用手动count++,它给我换成了spring-retry的注解方式,还顺手把我写的自定义异常分类做了统一映射。
有意思的是,它在注释里写了一句:“注意原代码第42行的sleep是调试残留,已删除。”
我回头看,42行确实有个sleep(1000),注释都忘了删干净。这种细节,之前的模型大概率不会提。
再往下测,我给了它一个稍微复杂点的场景:设计一个订单超时自动取消的Agent流程。要求是:监听MQ,检查库存锁定时间,超过30分钟未支付则回滚库存,并发送短信通知。
它生成的代码结构很清晰。但我发现一个细节——它在初始化Redis连接池的时候,特意加了个健康检查回调。不是硬编码,而是实现了自己的HealthIndicator接口。这有点意思。
之前我看GLM-5的官方介绍,说它主攻“复杂系统工程与长周期智能体任务”。当时我不太理解这话什么意思。现在大概明白了:它不是在给你写单个函数,而是在帮你设计整个流程的边界条件。
比如这个案例里,它没有忽略异常分支。很多模型写这种流程时,默认你是正常的。但GLM-5主动补了库存扣减失败的重试、短信发送失败的后置补偿、还有Redis键过期的监听器。这些逻辑堆在一起,代码行数直接多了40%,但健壮性确实上去了。
不过我也说两句实话,不能光吹。
它不是完美无缺的。
有一次我让它写一个多线程下单的场景,需要保证数据一致性。它给的方案是用CompletableFuture异步处理,看起来很美。但我跑压力测试的时候,发现它对线程池的配置考虑得不够细致。默认参数下,并发超过2000的时候GC停顿明显变长。最后还是我手动改成了固定大小的线程池,才稳定下来。
这说明什么?说明它现在是“能想大框架,但落地细节还得靠人把关”。
和Cursor比的话,我觉得两者定位不太一样。
Cursor 2026大版本发布后,重构工作流确实顺滑,它是基于你当前编辑上下文来理解的,适合局部优化。但GLM-5更像是个能看懂整个项目结构的“老法师”。你给它一个目录,它能把模块间的依赖关系画出来,还能指出潜在的死代码。
我之前在另一篇笔记里写过对比,现在回过头看,我的结论是:Cursor适合写代码,GLM-5适合写系统。
还有个数据我想分享一下。
我用它写了一个Spring Cloud Gateway的过滤器链,用来做API限流和鉴权。总共写了大概600行代码,涉及三个微服务之间的鉴权传递。我让它在不联网的情况下,基于我提供的接口文档自己实现。
最后我跑了JMeter压测,QPS稳在12000左右,RT(响应时间)平均45ms,P99在120ms以内。
说实话,这个结果比我预期的好。之前用Codeium或者Copilot写类似的网关逻辑,要么鉴权字段丢,要么限流阈值配置错了,调试花了我大半天。GLM-5这次居然一次跑通,没出什么低级错误。
不过我也发现它的一个毛病——有时候太啰嗦。
你问它一个简单问题,它喜欢给一大段背景解释,甚至把它的推理过程都写进回答里。我在生产环境用它生成注释时,得手动删掉那些“因为我考虑到…”、“经过分析…”之类的废话。如果直接投进代码里,同事看了估计会骂娘。
这点我得吐槽一下:智谱在优化Agent能力的时候,是不是该顺手把输出简洁度也优化优化?
当然,瑕不掩瑜。
我现在已经把它作为主力工具之一了。特别是那种需要从头搭建一个子系统的场景,比如最近我在做的微服务拆分计划,它帮我生成的目录结构、依赖图、甚至初步的接口定义,都挺靠谱的。
昨天深夜发版的时候,我顺便还测了一下GLM-5.1的提价效果。涨10%确实贵了点,但性能提升也确实可观——在复杂推理任务上,错误率大概降了15%左右。如果你们公司预算够,且经常写复杂业务逻辑,这个涨价我觉得可以接受。
写到这儿,我突然想到一个问题。
大家平时用AI写代码,更看重它的“快”,还是“稳”?
我现在的感受是:快容易,稳难求。GLM-5的稳体现在它能处理长链路任务,而不是单点代码生成。这点可能很多人还没意识到,因为它不像某些产品那样强调“一键生成全栈应用”,那种噱头很大,实际落地全是坑。
你们呢?
有没有谁试过GLM-5在大型项目里的表现?觉得它离真正的“工程师级别”还有多远?
欢迎评论区聊聊,我准备去写今天的代码了。