ifelse嵌套屎山的解决方法-卫语句

卫语句(Guard)

什么是卫语?卫语句是一种编程思想,提前检查边界,保卫代码。

一、什么时候使用卫语句

大厂开发规范,超过三个ifelse建议使用卫语句、策略模式、状态模式等方式重构

以下代码中使用了卫语句进行了优化,当然实际开发中业务比这个更复杂,所以更加体现了遇到复杂逻辑需要使用卫语句。

// 求100以内同时是 3,4,5 的倍数
for (let i = 0; i <= 100; i++) {
    if (i % 3 == 0) {
        if (i % 4 == 0) {
            if (i % 5 == 0) {
                console.log(i)
            }
        }
    }
}

// 使用卫语句,从结果导向思考,摘除不是3,4,5倍数的,剩下的就是我们要的
for (let i = 0; i <= 100; i++) {
    if (i % 3 !== 0) {
        continue
    }
    if (i % 4 !== 0) {
        continue
    }
    if (i % 5 !== 0) {
        continue
    }
    console.log(i);
}

二、总结

  1. 单一嵌套ifelse分支嵌套直接使用switch就可以解决了。但是业务逻辑变得复杂时,switch恐难胜任。
  2. 我们发现如果按照事情发生的顺序写代码,会出现太多的ifesle分支,难以维护。这时候就需要使用卫语句提前检查边界直接return/continue掉不可能发生的分支。
  3. 卫语句其实是一种编程思想,从结果导向思考来优化代码。解决了ifelse的屎山代码,增加了代码的可读性和可维护性。
posted @   wanglei1900  阅读(234)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示