十個軟體設計師應該有的觀念

閱讀 Top 10 Concepts That Every Software Engineer Should Know 的簡單翻譯兼筆記.

好的 RD 了解並使用 Design Pattern,積極去 Refactor 程式碼和編寫測試程式,並讓一切事物保持簡單! 除此之外還有10個概念是我們必須要熟悉的.

Interfaces

  • 現實生活中的問題 –> 系統內的模組
  • 不要加進一個你覺得未來會很有用的方法.
  • 不要害怕承認過去自己做的蠢事.
  • 享受設計的過程.

Conventions and Templates

  • 命名規則 和 程式樣版 是最簡單最有用也是”最被人忽視”的有用觀念.

Layering

  • 相同概念的元件組成一個子系統.
  • 整個系統就像是一座金字塔,由底層子系統慢慢建構上來.
  • 系統內不會有互相依賴(迴圈)的情況發生(好萊塢 Pattern).

Algorithmic Complexity

  • big O notation. Orz 我全部還給老師了!
  • 以下為翻譯兼復習 囧rz
    • 在串列中,用一個一個比對的方式會是 O(n).
    • 在串列中,用 Binary Search 會是 log(n).
    • 而將 n 的項目排列則是 n*log(n).
  • 少用多層次的巢狀迴圈,而改用 Hashtable , list 或 單層巢狀迴圈.

Hashing

  • 我們有很多的現成實作函式庫,讓我們可以把精力花在”判斷何時要使用 Hash” 以及 “微調參數提升 Hash 效率”這兩件事情上.

Caching

  • 每一次打資料庫都是一件耗時的工作.
  • 快取”時常需要產生並不太需要即時反應的結果”.

Concurrency

Package java.util.concurrent

Cloud Computing

Security

Relational Databases

自己的心得:

寫程式的面向真的很多,要全部都會我看我自己這輩子是不可能了! 但如同原作者最後所述:

But a good craftsman still needs to know what tools to use, when and why.

做不成大師也要成為一個不錯的工匠! 就這樣!

0 則回應: