浅谈系统架构
“架構”一詞對程序員來說是再常見不過的詞了,一提到架構絕大部分的技術人員都會有一種不可企及、十分高大上的感覺,其實架構就在我們身邊,是我們看得到摸的著的東西。
我們先看看幾個概念,系統與子系統,模塊與組件,框架與架構的關系和區別。
系統與子系統
系統是由一群有關聯的個體按照指定的規則運作,從而能完成個別元件不能單獨完成的工作的整體。例如:汽車與發動機、輪胎等元件的關系。 子系統也是一個系統,他與系統的定義是一致的,只是觀察的角度不同,一個系統可能是更大系統的一個子系統。模塊與組件
模塊和組件都是系統的組成部分,只是從不同角度拆分系統而已; 從邏輯的角度來拆分就是“模塊”,從物理的角度拆分后就是“組件”; 劃分模塊的主要目的是職責分離,劃分“組件”的目的是單元復用。框架與架構
框架(Framework)關注的是規范與功能產品,例如MVC規范與SpringMVC這個MVC的開發框架;架構(Architecture)關注的是“結構”,他是系統的頂層結構。總結:系統根據業務或功能劃分為各個模塊,某些模塊可能又被升級為了子系統;模塊中可能使用了很多組件來實現某些具體功能;同時,也可能使用了某些框架來作為開發的基礎,而架構則描述了各個子系統或模塊間如何協調工作。
為什么要做架構
**架構設計的主要目的是為了解決軟件系統復雜度帶來的問題**那么系統的復雜度主要來源于哪些方面呢?其主要來源與以下幾個方面
1)高性能
2)高可用
3)可擴展性
4)低成本
5)安全
6)規模
也就是說結構設計是為了解決某些關鍵的問題而存在,并不是每個系統都需要進行架構設計的。
在做架構設計的時候不能貪大而全,而是要遵循幾個簡單的原則
1)合適原則:合適優于業界領先
沒有那么多人,卻想干那么多人的活,是失敗的第一個主要原因;沒有那么多積累卻想一步登天,是失敗的第二個主要原因;沒有那額卓越的業務場景,卻幻想靈光一閃成為天才,是失敗的第三個主要原因。
2)簡單原則:簡單優于復雜
結構的簡單,邏輯的簡單
3)演化原則:演化優于一步到位
對于建筑來說,永恒是主題;而對于軟件來說,變化才是主題。
轉載于:https://blog.51cto.com/dengshuangfu/2354869
總結
- 上一篇: 图形学之开篇概念及综述
- 下一篇: 【客户案例】智能驾驶行业如何上云?