系統設計
結構化設計
概要設計
主要做:模塊子系統的拆分和模塊間的接口設計
抽象化
自頂而下,逐步求精
信息隱藏
模塊獨立(高內聚,低耦合)
詳細設計
做:單元的內部設計
保持模塊大小適中
儘量減少調用的深度
多扇入
調用該模塊的多,說明覆用好
少扇出
實現該模塊需要調用的方法少,說明依賴的邏輯少
單入口,多出口
模塊的作用於應該在模塊之內
功能應該是可預測的
面向對象設計
基本過程
1.分析模型
2.設計師進行細化
3.設計模型
原則
1.單一職責原則:一事一地
2.開閉原則:對擴展開放,對修改關閉
3.里氏替換原則:子類可以替代父類,重寫破壞該原則
4.接口隔離原則:使用專門的接口比總接口好
5.組合優於繼承
6.最少知識原則:一個對象儘可能對其他對象少了解
概念
架構模式
高層,C/S結構爲架構模式
設計模式
系統設計
慣用法
編碼過程
設計模式
創建型
結構型
行爲型
人機界面設計
至於用戶控制之下
減少用戶的記憶負擔
保持界面的一致性
WEB應用設計
負載均衡
不同網絡層實現的負載均衡
1.應用層:HTTP重定向
2.應用層:基於反向代理的重定向,比如:Nginx
3.傳輸層:基於DNS的負載均衡
域名解析時解析爲不同的IP地址
4.傳輸層;基於NAT的負載均衡
虛擬主機映射到多個真實的主機
5.混合型負載均衡
負載均衡算法
區分:是否需要根據訪問次數進行計算
靜態算法
輪訓算法;加權輪訓算法;原地址哈希散列算法;隨機算法;目的地址哈希散列算法
動態算法
最小連接數算法那;加權最小連接數算法;加權百分比算法
軟硬件
硬件
F5
軟件
LVS,Nginx,HAproxy
有無狀態
無狀態服務
有狀態服務
CDN 內容分發網絡
分發內容
視頻網站
靜態文件&圖片
相當於主從複製
響應式WEB設計
是一種頁面佈局
界面是否會根據用戶的行爲或者使用的設備環境進行相應的佈局調整
方法&策略
使用比例 不適用固定像素
不僅要同比縮放圖片,也需要在小設備上降低自身的圖片分辨率
處理流程設計
標杆瞄準
Petri網
IDEF
IDEF0:業務流程建模
IDEF1:信息建模
IEDF2:仿真建模設計
IDEF4:面向對象建模
軟件架構設計
概念:溝通需求分析 到 軟件設計的橋樑
作用:就是將需求分配到組件上
分類
1.數據流風格
批處理,管道-過濾器結構
2.調用和返回風格
面向對象,層次結構
3.獨立構件風格
進程通信,事件驅動系統
4.虛擬機風格
解釋器,基於規則的系統
5.倉庫風格
數據倉庫