- 程式碼應該易於理解
- 撰寫程式時,應該將讀者理解所需的時間降到最短
- 雖然減少程式碼數量是個很好的目標,但縮短理解時間更加重要
- 實務上,讓程式碼易於了解,往往也會產生良好的架構且易於測試
- 無論是重新命名變數、函數或類別,基本原則大同小異。名稱可視為簡短的註解,即使空間有限,透過選擇好的名稱就能包含許多資訊
- retval這類名稱不包含任何有意的資訊,只能代表return value,應該使用能夠說明便數值意義的名稱
- tmp這樣的名稱,只適用於變數生命週期很短,且作為暫存用途的變數
- 變數名稱不宜太長,名稱愈長就愈不容易記住,也會佔用更多畫面空間,甚至造成額外的自動換行
Example
1. 避免使用rtnVal,應給予有意義的名稱
以下是原本的寫法
1 2 3 4 5 | Double rtnVal = 0d; for (int i = 0; i < input; i++) { rtnVal += i * i; } return Math.sqrt(rtnVal); |
以下是修改後的寫法,讓名稱具有意義
1 2 3 4 5 | Double sumSquares = 0d; for (int i = 0; i < input; i++) { sumSquares += i * i; } return Math.sqrt(sumSquares); |
2. 避免使用tmp
以下是原本的寫法
1 2 3 4 5 | public String demoForBadExample2(User user) { String tmp = user.getName(); tmp += " " + user.getEmail(); return tmp; } |
以下是修改後的寫法,userInfo比tmp傳達更多資訊
1 2 3 4 5 | public String demoForGoodEaxmple2(User user) { String userInfo = user.getName(); userInfo += " " + user.getEmail(); return userInfo; } |
3. for-loop避免用 i, j, k 這樣的變數,尤其在nested loop你會改不清楚誰是誰
以下是原本的寫法
1 2 3 4 5 | public void demoForBadExample3(List<User> users) { for (int i = 0; i < users.size(); i++) { System.out.println(users.get(i).toString()); } } |
以下是修改後的寫法
1 2 3 4 5 | public void demoForGoodExample3(List<User> users) { for (int user_i = 0; user_i < users.size(); user_i++) { System.out.println(users.get(user_i).toString()); } } |
No comments:
Post a Comment