一些系統(tǒng)設計的碎碎念

  1. 如果系統(tǒng)需要與其他系統(tǒng)聯(lián)通,在日志記錄上,應該提供承接上下游 trace 的能力,以便能夠與復雜的上下游系統(tǒng)的鏈路連接起來。
  2. 一些對象在實現(xiàn)序列化時最好能實現(xiàn)自描述,通過定義公共的序列化和反序列化方法,減少特定工具類的介入,可以參考 ASN1 的實現(xiàn)。
  3. 在管理密鑰權(quán)限時,要設置是否可導出的權(quán)限位。
  4. 在新設計系統(tǒng)時,相關(guān)的概念名詞一定要語義明確,并且不要與主流名詞和關(guān)鍵字一致,可以避免后期理解上的很多麻煩。
  5. 一個服務或者一個系統(tǒng)要有自省能力,或者說自描述能力,可以讓其他系統(tǒng)快速明白當前系統(tǒng)能夠提供的信息(例如系統(tǒng)的健康狀態(tài),所屬上下文環(huán)境,負載,路由鏈路等),這種自省能力通常是以 API 提供出去的,這樣就可以做自動化集成。
  6. 系統(tǒng)功能不要發(fā)生重疊,某個功能盡量用統(tǒng)一的組件去解決,不要單獨另起爐灶,同一個功能如果接入多個功能重疊的系統(tǒng)實現(xiàn),會造成割裂,并且不容易后期治理。
  7. 在系統(tǒng)設計時,API 是要分層次的,低級別的 API 和高級別的 API 作用是不同的??梢跃幣诺图墑e API 做細粒度的自動化控制,也可以依托高級別的 API 迅速構(gòu)建可視化系統(tǒng)。在調(diào)用 API 時,同時就會引入權(quán)限分組的概念,不同的 API 作用域是要能區(qū)分開的,這樣 API + 分組權(quán)限控制,就可以個性化的適用于各級別的調(diào)用方。
  8. 針對比較復雜或者重要的流程,一定要提前規(guī)劃異常感知上報能力,在程序流異常時能夠盡快的通知到對應的維護方,這不但有助于快速響應止損,降低異常影響范圍,而且有助于采取進一步的措施做數(shù)據(jù)補償操作,以便達到數(shù)據(jù)的最終一致性,做到數(shù)據(jù)的自修正和恢復能力。
  9. 針對數(shù)據(jù)的管理,如果數(shù)據(jù)之前存在關(guān)系,一定要提前設計有效的手段,能夠追蹤數(shù)據(jù)關(guān)系,這有利于在后期構(gòu)建數(shù)據(jù)血緣關(guān)系圖譜,另外在創(chuàng)建數(shù)據(jù)時,對于數(shù)據(jù)表的備注其實是尤為重要的,數(shù)據(jù)備注信息寫的規(guī)范,會減少后期大量的數(shù)據(jù)治理工作。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容