※ 引述《twoseven (Tse)》之銘言:
: 當然這還是要看愈到的情況
: 除非真的是個別的條件又有個別的支線要處理 我才會想包起來
: 我曾經看過一個vb6用包起來只是判斷條件就包了10層..還好很整齊
: 不過要是哪天突然碰到要維護光是要決定改第幾層就很頭大
: 新手上路..請盡量鞭策:)
就我個人三種風格都碰過的經驗來說,用Nested if有個很明顯的問題,就是
維護性。
軟體有種自我繁殖的惰性,所以當一個程式碼用了三層的if來做validation,
很難不保證未來接手的人會讓他長出第四五六層。
這時候guard condition或者short circuit evaluation在維護性上就有其優勢。
所以在我們公司裡面做code review時我反而會要求相反的趨勢,把Nested if改
成guard condition或者short circuit evaluation......
維護過慢慢長出十層if+else的程式後,我一直覺得Nested if是趕專案加上懶惰
造成的產物,懶惰會付出代價的......