你可能看過一些程式碼會在if else
或for
迴圈區塊(block)的大括號結尾加上註解來標識這是一個區塊的結尾。
在區塊的右大括號標上註解通常是因為程式碼很長,或是有多層的if else
或for
迴圈,為了清楚目前是在哪個區塊中才這樣寫,例如:
if (...) {
...
if (...) {
...
for (...) {
...
if (...) {
...
} // end if
...
} // end for
...
} // end if
...
} // end if
這樣的做法沒什麼不好,確實會比較清楚知道目前在哪個區塊,不過也反映了程式碼本身的問題。
如果一個方法中的程式碼很簡短,也沒有層層疊疊的if else
或for
迴圈,那就沒有需要在大括弧後特別標註這是某個區塊的結尾了。
也就是說,如果程式碼中出現標註block結束的註解,代表方法中的程式碼太長而且做了太多事,這樣的程式碼其實需要被重構(refactor)。
一個方法中的程式碼不應太長,且一次只做一件事,一件具體的事,並且用一個能清楚描述其中邏輯的名稱來命名。如果一個方法中的程式碼太長,應檢視其中是否有可抽出為另一個方法的完整邏輯,或重複出現的程式碼。若方法中的程式碼長度夠簡短(至少小於一頁),那麼在區塊結尾標註結束的註解就沒有存在的必要。
總之Java方法中的程式碼太長不是好的實作,因為太長的程式碼讓你必須上下重覆捲動程式編輯器,最終的結果就是在區塊結尾加上註解搞清楚目前是在哪裡。
參考:
沒有留言:
張貼留言