如何清晰地描述一個項目架構

要讓對方掌握項目架構,一個清晰的介紹架構和順序可以事半功倍。

項目背景

在介紹項目架構之前,首先要介紹一下項目本身的意義和目的,便於對方瞭解項目背景

  • 解決了什麼問題,滿足了什麼需求等?
  • 目標用戶是誰?(可以用類似講故事的方式介紹對目標用戶的帶來的價值)
  • 目前用戶的使用情況如何(訪問量,滿意度,各個功能使用情況等數據)

功能點

項目針對用戶需求或問題,開發了哪些功能

在介紹功能的時候,最好要有用戶視角,而且可能還涉及到多個不同角色的用戶。比如ToB的終端用戶,B端企業用戶,企業老闆等

核心功能

滿足用戶核心需求、解決核心問題的功能

比如:

  • RPC框架中的遠程調用
  • ORM框架中對象關係轉換
  • 智能問答系統中問答功能

輔助功能

配合核心功能工作的輔助功能

比如:

  • RPC框架中的調用鏈路跟蹤、監控、連接池管理、負載均衡等
  • ORM框架中的動態SQL、參數綁定、緩存等
  • 智能問答系統中的知識庫管理、相似問題學習等

性能&安全

在比較完善的系統規劃中,性能&安全都是重要功能特性之一,可以作爲廣義功能來介紹

比如:

  • 吞吐量
  • 響應時間
  • XSS/CSRF/SQL注入等漏洞修復
  • 數據安全等

這一部分也可以放在架構之後再介紹

發展規劃

如果有的話,就簡單介紹一下項目未來的發展方向(不要超過一張PPT,不要超過1分鐘)


架構圖

使用各種類型的圖表、文字、動畫等把項目的整體架構描述清楚,外行覺得很思路清晰,內行能夠很容易掌握技術點,能夠理解架構的優缺點。

優缺點是指架構設計中的取捨,取對項目重要的特性,捨棄本項目影響不大,可以接受的特性

模塊層次圖

系統中各個模塊的組成,模塊實現方式,模塊層次,模塊之間調用方式等

比如:存儲模塊、緩存模塊、日誌模塊、運營數據、監控模塊以及各個業務功能模塊。

核心流程圖

各個模塊在覈心功能及主要輔助功能流程中的作用,使用流程圖把各個模塊串聯起來

使用流程圖形式,讓對方瞭解系統是如何使用各個模塊協作實現核心功能

技術點

流程在使用各個模塊中實現的技術點

比如:

  • 緩存及緩存同步
  • 分佈式鎖
  • 分佈式會話管理
  • 負載均衡
  • 監控
  • AB Test
  • AOP或字節碼修改等

如果有技術亮點,可以重點介紹一下

遺留的問題

沒有一種架構是完美的,根據業務發展情況,有的問題的優先級不高,可以暫時保留

  • 比如緩存同步的方案、緩存數據量太大、運營數據比較雜亂等

改進方向

如何解決遺留的問題,如何更好滿足未來的需求,當業務量不斷增大的時候,是否有預案

比如:

  • 分庫分表、異構數據庫等
  • Set化
  • 數據冷熱分離等

監控&告警

沒有接入監控&告警系統的項目是不允許發佈上線的

  • 項目使用了什麼監控系統,監控了哪些指標,使用什麼樣的告警機制

高可用

如果是行業標準高可用方案的話,簡單介紹一下即可


其他

  • 與其他類似項目的對比

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章