Total Pageviews

2016/01/02

[閱讀筆記] 易讀程式之美 (Part 1)


  1. 程式碼應該易於理解
  2. 撰寫程式時,應該將讀者理解所需的時間降到最短
  3. 雖然減少程式碼數量是個很好的目標,但縮短理解時間更加重要
  4. 實務上,讓程式碼易於了解,往往也會產生良好的架構且易於測試
  5. 無論是重新命名變數、函數或類別,基本原則大同小異。名稱可視為簡短的註解,即使空間有限,透過選擇好的名稱就能包含許多資訊
  6. retval 這類名稱不包含任何有意的資訊,只能代表return value,應該使用能夠說明便數值意義的名稱
  7. tmp 這樣的名稱,只適用於變數生命週期很短,且作為暫存用途的變數
  8. 變數名稱不宜太長,名稱愈長就愈不容易記住,也會佔用更多畫面空間,甚至造成額外的自動換行
  9. 反覆思考名稱,自問別人會怎麼解釋這個名稱
  10. 對於邊界的極值而言,最清楚的方式是在名稱前面加上max_或min_
  11. 選擇 boolean 變數或回傳 boolean 值的函數名稱時,必須確保能清楚表示true / false的意義
  12. 一般來說,加上is / has / can / should 可以讓boolean value更加明確
  13. 避免在名稱中使用否定描述,如disableSSL,改用useSSL會比較容易閱讀且簡短
  14. 最好的名稱是最不容易被誤用的名稱,閱讀程式碼的人能夠清楚了解撰寫程式的人的意圖。不幸的是,許多英文單字在程式碼都會有兩種以上的解釋,如filter、length以及limit
  15. 在決定名稱前,要從反向思考,想像可能造成的誤解,最好的名稱能夠盡量避免誤會
  16. 對於定義數值的上下限,max與min是很有幫助的prefix;對於必區間,first與last也是十分合適的prefix;對於半開放區間,begin與end是符合使用慣例的好選擇
  17. 注意使用者對特定單字的預期,如使用者會認為get與size是lightweight accessor
  18. 良好的程式碼也應該賞心悅目,其應該包含以下三原則:排版一致,讓讀者習慣固定的模式;調整類似程式碼有相似的外觀;組織相關程式碼成為段落
  19. 賞心悅目的程式碼會比較容易處理,寫程式大多數時間都花在閱讀程式上,能預快瀏覽程式碼,就愈容易使用程式碼
  20. 一致化的風格比「正確」的風格重要
  21. 程式註解的目的是協助使用者了解程式碼作者的思想
  22. 不要註解那些能很快從程式碼知道的事實
  23. 好程式 > 壞程式 + 好註解
  24. 程式設計師常用的標記有,TODO:作者還沒處理的部份;FIXME:已知的問題:HACK:承認程式解決方法不夠優雅;XXX:危險!重要問題
  25. 程式註解要有高資訊空間比
  26. 使用包含大量資訊的詞彙讓註解更加簡潔
  27. 在使用if-else判斷式時,先處理肯定條件;先處理簡單的情況,必較能在畫面中同時呈現if與else區塊,在閱讀上很有幫助;先處理比較有趣或明顯的情況
  28. 縮短其他人理解程式所需的時間,比減少程式碼行數來得重要
  29. 只有在最簡單的情況下使用三元運算子,複雜的情況還是盡量使用if / else
  30. 避免使用do / while loop

No comments: