代碼整潔之道

一、什麼是整潔的代碼

有多少程序員,就有多少定義。但共性都有以下幾點:
- 高效(性能)
- 優雅&簡單直接(可讀性)
- 消除重複

二、怎麼才能寫出整潔的代碼

1.有意義的命名

  • 名副其實 —- 命名要有實際意義 重構方法實現時方法名是否還能否清晰表意,是否需要同步修改
  • 避免誤導 —- 命名不全、不合適的縮寫
  • 有意義的區分 —- ProductData、ProductInfo 避免廢話冗餘,NameString or Name
  • 讀的出來的名稱 —- 切記不要造詞 genymdhms —> generateTimestamp
  • 避免思維映射 —- 不應當讓讀者把你的命名翻譯成他們熟知的的名稱
  • 有意義的語境 —- name or companyName or productName

PS:類名:名詞或名詞短語,避免使用Mananger、Processer、Info等
方法名:動詞或動詞短語

2.函數

  • 短小 —- 少嵌套
  • 只做一件事(單一職責)
  • 函數中的語句處於同一抽象層
  • 使用描述性的名稱
  • 參數越少越好 —- 參數組合 避免標識參數boolean 多個參數是否應該合併封裝成類
  • 無副作用 —- 該做的事沒做好 or 做了不該做的事
  • 消除重複

3.類

  • 類應該短小
  • 單一職責
  • 內聚

4.註釋

  • 註釋不能美化糟糕的代碼
  • 對意圖的解釋 — 簡潔
  • 警示
  • 誤導性註釋 — 理解不夠精確 or 代碼變遷
  • 多餘的註釋
  • 註釋的代碼 — 幹掉它

    不要給糟糕的代碼加註釋——重寫吧!

5.對象與數據結構

  • 對象隱藏數據,暴漏行爲 —- 便於添加新對象類型而無需修改既有行爲,但難以在既有的對象中添加新行爲
  • 對象暴漏數據,隱藏行爲 —- 便於向既有數據添加新行爲,但難以向既有函數添加新的數據結構

6.錯誤處理

  • 使用異常而非錯誤碼 —- 返回碼需要在條用之後即可檢查處理,擾亂調用者代碼
  • try-catch-finally —– 只try明確存在異常的代碼 明確catch類型,切記不要通吃導致問題掩蓋
  • 返回值儘量別傳null用空列表等代替

7.邊界

  • 謹慎使用第三方代碼
  • 未知的代碼
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章