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

代码优雅写法之逆向逻辑

作者: 佛系羊驼 | 来源:发表于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. 多层嵌套容易出现问题  

总结

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

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

多重嵌套是有问题的代码

相关文章

  • 代码优雅写法之逆向逻辑

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

  • 代码优雅写法之主干逻辑

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

  • 代码优雅写法之封装

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

  • 国产bmc项目bug调试总结

    1、代码逻辑不清晰,if嵌套过多。2、代码逻辑不清晰,逻辑代码书写较为分散 建议写法: 3、调试日志不规范。建议:...

  • 代码优化

    参考: 复杂判断的优雅写法简单几步让你的 JS 写得更漂亮优化 if-else 代码结构 一、复杂判断的优雅写法8...

  • 优雅的try...catch

    1.原有写法 2.使用vavr 引入依赖 编写测试 总结 使用此写法可以将代码更加优雅.

  • 代码优雅写法之多态

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

  • 2019-04-19

    逆向查询的函数写法

  • JavaScript零零散散

    一些优雅的写法逻辑运算符if (a == 1) { b()}// 可以写成a == 1 && b()if (co...

  • iOS-知识点积累

    iOS之代码优雅法则之 GCC

网友评论

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

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