从‘试用’到‘投产’:一位全栈工程师的Claude Code工程化实践避坑手册
一、为什么“试用很爽,上线就崩”?——我的三次翻车现场实录 2024.03.12 上午10:23 —— CI流水线突然卡死在 claude-plugin:run 步骤。本地 npx claude-gen --component Header 三秒出结果,CI里却卡住 90 秒后被 Kubernetes OOMKilled。日志最后一行是: [claude-plugin] timeout after 60s waiting for Claude API response (retry=3) 没人想到,我们给插件配的 CLAUDE_TIMEOUT=60 是硬编码进 Dockerfile 的,而 CI 环境 DNS 解析慢了 200ms,叠加重试逻辑直接超时。更讽刺的是,本地 .env 里写了 CLAUDE_TIMEOUT=120,但插件根本没读——它只认环境变量,不读文件。 2024.04.05 下午16:47 —— 生产监控告警:useEffect dependency warning 爆发式增长。React DevTools 里一切正常,但 Sentry 报出上千条: Warning: React has detected a change in the order of Hooks called by MyDataGrid. This will lead to bugs and errors if not fixed. at MyDataGrid (src/components/MyDataGrid.tsx:42:3) at useEffect (react.development.js:2439) 翻代码才发现:Claude生成的组件里,useEffect(() => { loadData(); }, [searchTerm]) 被写成了 useEffect(() => { loadData(); }, []) —— 因为 prompt 里我只写了“加个搜索功能”,没明确说“依赖项必须包含 searchTerm”。开发时 searchTerm 恰好是全局常量,所以没报错;生产环境它是从 URL 参数动态解析的,一变就崩。 ...