重點摘要#

  • 選擇框架時,不僅要看個別品質,更要看它們是否能良好共存
  • 選擇不重疊、謙遜且專注的框架
  • 效用對包袱比率(utility-to-baggage ratio)的框架更好
  • 框架之間的領域重疊會導致不必要的複雜膠水程式碼

詳細內容#

選擇軟體框架時,你不僅要考慮每個框架的個別品質和功能,還要看這些框架組合在一起是否能良好運作,以及隨著系統演進是否容易添加新軟體。

避免框架重疊#

  • 每個框架或第三方程式庫最好只處理一個獨立的邏輯領域
  • 不要侵入其他框架的領域或關注點
  • 用 Venn 圖來理解候選框架之間的邏輯領域重疊

兩個在領域上大量重疊的資料模型,或是兩個以略微不同方式處理相似關注點的實作,會造成不必要的複雜度。你最終會得到複雜的膠水程式碼,以及兩個框架功能的最低公約數

效用對包袱比率#

評估框架時要考量:

  • 效用(Utility):框架提供的、你的專案實際需要的功能或資料表示
  • 包袱(Baggage):框架那種包山包海、「我是老大」的世界觀
  • 它是否堅持混合資料表示和控制?
  • 它的資料模型是否遠超你的系統需求?
  • 你是否需要成為框架「宗教」的信徒?

如果一個框架帶有大量包袱,那它最好能提供你專案 75% 的功能價值。否則,選擇簡單、謙遜、靈活的框架。

理想的框架組合#

你的系統應該由互斥的框架組成,每個框架都是其領域的專家,同時保持簡單、謙遜和靈活。

— By Eric Hawthorne