1. 程式人生 > >軟體架構需要考慮的基本原則

軟體架構需要考慮的基本原則

1、穩定性原則

架構儘可能的簡單,清晰,不過度設計。

2、注意隔離處理

穩定業務和易變業務要分離處理,核心業務和非核心業務要分離處理,電商業務和輔助流程要分離,應用和資料要分離,服務和實現細節分離,前臺和後臺分離。

3、抽象化

  1. 應用只依賴於服務抽象,不依賴服務實現細節。
  2. 應用只依賴邏輯資料庫,不關心具體的資料庫位置和分片。
  3. 應用虛擬化部署,不關心實體機配置,動態調配資源。

4、鬆耦合

跨域調用盡量非同步化,非核心業務儘量非同步化,必須同步呼叫時,要設定超時時間和重試機制。

5、容災設計

  1. 服務要自治,彼此能夠獨立修改、部署、釋出和管理,避免引起連鎖反應。
  2. 通過叢集容錯,應用系統叢集,避免單點。
  3. 多機房容災部署,多活機制,避免出現單機房崩潰情況。

6、什麼是架構師

架構師首先是對技術和業務都全面瞭解的系統設計師,架構師可以不用寫具體的業務實現邏輯,但是他必須對系統整體採用的技術及其業務流轉過程非常熟悉,這樣才能夠根據實際業務需要給出最合適的架構設計。最好的架構不一定適合業務,適合自己的才是最好的。

其次,架構師應該密切關注技術前沿,能夠採用一些新的技術對當前繁雜的業務進行變革,從這個角度上講,架構師又承擔著變革者的角色。舉一個很簡單的例子,一個常規的專案,如果沒有架構師,經過半年時間也能設計完成。但中間可能會經歷很多不必要的重複勞動工作,而且最終產品的穩定性可能欠佳。如果有一個稱職的架構師參與,這個系統可能三個月就完成,期間的重複勞動可能會減少,同時最終產品的穩定性應該也有所保障。架構師更多的工作應該是預見未來,多做一些防患於未然的工作。

當前技術團隊的人員眾多,根據管理學上管理幅度的理論,一個管理者管理8-15個人比較合理,這樣既可以有足夠的精力思考公司戰略,達成業務,同時又有精力去培養人才。