好的代碼 更多的也是爲了後期維護,哪怕後期不須要你來維護 ,清晰乾爽的代碼也會爲做者留下好的印象java
而且 在工做團隊中 能夠施加影響力bash
乘坐飛機時須要 時間在起飛以前 先 領取登機牌 在 安檢 最後 天氣事宜飛行 的狀況下 才能乘坐飛機起飛post
時間在起飛時間後----> 改簽ui
未領取登機牌 ----->在飛機起飛前 領取登機牌編碼
未安檢 ---->在 飛機起飛前 安檢spa
天氣事宜飛行 ---> 飛行code
天氣不宜飛行 ---> 改簽cdn
if(currentTime() < airplane.startTime() ){
//時間在有效範圍內
if(boardingPass(user)){
//擁有登機牌
if(securityCheck(user)){
//安檢完成
if(haveAGoodDay()){
return //起飛
}else{
return //改簽
}
}else{
return //進行安檢
}
}else{
return //領取登機牌
}
}else{
return //改簽
}
看見這樣的代碼 不知道是否有興趣在讀下去
這樣的代碼給人一種邏輯不清晰的感受 雖然邏輯上確實沒問題
複製代碼
將業務信息封裝下,邏輯不混亂blog
if(currentTime() > airplane.startTime()){
return //改簽
}
if(!haveAGoodDay()){
return //改簽
}
if(!boardingPass(user)){
return //領取登機牌
}
if(!securityCheck(user)){
return //安檢
}
return //起飛
用逆向思惟消滅層層嵌套
代碼中出現屢次嵌套時:
1. 邏輯不清晰
2. 邏輯清晰但未將其視爲一個業務總體,按照思惟棧的思考編碼
3. 多層嵌套容易出現問題
複製代碼
多重或與並不是的條件下達成的目的業務 不妨嘗試下逆向邏輯get
時刻警戒思惟棧編碼邏輯,優先將其考慮爲一個總體
多重嵌套是有問題的代碼