要讓對方掌握項目架構,一個清晰的介紹架構和順序可以事半功倍。
項目背景
在介紹項目架構之前,首先要介紹一下項目本身的意義和目的,便於對方瞭解項目背景
- 解決了什麼問題,滿足了什麼需求等?
- 目標用戶是誰?(可以用類似講故事的方式介紹對目標用戶的帶來的價值)
- 目前用戶的使用情況如何(訪問量,滿意度,各個功能使用情況等數據)
功能點
項目針對用戶需求或問題,開發了哪些功能
在介紹功能的時候,最好要有用戶視角,而且可能還涉及到多個不同角色的用戶。比如ToB的終端用戶,B端企業用戶,企業老闆等
核心功能
滿足用戶核心需求、解決核心問題的功能
比如:
- RPC框架中的遠程調用
- ORM框架中對象關係轉換
- 智能問答系統中問答功能
輔助功能
配合核心功能工作的輔助功能
比如:
- RPC框架中的調用鏈路跟蹤、監控、連接池管理、負載均衡等
- ORM框架中的動態SQL、參數綁定、緩存等
- 智能問答系統中的知識庫管理、相似問題學習等
性能&安全
在比較完善的系統規劃中,性能&安全都是重要功能特性之一,可以作爲廣義功能來介紹
比如:
- 吞吐量
- 響應時間
- XSS/CSRF/SQL注入等漏洞修復
- 數據安全等
這一部分也可以放在架構之後再介紹
發展規劃
如果有的話,就簡單介紹一下項目未來的發展方向(不要超過一張PPT,不要超過1分鐘)
架構圖
使用各種類型的圖表、文字、動畫等把項目的整體架構描述清楚,外行覺得很思路清晰,內行能夠很容易掌握技術點,能夠理解架構的優缺點。
優缺點是指架構設計中的取捨,取對項目重要的特性,捨棄本項目影響不大,可以接受的特性
模塊層次圖
系統中各個模塊的組成,模塊實現方式,模塊層次,模塊之間調用方式等
比如:存儲模塊、緩存模塊、日誌模塊、運營數據、監控模塊以及各個業務功能模塊。
核心流程圖
各個模塊在覈心功能及主要輔助功能流程中的作用,使用流程圖把各個模塊串聯起來
使用流程圖形式,讓對方瞭解系統是如何使用各個模塊協作實現核心功能
技術點
流程在使用各個模塊中實現的技術點
比如:
- 緩存及緩存同步
- 分佈式鎖
- 分佈式會話管理
- 負載均衡
- 監控
- AB Test
- AOP或字節碼修改等
如果有技術亮點,可以重點介紹一下
遺留的問題
沒有一種架構是完美的,根據業務發展情況,有的問題的優先級不高,可以暫時保留
- 比如緩存同步的方案、緩存數據量太大、運營數據比較雜亂等
改進方向
如何解決遺留的問題,如何更好滿足未來的需求,當業務量不斷增大的時候,是否有預案
比如:
- 分庫分表、異構數據庫等
- Set化
- 數據冷熱分離等
監控&告警
沒有接入監控&告警系統的項目是不允許發佈上線的
- 項目使用了什麼監控系統,監控了哪些指標,使用什麼樣的告警機制
高可用
如果是行業標準高可用方案的話,簡單介紹一下即可
其他
- 與其他類似項目的對比