讀古今文學網 > 程序員必讀之軟件架構 > 意圖 >

意圖

這個部分的目的是回答下面幾類問題。

  • 關鍵的外部接口是哪些?
    • 比如,你的系統和其他系統之間的(不管它們在你的環境內部還是外部)。
    • 比如,暴露出來用於消費的API。
    • 比如,從你的系統導出的文件。
  • 每個接口都從技術角度考慮過了嗎?
    • 接口的技術定義是什麼?
    • 如果使用了消息,哪些隊列(點對點)和話題(發佈-訂閱)是用於通信的組件?
    • 消息的格式是什麼(比如,純文本或DTD/Schema定義的XML)?
    • 同步還是異步?
    • 異步消息的連接有保障嗎?
    • 如果必要,人們會長期訂閱嗎?
    • 消息能否打亂順序接收,這是一個問題嗎?
    • 接口是否冪等?
    • 接口是否總是可用,或者比如說你是否需要在本地緩存數據?
    • 性能/可伸縮性/安全性/其他是如何滿足的?
  • 每個接口都從非技術角度考慮過了嗎?
    • 接口所有權屬誰?
    • 接口多久會有變化,版本怎麼處理?
    • 是否有服務級別的協議?