扯淡
好的代码 更多的也是为了后期维护,哪怕后期不需要你来维护 ,清晰干爽的代码也会为作者留下好的印象
并且 在工作团队中 可以施加影响力
用逆向逻辑 消灭嵌套
业务场景
乘坐飞机时需要 时间在起飞之前 先 领取登机牌 在 安检 最后 天气事宜飞行 的情况下 才能乘坐飞机起飞
时间在起飞时间后----> 改签
未领取登机牌 ----->在飞机起飞前 领取登机牌
未安检 ---->在 飞机起飞前 安检
天气事宜飞行 ---> 飞行
天气不宜飞行 ---> 改签
代码实现 之 瀑布流
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. 多层嵌套容易出现问题
总结
多重或与并非的条件下达成的目的业务 不妨尝试下逆向逻辑
时刻警惕思维栈编码逻辑,优先将其考虑为一个整体
多重嵌套是有问题的代码
网友评论