架構設計考慮的問題(出自代碼大全II)
- 程序的整體組織結構是否清晰?是否包含一個良好的架構全局觀?
- 是否明確定義了主要的構造塊(包括每個構造塊的職責範圍及其他構造塊的接口)?
- 是否明確函蓋了“需求”中列出的所有功能(每個功能對應的構造塊不太多也不太少)?
- 是否描述並論證了那些關鍵類?
- 是否描述並論證了數據設計?
- 是否詳細定義了數據庫的組織結構和內容?
- 是否指出了所有關鍵的業務規則,並描述其對系統的影響?
- 是否描述了用戶界面設計的策略?
- 是否將用戶界面模塊化,使界面的變更不會影響程序其餘部分?
- 是否描述並論證了處理I/O的策略?
- 是否估算了稀缺資源的使用量(如線程,數據庫連接,句柄,網絡帶寬等),是否描述並論證資源管理的策略?
- 是否描述架構的安全需求?
- 架構是否爲每個類,每個子系統,或每個功能域提出空間與時間預算?
- 架構是否描述如何達到可伸縮性?
- 架構是否關注互操作性?
- 是否描述了國際化/本地化的策略?
- 是否提供了一套內聚的錯誤處理策略?
- 是否規定了容錯的辦法?
- 是否證實了系統各個部分的技術可行性?
- 是否詳細描述了過度工程的方法?
- 是否包含了必要的“買 vs .造”的決策?
- 架構是否描述瞭如何加工被複用的代碼,使之符合其他架構的目標?
- 是否將架構設計得能夠適應很可能出現的變更?