軟件&系統架構總綱
分層分割分佈式
異步集羣有緩存
安全冗餘自動化
伸縮擴展全能用
AOP 與 IOC
MVC + DI
設計模式均負載
熔斷限流雅啓停
事務分佈ACID
離線計算與AI
軟件架構
分層:分層是計算機中的經典模式,比如TCP/IP. 業務中的MVC. Network|DISK|DAL|UTIL|Service|Mediator|Controller|Viewer
分割:現代系統越來越複雜,如果商城APP,會所定單,端口,用戶等獨立出來,分成獨立的模塊、微服務、中臺。
AOP:面向切面編程,攔截器,中間件(midleware)
IOC:控制反轉,回調,被調,軟件框架
DI:依賴注入,實現IOC的一種方式
MVC:Model,View,Controller. mvp, mvvc
對象之間的關係:設計模式。 創建型,結構型,行爲型。 對象之間無非:A繼承B,A ref B, A ref nB, A ref A
系統架構
分佈式,集羣,冗餘:分片用來擴展系統性能和吞量, 複製集則可以解決數據可靠性能。
自動化:devops. 自動擴容,故障恢復
衡量計算機系統的5個指標:
易伸縮:可以隨意增加機器來線性提升性能,吞吐量
可擴展:添加新功能不用改老代碼,熱更新。
安全: 安全認證,https, ACL Key,風險控制系統。
高性能: 可以通過擴展機器來提升性能。 單機性能:要有好的數據結構和算法 + 異步操作+緩存, 少用鎖
高可用:一個結點有多個備份結點,隨時保持數據一致。 主節點出錯,從節點能自動切爲主
事務與分佈式事務:ACID, 2PC, 3PC, TCC, 事務消息 Saga
離線計算:實時性不高的可以用離線計算,定時更新。 比如推薦系統
AI:人工智能,挖掘數據
客戶端到服務器的系統架構
就拿http緩存爲例:客戶端自己本地緩存,CDN緩存,DNS緩存, 網絡加速專線,正向代理緩存, lVS負載均衡,內部反向代理緩存,內部分佈式緩存redis, 服務進程內緩存,CPU緩存,磁盤緩存。
可以看出解決客戶端到服務器的訪問的問題,也採用了分層的思想。
軟件工程
人vs人。 客戶端,前端,服務器,測試,項目經理,產品經理,同一個公司其他部門,其他公司,外包。
良好的溝通與合作。