技術人員該如何接手一個複雜的系統?

如何接手一個複雜的系統?

做爲程序員,不管是小菜仍是老鳥,都會由於離職交接或者崗位異動等各類緣由,而避免不了要如羚羊奔跑版的速度接手一個複雜業務系統。由於只有儘快熟悉系統,方可以快速支持業務需求的研發。程序員

那麼問題就來了,面對一個一無所知的複雜的系統,咱們該如何入手呢?數據庫

本文將結合菜菜同窗多年來的沉(經)澱(驗),再融合老中醫望聞問切的招式,吐血整理成一劑錦囊妙藥和一副圖,送給你們。架構

《一劑良藥》數據庫設計

「菊花」看文檔,記疑惑。spa

「薄荷」串文檔,理脈絡。架構設計

「蓮心」講系統,要知彼。設計

「荷葉」捋代碼,了梗概。3d

玄蔘」盤經驗,理大坑。調試

蘆根」親操刀,細解剖。日誌

 

《一幅圖》

第一招:看文檔,知脈略。

老中醫:望。望診,是對病人的神、色、形、態、舌象等進行有目的的觀察,以測知內臟病變。

菜菜同窗結合「望診」而首創快速接手一個複雜系統之招式一:看文檔,知脈略

當一個複雜的系統要交接到你手上時,理想中各類文檔樣樣全,要啥有啥,而現實啪啪打臉。多數狀況下都沒有文檔,若是有一些文檔可看,不管質量如何,都是一件值得慶幸的事情。

若是項目組比較規範,沉澱了一些入門文檔、產品介紹文檔、業務架構設計文檔、數據庫設計文檔,那就更值得慶幸啦,靜下來仔細去看,經過文檔多少會了解一些系統的前世此生,對系統有一個初步的認識。

不過,當接手一個系統時,必定要看看文檔在哪裏?是在 Wiki 上,仍是在 SVN、Git 上,如如有文檔的狀況下,儘快找到它,並粗略的看一遍。

看了這麼多文檔,確定有太多的疑惑,先拿小本本記下來,製造機會請老鳥給你答疑解惑。 

第二招:聽細節,聊全局。

老中醫:聞。聞診,主要是聽患者語言氣息的高低、強弱、清濁、緩急……等變化,以分辨病情的虛實寒熱。

菜菜同窗結合「聞診」而首創快速接手一個複雜系統之招式二:聽細節,聊全局。

拿着你事先記錄好滿滿疑惑的小本本,組個會議,喊上老鳥好好給你指點迷津。

 

首先,請老鳥串一串文檔。

大概理一理,而後把你以前小本本上的問題,一股腦拋出來當面請教。

 

而後,請老鳥講一講系統。

大概要了解一下系統的使用方是誰?系統依賴的系統有哪些?系統主要干係人有哪些?系統研發的需求來自於哪裏?最重要的是要請老鳥演示一下如何把系統跑起來?跑起來後功能該怎麼用?

 

最後,請老鳥捋一捋代碼。

大概捋一捋代碼的設計,瞭解一下主要分爲幾大塊?程序入口在哪裏?技術棧是啥樣子?... ...

第三招:問疑難,解雜症。 

老中醫:問。問診,經過了解既往病史與家族病史、起病緣由、發病通過及治療過程,主要痛苦所在,自覺症狀,飲食喜惡等狀況,結合望、切、聞三診,綜合分析,做出判斷。

菜菜同窗結合「問診」而首創快速接手一個複雜系統之招式三:問疑難,解雜症。

 

首先,問老鳥:要接手的系統,歷史事故都發生過哪些?

爲了避免貳過,要了解一下要接手的系統,歷史的事故是代碼問題,仍是人禍致使的?

 

最後,問老鳥:要接手的系統,坑在哪裏?

大概瞭解一下老鳥以往趟過的那些坑,前車可鑑必是後車之師。重點了解系統有哪塊會有潛在的問題,當接手以後必定要細心着重對待,防患於未然。

第四招:親操刀,細解剖。

老中醫:切。切脈又稱診脈,是醫者用手指按其腕後橈動脈搏動處,藉以體察脈象變化,辨別臟腑功能盛衰,氣血津精虛滯的一種方法。

菜菜同窗結合「切診」而首創快速接手一個複雜系統之招式四:親操刀,細解剖。

經過前面三種招式相結合,咱們文檔也看了,系統功能也瞭解了,歷史事故也知道了,接下來要進入程序員最擅長區域——解剖代碼。

 

首先,加註釋,加關鍵日誌。

找到程序入口,根據本身的理解,一步一步去加註釋,要勇於動手去加,肯定不了的,有疑問的用註釋標記好,或者記個大大的問號,把你的想法理解都用註釋記錄一下,相信對代碼的理解,一遍比一遍更透徹。

固然,除了加註釋的一種方式,還推薦加關鍵日誌,由於加入關鍵日誌,不過日誌最好有一些特點,例如都還有「haha:」,這樣可以在子模塊調用比較複雜的情形下,在項目啓動後,根據加入日誌文件,直接關注「haha:」就能把相關子系統的調用流程串在一塊兒,屢試不爽。

 

而後,跑應用,Debug。

除了加註釋,加關鍵日誌可以理解代碼邏輯外,Debug 也是推薦的一種方式,從程序入口開始逐步進行調試,也會對代碼有一個質的理解。

仁者見仁智者見智,依據我的習慣,仍是更推薦加日誌,或許是由於 Debug 有些時候遇到反射或者庫調用,跟着跟着就亂掉了。

在這裏,建議必定要把應用跑起來,只有跑起來,才能根據以前加入的日誌,梳理梳理系統調用關係,模塊調用關係,再好好體驗體驗功能。

 

最後,畫畫圖,善分享。

加日誌、加註釋、Debug 的事兒多數鐵子都幹過,可是能把本身對代碼的理解真心畫下來的估計會不多,這塊真心推薦你們沒事的時候靜下來畫一畫,是對代碼理解質的一次提高,畫出來才能理解的更透徹,更清晰,若是閒暇之餘把上手系統的通過寫成手冊,相信對於後面接手的同事而言是一大筆「財富」。

固然了,除了畫圖、寫手冊仍是不夠的,重要的是可以拉幾個同事進行分享一下,這樣才能更快變成本身的知識,在這裏忍不住要拋一張圖。

另外,接手系統解剖代碼這塊放到最後一部分去談,緣由這塊確實考驗我的的技術能力,並且是一個長久的過程,須要慢慢去磨。

真心寄語

本次主要談談如何快速接手一個系統?吐血推薦的一幅圖和一劑藥,若是有接手系統的困惑,並且沒有更好的方法時,那不妨拿去實踐,屢試不爽。

前路漫長,人生實苦,每一個人方法都不同,條條大路通羅馬,選擇適合本身的。奔跑是追夢人的氣質,用奮鬥定義人生價值,在奔跑中抵達遠方,鐵子們加油💪。

好了,分享就到這裏,但願對你有幫助。一塊兒聊技術、談業務、噴架構,少走彎路,不踩大坑。會持續輸出原創精彩分享,敬請期待!

相關文章
相關標籤/搜索