Code Review 规范:卫语句 (Guard Clause) 审查指南

🔍 一、 审查核心:什么是卫语句?

卫语句是一种提早退出函数的编程模式。其核心思想是:“先挑刺,后干活”
在函数开头,先检查所有不满足条件的“非法情况”或“边界条件”,一旦匹配立刻用 returnthrow 阻断并退出,将真正的核心业务逻辑平铺在函数最外层。


📋 二、 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 嵌套,让核心业务逻辑直接平铺在最外层,极大提升代码的可读性和可维护性。”


💡 评审金句总结

条件反向想,报错最前放。
不符立刻退,主线亮堂堂。

posted @ 2026-06-15 18:24  HuangBingQuan  阅读(15)  评论(0)    收藏  举报