用Claude Code配GLM写了一周代码,这套工作流真香

张开发
2026/4/17 1:02:39 15 分钟阅读

分享文章

用Claude Code配GLM写了一周代码,这套工作流真香
用Claude Code配GLM写了一周代码这套工作流真香背景Claude Code 是 Anthropic 出的终端编程工具在命令行里直接跟 AI 对话它帮你读写文件、跑命令、改代码。我最近把 Claude Code 的后端模型换成了 GLM完整跑了一周的开发工作。为什么换额度原因。Claude 自家的模型额度烧完了GLM 还有余量。本来是想凑合用几天结果发现——不是凑合是我之前用错了方式。这篇文章是我一周下来的完整复盘。第一天直接开干翻车我的项目是一个 Node.js 后端Express MongoDB给一个内容管理系统写 API。当天要加一个文章评论功能模块。我在终端里敲claude然后直接甩了一个大需求帮我写一个文章评论模块包括评论模型、发布评论接口、获取评论列表接口、删除评论接口。用 Express Mongoose。评论要支持回复parentId列表要支持分页。把相关文件都建好。GLM 动手了——建了models/Comment.js、routes/comments.js、controllers/commentController.js三个文件。看起来像模像样。但我一跑测试就发现问题Comment模型里articleId的类型是ObjectId但routes/comments.js里拿参数用的是req.params.id直接当字符串传了分页参数在路由里叫page和limit但控制器里取的是offset和pageSize删除接口检查了req.user.id但控制器里根本没引入认证中间件三处不一致每个都不是大问题但加起来我得花半小时手动修。Claude 自家模型干这种活儿文件之间的接口协调通常会更顺畅一些。我当时心想果然 GLM 还是不行。但冷静下来想这不是 GLM 不行——是我让它一口气干太多事了。一个提示词要求它同时处理数据模型、路由、控制器三个文件还要自己协调模块间的接口。这对任何模型都是高难度动作GLM 在这种大跨度多文件的任务上协调能力确实弱一些。底层原理一作用域越小AI 越有力。这对 GLM 尤其关键。第二天拆任务效果质变同样一个评论模块第二天我拆成了4个独立的 Claude Code 指令。指令1定义数据模型我在 Claude Code 里说在 models/Comment.js 里创建一个 Mongoose 模型。字段articleId: ObjectId, required, ref ArticleauthorId: ObjectId, required, ref Usercontent: String, required, maxlength 500parentId: ObjectId, ref Comment可选用于回复createdAt: Date, default Date.now只写这个文件不要动其他文件。指令2写发布评论接口在 routes/comments.js 里添加一个 POST / 接口。从 req.body 取 articleId 和 content从 req.user.id 取 authorId。parentId 可选。用 Comment 模型的字段名articleId, authorId, content, parentId来创建文档。成功返回 201 和 { success: true, commentId }失败返回 400 和 { success: false, message }。只写这一个接口不要动其他接口。指令3写获取列表接口在 routes/comments.js 里添加一个 GET / 接口。通过 query 参数 articleId 筛选支持 page默认1和 limit默认20分页。返回 { success: true, data: [...], total, page, totalPages }。只写这一个接口。指令4写删除接口在 routes/comments.js 里添加一个 DELETE /:id 接口。检查 req.user.id 是否是评论的 authorId是才能删。成功返回 200 和 { success: true }权限不足返回 403。只写这一个接口。四条指令每条只聚焦一个交付物。每个接口的输入输出、字段名、状态码都写清楚了。结果四个接口一次通过字段名完全一致分页逻辑正确权限校验到位。零修改直接跑通。总耗时比第一天那种一锅端还短——因为不用修 bug 了。心得一在 Claude Code 里用 GLM最关键的操作是拆。一个功能模块别指望一条指令搞定拆成一个个原子任务每次只让它动一个文件或一个函数。第三天规则写细了GLM 反而更稳第二天的好结果让我想试试 GLM 的极限——给它更多约束它会不会像有些模型那样开始叛逆任务是这样的给现有的用户认证模块加一个日志中间件。我列了详细的规则在 middlewares/authLogger.js 创建一个 Express 中间件记录认证相关的请求日志。规则用 CommonJSmodule.exports只记录路径以 /api/auth 开头的请求日志格式[YYYY-MM-DD HH:mm:ss] METHOD path → statusCode (耗时ms)耗时用 Date.now() 差值计算取整数只记录状态码 400 的请求400-499 输出到 console.warn500 输出到 console.error不引入任何第三方依赖不添加文件写入功能不添加请求ID功能不修改任何已有文件10条规则。我做好了他忽略几条的准备。结果——10条全中。第5条只记录 400它真的只记录错误请求。第7条不引入第三方依赖它纯用console原生方法。第8、9、10条三条不要做的排除项它完全没碰。换别的模型大概率会在第8条或第9条上好心办坏事——自动加个写入文件的功能方便你后续查看日志。底层原理二规则越多AI 越容易幻觉——但 GLM 的令行禁止能力是例外。同样详细的上下文去限定工作时GLM 执行到位的能力更强。心得二在 Claude Code 里用 GLM大胆列规则清单。规则越细它执行越准。特别是不要做XX这种排除项GLM 的执行力是我用过的模型里最靠谱的。第四-五天工作流固化验证完两个核心规律后我把自己的 Claude Code GLM 工作流固定下来了。步骤1拆交付物动手之前先把需求拆成可独立验证的交付物。我的判断标准是每个交付物对应一个文件或者一个文件中的一段明确区域。拿给API加速率限制这个需求举例我会拆成交付物对应文件独立验证方式速率限制中间件middlewares/rateLimiter.js单独测试IP计数逻辑全局注册中间件app.js 中添加一行引用启动服务看是否生效超限时的错误响应格式middlewares/rateLimiter.js 内用Postman模拟高频请求步骤2逐个下指令每个交付物一条 Claude Code 指令。指令模板在 [文件路径] 中 [具体操作]。 输入[接收什么] 输出[返回什么] 约束 1. [约束1] 2. [约束2] 3. 不要 [排除项] 只修改这个文件不要动其他文件。实际例子在 middlewares/rateLimiter.js 中创建一个速率限制中间件。规则同一个 IP 在 1 分钟内最多 60 次请求。用内存对象存储计数不需要 Redis。超限返回 429 和 { success: false, message: 请求过于频繁 }。约束使用 Map 存储计数key 是 IPvalue 是 { count, resetAt }每次请求检查 resetAt过期则重置计数不引入 express-rate-limit 等第三方包手写逻辑不要添加日志功能只创建这一个文件。步骤3跑测试验证交付物全部就位后用 Claude Code 跑一轮集成检查检查以下文件之间的接口是否一致middlewares/rateLimiter.jsapp.js 中引入 rateLimiter 的那行确认 rateLimiter 导出的函数签名和 app.js 中 use() 的调用方式匹配。如果发现问题只输出需要改的地方不要重写整个文件。这一步很轻量但能提前catch掉接口不匹配的问题。GLM 做这种对着已有代码做交叉比对的任务非常合适——作用域小规则明确不需要创意。哪些场景用 GLM 不太顺手一周下来也得说实话。不适合模糊需求的探索帮我看看这个项目架构有什么问题——这种开放式探索GLM 的回答会偏表面。它倾向于列出一些通用建议可以考虑分层注意错误处理而不是一针见血地指出你项目中的具体问题。如果你确实要做架构审查建议缩小作用域检查 routes/ 和 controllers/ 之间的参数传递找出不一致的地方。不适合大范围重构把这个项目的 CommonJS 全改成 ESM——跨几十个文件的批量重构GLM 容易顾此失彼。还是得拆——每次只让它改一个文件或一个目录。特别适合接口开发RESTful API 这种输入明确、输出明确、规则明确的活儿配合 Claude Code 的文件操作能力GLM 简直如鱼得水。拆好任务一条指令一个接口效率极高。特别适合中间件/工具函数日志、验证、格式化、错误处理——规则多、逻辑直、不需要创意。把规则列清楚GLM 几乎不会出错。特别适合写文档这个我要特别提一嘴。用 Claude Code 让 GLM 写技术文档README、API文档、CHANGELOG效果出奇地好。因为它不会擅自优化你的文档结构——你说按什么格式写它就按什么格式写。这点我在另一篇文章里会展开讲。这套工作流的核心一周下来核心就两条拆——别让 GLM 一次干太多。一个文件、一个函数、一个接口每次只聚焦一个明确交付物列——规则清单大胆写排除项明确说。GLM 的令行禁止能力在 Claude Code 这个直接操作文件的场景下特别有价值——你说只改这个文件它真的只改这个文件这不是什么高深技巧更像是跟一个新同事的磨合期。你摸清了他的工作方式之后配合起来反而可能比之前那位更顺手。

更多文章