網頁

2019/5/31

Java if else或for迴圈等區塊的大括弧結尾要不要加上註記

你可能看過一些程式碼會在if elsefor迴圈區塊(block)的大括號結尾加上註解來標識這是一個區塊的結尾。

在區塊的右大括號標上註解通常是因為程式碼很長,或是有多層的if elsefor迴圈,為了清楚目前是在哪個區塊中才這樣寫,例如:

if (...) {
    ...
    if (...) {
        ...
        for (...) {
            ...
            if (...) {
                ...
            } // end if
            ...
        } // end for
        ...
    } // end if 
    ...
} // end if

這樣的做法沒什麼不好,確實會比較清楚知道目前在哪個區塊,不過也反映了程式碼本身的問題。

如果一個方法中的程式碼很簡短,也沒有層層疊疊的if elsefor迴圈,那就沒有需要在大括弧後特別標註這是某個區塊的結尾了。

也就是說,如果程式碼中出現標註block結束的註解,代表方法中的程式碼太長而且做了太多事,這樣的程式碼其實需要被重構(refactor)。

一個方法中的程式碼不應太長,且一次只做一件事,一件具體的事,並且用一個能清楚描述其中邏輯的名稱來命名。如果一個方法中的程式碼太長,應檢視其中是否有可抽出為另一個方法的完整邏輯,或重複出現的程式碼。若方法中的程式碼長度夠簡短(至少小於一頁),那麼在區塊結尾標註結束的註解就沒有存在的必要。


總之Java方法中的程式碼太長不是好的實作,因為太長的程式碼讓你必須上下重覆捲動程式編輯器,最終的結果就是在區塊結尾加上註解搞清楚目前是在哪裡。


參考:

沒有留言:

張貼留言