覈對表:架構

以下是一份問題列表,優秀的架構應該關注這些問題。這張覈對表的意圖並非用做一份有關如何做架構的完全指南,而是作爲一種實用的評估手段,用來評估軟件食物鏈到了程序員這一頭還有多少營養成分。這張覈對表可用做你自己的覈對表的出發點。就像“需求”的覈對表一樣,如果你從事的是非正式項目,那麼你會發現其中某些條款甚至都不用去想。如果你從事的是更大型的項目,那麼大多數條款都會是很有用的。

針對各架構主題

  q 程序的整體組織結構是否清晰?是否包含一個良好的架構全局觀(及其理由)?

  q 是否明確定義了主要的構造塊(包括每個構造塊的職責範圍及與其他構造塊的接口)?

  q 是否明顯涵蓋了“需求”中列出的所有功能(每個功能對應的構造塊不太多也不太少)?

  q 是否描述並論證了那些最關鍵的類?

  q 是否描述並論證了數據設計?

  q 是否詳細定義了數據庫的組織結構和內容?

  q 是否指出了所用關鍵的業務規則,並描述其對系統的影響?

  q 是否描述了用戶界面設計的策略?

  q 是否將用戶界面模塊化,使界面的變更不會影響程序其餘部分?

  q 是否描述並論證了處理I/O的策略?

  q 是否估算了稀缺資源(如線程、數據庫連接、句柄、網絡帶寬等)的使用量,是否描述並論證了資源管理的策略?

  q 是否描述了架構的安全需求?

  q 架構是否爲每個類、每個子系統、或每個功能域(functionality area)提出空間與時間預算?

  q 架構是否描述瞭如何達到可伸縮性?

  q 架構是否關注互操作性?

  q 是否描述了國際化/本地化的策略?

  q 是否提供了一套內聚的錯誤處理策略?

  q 是否規定了容錯的辦法(如果需要)?


 

  q 是否證實了系統各個部分的技術可行性?

  q 是否詳細描述了過度工程(overengineering)的方法?

  q 是否包含了必要的“買 vs. 造”的決策?

  q 架構是否描述瞭如何加工被複用的代碼,使之符合其他架構目標?

  q 是否將架構設計得能夠適應很可能出現的變更?

架構的總體質量

  q 架構是否解決了全部需求?

  q 有沒有哪個部分是“過度架構/overarchitected”或“欠架構/underarchitected”?是否明確宣佈了在這方面的預期指標

  q 整個架構是否在概念上協調一致?

  q 頂層設計是否獨立於用作實現它的機器和語言?

  q 是否說明了所有主要的決策的動機?

  q 你,作爲一名實現該系統的程序員,是否對這個架構感覺良好?

發佈了25 篇原創文章 · 獲贊 1 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章