美文网首页
代码优雅写法之逆向逻辑

代码优雅写法之逆向逻辑

作者: 佛系羊驼 | 来源:发表于2019-08-09 22:46 被阅读0次
    海街日记.jpg

    扯淡

    好的代码 更多的也是为了后期维护,哪怕后期不需要你来维护 ,清晰干爽的代码也会为作者留下好的印象

    并且 在工作团队中 可以施加影响力

    用逆向逻辑 消灭嵌套

    业务场景

    乘坐飞机时需要 时间在起飞之前领取登机牌安检 最后 天气事宜飞行 的情况下 才能乘坐飞机起飞

    时间在起飞时间后----> 改签

    未领取登机牌 ----->在飞机起飞前 领取登机牌

    未安检 ---->在 飞机起飞前 安检

    天气事宜飞行 ---> 飞行

    天气不宜飞行 ---> 改签

    代码实现 之 瀑布流

        if(currentTime() < airplane.startTime() ){
              //时间在有效范围内
            if(boardingPass(user)){
                    //拥有登机牌
                    if(securityCheck(user)){
                           //安检完成
                            if(haveAGoodDay()){
                                    return  //起飞
                              }else{
                                   return   //改签
                              }
                      }else{
                           return  //进行安检
                      }
            }else{
                   return    //领取登机牌
            }
        }else{
              return   //改签
        }
    
        看见这样的代码 不知道是否有兴趣在读下去
        这样的代码给人一种逻辑不清晰的感觉 虽然逻辑上确实没问题
    

    代码优雅写法之封装

    将业务信息封装下,逻辑不混乱

    代码实现之逆向逻辑

      if(currentTime() > airplane.startTime()){
            return   //改签
      }
    
      if(!haveAGoodDay()){
            return  //改签
       }
    
      if(!boardingPass(user)){
            return    //领取登机牌
       }
    
      if(securityCheck(user)){
            return   //安检
       }
       
      return  //起飞
      
      用逆向思维消灭层层嵌套
      代码中出现多次嵌套时:
      1. 逻辑不清晰
      2. 逻辑清晰但未将其视为一个业务整体,按照思维栈的思考编码
      3. 多层嵌套容易出现问题  
    

    总结

    多重或与并非的条件下达成的目的业务 不妨尝试下逆向逻辑

    时刻警惕思维栈编码逻辑,优先将其考虑为一个整体

    多重嵌套是有问题的代码

    相关文章

      网友评论

          本文标题:代码优雅写法之逆向逻辑

          本文链接:https://www.haomeiwen.com/subject/wmpkjctx.html