如何熟悉一個陌生系統

在日常開發過程中,我們經常需要去承接一個陌生的系統,而且承接的系統都很複雜,那我們應該如何快速去熟悉一個系統呢,有哪些思路和切入點呢,下面從業務和技術以及實操3個層面來分享一些心得體會。

業務層面

在熟悉一個系統之前一定是先熟悉業務再熟悉技術,切不可本末倒置,下面是熟悉業務的一些要點。

1.業務背景

系統都是爲業務服務,所以要了解系統爲公司的哪塊業務服務,在所有的業務域裏處於一個什麼樣的地位,實現什麼業務目的,有什麼業務價值,如果沒有這個系統,公司業務是否有影響,影響範圍是多少,是否能正常運轉。

2.業務圖譜

大部分系統都可以通過兩個緯度來梳理出一個業務圖譜出來,一個是流程緯度,比如創建、審覈、下傳、回傳等X個流程。另一個緯度是場景緯度,比如每個流程需要支持Y個業務場景,將X與Y組合起來,就可以形成一個矩陣式的業務圖譜。通過業務圖譜的拆解和整理,對於業務的各種邏輯就有了全貌的瞭解。

3.使用情況

可以從分兩方面來了解使用情況,一個正常使用情況,也是從宏觀層面,比如該系統有哪些部門用戶在使用,有哪些用戶角色,主要是B端用戶還是C端用戶,如果是B端用戶,是一線用戶還是管理層的用戶,用戶的結構分佈是什麼樣的。每天系統的用戶使用量有多少,流量(PV/UV)分別有多少,流量可以衡量一個系統的重要程度,尤其是峯值流量。還有系統的用戶

另外一個是異常使用情況,是從微觀層面參與處理系統異常問題,也就是系統運維問題,運維問題就像一雙無形的手,在背後推着你,能倒逼你更深入瞭解系統的業務和邏輯。



技術層面

在前面所述,已經對系統的業務有了一個全面的認知,在業務認知的基礎上,接下來就需要熟悉系統的技術實現了。

1.技術架構

首先需要了解的就是系統的技術架構,基於什麼底層架構實現,使用了哪些中間件技術,代碼層面需要了解代碼實現的結構,基於什麼樣的原則分包分層。

2.數據存儲

系統使用了哪些數據庫,哪些是系統本身產生的數據,哪些是依賴的外部數據,有多少數據表,核心業務存儲在哪些表,每個表存儲什麼樣的業務數據,重要表的數據每天每週每月增量是多少

如果存在多種數據庫的存儲,需要了解清楚數據庫之間的數據同步機制,是否存在延時情況,這個延時是否會產生運維問題,是否會影響業務使用。

3.外部交互

很多系統都不是獨立存在的,都需要和外部很多系統進行交互,那系統依賴的外部接口,提供了哪些接口供外部使用呢,這些內外部接口分別承擔了什麼樣的功能和作用,其重要性如何,重要接口的SLA分別是多少。

4.系統部署

系統應用部署了哪些機房集羣,每個集羣有多少個節點容器,如何實現負載均衡,系統應用的相關性能指數如何配置的,高峯值的負載是多少。

5.系統問題

如果要熟悉一個系統,從系統反饋的問題出發來了解會讓人印象更深刻,比如通過監控能收集到很多的報警問題,就可以從監控問題入手,瞭解問題所在的模塊以及相關代碼和業務,一步一步順藤摸瓜,分析產生問題的原因,最終推進解決問題,這些分析問題解決問題的過程,其實就是逐步的熟悉系統的過程,當然前期分析問題可能還需要同事的支持和幫助,否則有的問題,如果對系統不熟,還是很難解決的。



實操層面

以上這些思路都是從宏觀層面或者從某個視角去熟悉系統,但是由於我們的系統都是由每一行代碼編織而成,所以最直觀的方式還是需要從代碼層面去進一步熟悉,才能更深刻的理解系統所實現的功能以及系統如何實現的。代碼層面有很多方式,比如可以通過開發一個需求或者修改一個Bug來熟悉代碼和相關功能。



最後使用一個思維導圖來總結以上的要點:



 

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