Effective Java Item 68:遵守普遍接受的命名規則

整理 Effective Java 書中 Item 68: Adhere to generally accepted naming conventions 心得筆記

主旨

命名風格看似枝微末節,卻是團隊協作與程式維護的關鍵。Java 本身就訂立了明確的命名規則(來自 JLS 6.1),包括 字型格式(typographical)語法規則(grammatical) 兩大類。違反這些規則不僅會讓程式碼難讀、難維護,甚至可能誤導其他開發者造成 bug。

➡️ 命名規範不該是選項,而該是你寫 Java 時的直覺反應。

Read more

Effective Java Item 67:明智地進行優化

整理 Effective Java 書中 Item 67: Optimize judiciously 心得筆記

主旨

這條原則的核心可以用幾句老話總結:

  • “為了效能而犯的錯,比任何原因都多。”
  • “不成熟的優化是問題根源。”
  • “規則是:1. 不要優化;2. 如果你是高手,還是先別優化。”

➡️ 寫出結構清楚、可維護的程式碼,比過早優化重要得多。 等你真正碰到效能瓶頸時,再根據實測結果有的放矢地進行優化。

Read more

Effective Java Item 66:明智地使用原生方法

整理 Effective Java 書中 Item 66: Use native methods judiciously 心得筆記

主旨

Java 提供 JNI(Java Native Interface),從 Java 呼叫 C 或 C++ 寫的 native 方法。這看似能補足 Java 做不到的事,但實際上,除非真的必要,最好避開 native methods,因為這樣做會犧牲安全性、可移植性與除錯性。

Read more

Effective Java Item 65:偏好interfaces而非反射

整理 Effective Java 書中 Item 65: Prefer interfaces to reflection 心得筆記

主旨

反射(Reflection)是 Java 提供的一項強大功能,讓程式在執行期間也能動態存取類別的建構子、方法、欄位等資訊。不過,反射的代價非常高:

  • 沒有編譯期型別檢查
  • 需要大量樣板代碼
  • 效能遠低於直接呼叫

如果可以,應該優先考慮使用介面或超類別來取代反射的存取方式

Read more

Effective Java Item 64:盡量用介面來當作型別

整理 Effective Java 書中 Item 64: Refer to objects by their interfaces 心得筆記

主旨

當在宣告變數、參數或方法回傳值時,應該盡可能使用介面(interface)作為型別,而不是具體類別(class)。

這個做法讓程式碼更具彈性、更容易維護,也符合「針對抽象程式設計」的物件導向原則。

Read more