Code Review 规范:卫语句 (Guard Clause) 审查指南
🔍 一、 审查核心:什么是卫语句?
卫语句是一种提早退出函数的编程模式。其核心思想是:“先挑刺,后干活”。
在函数开头,先检查所有不满足条件的“非法情况”或“边界条件”,一旦匹配立刻用 return 或 throw 阻断并退出,将真正的核心业务逻辑平铺在函数最外层。
📋 二、 Code Review 违规检查清单 (Checklist)
在审查 PR(Pull Request)时,如果发现以下坏味道(Code Smell),应触发 Request Changes(要求修改):
🔄 三、 经典重构示范(Review 前后对比)
❌ 审查不通过 (Bad Case)
存在问题:3 层 if 嵌套,核心逻辑被埋在最深处。如果后续增加条件,嵌套会越来越深,极难维护。
function applyLoan(user) {
if (user.age >= 18) {
if (user.hasJob) {
if (user.creditScore > 600) {
// ❌ 坏味道:核心主线逻辑被严重深埋
return executeLoan(user);
} else {
return "信用分不足";
}
} else {
return "无工作";
}
} else {
return "未成年";
}
}
💡 审查通过 / 建议重构方案 (Good Case)
优化点:条件反向思考,异常优先拦截。利用 return 阻断控制流,自然消灭 else。代码平铺直叙,主线逻辑一目了然。
function applyLoan(user) {
// 1. 卫语句拦截:前置“挑刺”
if (user.age < 18) return "未成年";
if (!user.hasJob) return "无工作";
if (user.creditScore <= 600) return "信用分不足";
// 2. 核心正片:主线逻辑直接平铺在最外层
return executeLoan(user);
}
🚀 四、 评审时的话术推荐 (Review Comments)
当你在 GitHub / GitLab 看到不符合规范的代码时,可以直接复制以下友好评语:
💬 关于消灭嵌套的评语:
“此处建议使用卫语句(Guard Clause)进行重构。可以将不满足的条件(如age < 18)反向思考并在函数顶部提前return退出。这样可以干掉多层if-else嵌套,让核心业务逻辑直接平铺在最外层,极大提升代码的可读性和可维护性。”
💡 评审金句总结
条件反向想,报错最前放。
不符立刻退,主线亮堂堂。

浙公网安备 33010602011771号