
code-review-skill的8大通用代码反模式参数膨胀到TOCTOU的完整清单【免费下载链接】code-review-skillA comprehensive code review skill for Claude Code, covering React 19, Vue 3, Rust, TypeScript, TanStack Query v5, and more.项目地址: https://gitcode.com/gh_mirrors/co/code-review-skillcode-review-skill 是一款面向 Claude Code 的通用代码审查技能其核心文档 reference/code-quality-universal.md 系统整理了 8 大语言无关的代码反模式——从参数膨胀、抽象泄漏到 TOCTOU 竞争条件为日常 PR 审查提供一份可直接落地的代码质量清单。本文逐个拆解这些反模式的典型症状与修复思路即使你是新手也能照着清单快速识别代码异味。一、先认识 code-review-skillAI 代码审查的完整工具箱code-review-skill 把 AI 辅助的代码审查从模糊建议变成结构化、可重复的专业流程覆盖 20 语言与框架、超过 21,000 行审查指南核心特性说明 渐进式加载核心技能 SKILL.md 仅约 220 行语言指南按需加载不浪费上下文 四阶段审查流程上下文收集 → 高层级审查 → 逐行分析 → 总结决策️ 严重性标记 blocking必须修/ important应当修/ nit可选 语言无关指南跨领域反模式独立成文任何技术栈都适用一键安装将仓库克隆到 Claude Code 的 skills 目录即可git clone https://gitcode.com/gh_mirrors/co/code-review-skill ~/.claude/skills/code-review-skill安装后在会话中只需说一句Use code-review-skill to review this PR就能激活整套审查流程。 项目结构速览reference/存放各语言指南reference/cross-cutting/存放跨语言主题SQL 注入防护、N1 查询 等assets/提供 快速审查清单 与 PR 评论模板。二、8大通用代码反模式完整清单以下内容提炼自 reference/code-quality-universal.md每一条都给出如何识别 怎么改的实用要点。1. 重复造轮子新增代码前忘了先搜索症状PR 里新写了一段路径拼接、防抖、日期格式化而项目utils/目录早已有现成工具函数。修复方向接受新代码前先搜索代码库检查相邻文件和共享模块优先复用已有 utility而不是再发明一遍。审查要点新增函数是否与已有工具重名或功能重叠inline 逻辑能否替换为已有模块的调用2. 参数膨胀函数签名越来越长症状函数从 3 个参数变成 7 个每次新需求就追加一个调用处变成一长串位置参数还夹杂着enable_x、disable_y这类布尔开关。修复方向超过 3~4 个参数就改用配置对象 / options object / dataclass多个互斥布尔标志考虑收敛为枚举或策略模式。审查要点参数是否 ≥ 4 个新参数是否只是布尔标志3. 抽象泄漏内部实现细节漏到了外面症状函数直接返回 ORM 对象或原始 API response调用方被迫了解 SQLAlchemy、数据库结构等底层细节——换个存储实现就要全盘重写。修复方向在边界处引入 DTO / adapter 层对外只暴露领域对象把持久化细节留在抽象内部。审查要点返回类型是否暴露了 ORM、HTTP client、文件格式等实现细节是否破坏了已有的抽象边界4. 字符串类型化魔法字符串散落各处症状status active这类字符串比较散落多个文件事件名拼错一个字母usercreatedvsuserCreated编译器毫无察觉。修复方向用enum、常量对象或 union 类型统一管理状态值与事件名让拼写错误在编译期就被发现。审查要点状态值、事件名、action 类型是否散落在多个文件中字符串比较是否忽略了大小写问题5. 嵌套条件表达式三层 if 看不动症状三元表达式套三元、if/else 嵌套 3 层以上读代码像走迷宫。修复方向优先使用查找表lookup table、match/ 模式匹配或用 early return guard clauses 把嵌套拍平。审查要点三元嵌套是否 ≥ 2 层if/else 嵌套是否 ≥ 3 层6. 复制粘贴变种改了 URL 就是一份新代码症状两个删除函数逻辑完全一样只是 API 路径不同修一个 bug 时容易忘记同步修改另一份。修复方向提取参数化的共享函数把差异点变成参数或用模板方法 / 策略模式消除变种守住 DRY 原则。审查要点是否存在 ≥ 2 段仅变量名、URL 或字符串不同的近似代码7. 空操作更新值没变也照样写症状轮询每 5 秒无条件触发一次状态更新哪怕数据根本没变——白白消耗渲染、写库和带宽。修复方向加变化检测 guard——仅在值实际改变时才 setState / 提交数据库。审查要点polling、interval、event handler 是否无条件更新DB 写入前是否检查了实际变化8. TOCTOU 竞争条件检查和操作之间的时间差症状先check再act的两步操作之间存在时间窗口——检查余额后扣款、判断文件存在后再创建中间状态可能已被其他线程或进程改变导致超额扣款、重复创建等隐蔽 Bug。修复方向把检查与操作合并为原子操作事务、锁或改为直接操作 捕获异常try operate → catch让冲突在异常中显式暴露。审查要点多步状态变更是否在事务/锁内async 场景中 check 和 act 之间是否隔了一个 await三、快速自检通用质量审查清单审查 PR 时可以把下面 10 个问题当成过一遍的自查工具完整版见 通用质量指南末尾#检查项合格标准1复用审查搜索过现有 utility没有重复造轮子2参数数量函数参数 ≤ 3 个超了就用配置对象3抽象边界返回类型未暴露 ORM / HTTP client 等实现4类型安全没有用魔法字符串代替 enum / union5条件深度三元嵌套 ≤ 1 层if/else ≤ 2 层6DRY没有复制粘贴改几个字的近似代码7空操作防护轮询 / 事件处理有变化检测 guard8TOCTOUcheck → act已改为原子操作或 try-catch9数据精度没有读取整个集合只为取子集10冗余状态没有可以从其他字段推导出来的存储字段配合 assets/review-checklist.md 中的完整快速清单覆盖架构、逻辑、安全、性能、测试、质量 6 大维度一次审查就能做到不遗漏。四、把清单用起来3 步建立团队审查标准激活技能在 Claude Code 会话中输入Use code-review-skill to review this PR技能会按四阶段流程自动加载对应语言指南与通用质量指南大 diff 先分诊对超大改动可先用 scripts/pr-analyzer.py 分析 PR 复杂度再决定审查策略规范反馈用 assets/pr-review-template.md 输出结构化评论并按 / / 标记严重级别让作者一眼分清必须改和建议改。 延伸阅读各语言的专属陷阱如 React 的 Hook 误用、Rust 的 unsafe 审查见 reference/ 下对应指南跨语言安全主题见 reference/cross-cutting/ 目录。总结这 8 大代码反模式——重复造轮子、参数膨胀、抽象泄漏、字符串类型化、嵌套条件、复制粘贴变种、空操作更新、TOCTOU 竞争条件——涵盖了日常代码审查中最高频的代码异味。把它们装进审查清单再借助 code-review-skill 的结构化流程你的每次 PR 审查都会更快、更一致、更有说服力。【免费下载链接】code-review-skillA comprehensive code review skill for Claude Code, covering React 19, Vue 3, Rust, TypeScript, TanStack Query v5, and more.项目地址: https://gitcode.com/gh_mirrors/co/code-review-skill创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考