看板 Soft_Job 關於我們 聯絡資訊
你提到的「避免太多層」 就是所謂的nested structure 而你的改良方案 稱之為guard clause google這兩個詞 會有許多的討論可以參考 關於兩種寫法 我的心得大概是: 程式碼的外觀其實直接說明了某些事情。 guard clauses的code看起來就像在說:如果發生這件事,趕快處理完、然後滾吧。 一串if/else if/else像是在說:你看,各個情況都一樣重要、 所以大家都在一樣深層的巢狀結構裡面,真正重要的code跟某些狗屁情況一樣重要, 所以他們一樣在這恐怖程式碼的內部第N層! 到底該怎麼寫還是看實際情況。不妨都試試,看當下哪個適合? 我之前思考這個問題時 有打出一整篇網誌 http://blog.turn.tw/?p=83 供您參考 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.87.8.254 ※ 文章網址: http://www.ptt.cc/bbs/Soft_Job/M.1410108366.A.846.html
tanson: 推! 09/08 01:17
ppc: push~ 09/08 01:21
ku399999: 推個 我工作後都用grard clauses 結果資深同事覺得不 09/08 03:06
ku399999: 容易懂 我才發現不是這樣用就是好 09/08 03:06
AmosYang: 推網誌 09/08 04:03
pest: 推blog 09/08 04:44
ntddt: 推網誌 表達的簡單, 有趣, 有料 :D 09/08 08:26
PoorLoser: Guard Clause 不一定比較好, 特別是有優先權問題時 09/08 12:07
PoorLoser: 例如 init A -> init B -> initC 09/08 12:08
PoorLoser: 然後有人在 init B 後面插入 init C 09/08 12:08
PoorLoser: D 09/08 12:09
PoorLoser: 但是 C 若失敗了會造成 D 出問題 09/08 12:10
lmr3796: exception其實不一定完全比較好,有些看法認為 09/08 13:45
lmr3796: 大量的non local jump會造成資源管理或trace不容易 09/08 13:45
zased: 寫了兩年的guard clause 才發現原來叫這名字 我覺得很直覺~ 09/10 23:27