作為一個(gè)程序員,我們很少能從頭到尾參與一個(gè)新項(xiàng)目的開發(fā)。如果你經(jīng)常開發(fā)的是新項(xiàng)目,那你真是太幸福了。

          更多的情況是半路進(jìn)入一個(gè)項(xiàng)目組進(jìn)行開發(fā),或者是有其他同事離職了,之前由他維護(hù)的系統(tǒng)轉(zhuǎn)交給你維護(hù)。

          還有一種情況就是領(lǐng)導(dǎo)不知道從哪里弄過(guò)來(lái)一個(gè)系統(tǒng)和一堆文檔,然后就直接就把系統(tǒng)交給你了維護(hù)了。



          遇到以上幾種情況我們?cè)鯓硬拍芸焖偈煜ど鲜猪?xiàng)目,應(yīng)對(duì)生產(chǎn)問(wèn)題呢?下面是我自己在工作中的一點(diǎn)總結(jié),希望能對(duì)大家有所幫助。

          資料要要全


          當(dāng)你接手一個(gè)新項(xiàng)目(別人的項(xiàng)目)的時(shí)候,你要第一時(shí)間向把項(xiàng)目移交給你的人要到所有的資料。因?yàn)樵谶@之后,這個(gè)同事可能就會(huì)離職了,到時(shí)再要什么文檔就不太方便了。一般情況下,你需要拿到這些資料:

          * 項(xiàng)目代碼的地址(svn地址或者是git地址);
          * 系統(tǒng)部署的Linux機(jī)器地址,登陸的用戶名和密碼(方便登陸上去看看機(jī)器的運(yùn)行狀況)
          * 數(shù)據(jù)庫(kù)地址/用戶名/密碼(不要以為所有項(xiàng)目中都會(huì)有用戶名密碼,有些項(xiàng)目會(huì)將用戶名密碼加密)
          * 系統(tǒng)的登陸用戶/密碼(如果系統(tǒng)有頁(yè)面,將可以登陸的用戶要一個(gè),不用自己再造用戶了)
          * 其他中間件地址(MQ、Redis等)
          * 需求文檔
          * 接口文檔
          * 其他所有資料(上面的文檔時(shí)必須的,如果除此之外還能拿到其他文檔,都可以保存下來(lái))
          技術(shù)棧要看懂


          拿到文檔資料后,我個(gè)人的經(jīng)驗(yàn)是先要快速瀏覽下文檔,不需要看清文檔的每個(gè)段落,但是我們要通過(guò)略讀文檔知道這個(gè)系統(tǒng)大概是干什么的,有哪些功能。這點(diǎn)對(duì)我們后續(xù)看代碼幫助很大。

          熟悉項(xiàng)目技術(shù)棧

          快速瀏覽完文檔之后,我們就要開始看代碼了。這個(gè)階段,你需要能將代碼在本地跑起來(lái),知道這個(gè)項(xiàng)目運(yùn)用了哪些技術(shù)棧,每個(gè)技術(shù)棧的作用是什么。

          熟悉上下游系統(tǒng)

          搞清楚了上下游系統(tǒng),我們就知道了誰(shuí)調(diào)用了我們系統(tǒng),或是我們的系統(tǒng)調(diào)用了誰(shuí),查起問(wèn)題來(lái)也能有的放矢。

          知道去哪里查日志

          日志是查線上問(wèn)題的關(guān)鍵,必須要知道怎么查日志,去哪里查日志。

          知道怎么打包

          接了新需求或者改了Bug之后你肯定要發(fā)布吧,那你必須要知道這個(gè)怎么打包部署。

          知道怎么部署

          同上

          熟悉業(yè)務(wù)代碼

          到了最關(guān)鍵的一步了,但是對(duì)于這步我覺得不同的系統(tǒng)我們可以區(qū)別對(duì)待下。有的系統(tǒng)我們接手過(guò)來(lái)是要在此基礎(chǔ)上長(zhǎng)期開發(fā)維護(hù)的,那這種系統(tǒng)就需要我們好好梳理下業(yè)務(wù)。

          但是有的系統(tǒng)比較穩(wěn)定了,也不會(huì)再加什么新功能,對(duì)于這種系統(tǒng)要不要深入研究就需要我們自己權(quán)衡了。因?yàn)闀r(shí)間成本上可能劃不來(lái)。

          下面是我熟悉業(yè)務(wù)的一般流程:

          *
          step1:在看業(yè)務(wù)代碼之前,首先需要看完數(shù)據(jù)庫(kù)的表設(shè)計(jì),不然會(huì)不知所云。

          *

          step2:然后就是梳理各個(gè)接口了,一般是各個(gè)Controller(一般系統(tǒng)功能都是通過(guò)Controller暴露出去的),如果你能每個(gè)接口跟進(jìn)去debug一遍,整個(gè)調(diào)用流程都梳理清楚,那么這個(gè)業(yè)務(wù)你就梳理清楚了(這步最好根據(jù)接口文檔來(lái)梳理)

          *
          step3:當(dāng)然,系統(tǒng)的功能不都是由Controller提供的,有的是通過(guò)定時(shí)任務(wù)來(lái)觸發(fā)的,所以你要看看系統(tǒng)中配置了哪些定時(shí)任務(wù),都實(shí)現(xiàn)哪些功能;

          *
          step4:還有的功能是通過(guò)消費(fèi)MQ觸發(fā)的,所以也要看看有沒MQ相關(guān)的交互;

          *
          step5:類似其他的交互

          關(guān)于熟悉業(yè)務(wù)代碼這塊可能沒有太通用的方法,還是需要大家自己總結(jié)。

          友情鏈接
          ioDraw流程圖
          API參考文檔
          OK工具箱
          云服務(wù)器優(yōu)惠
          阿里云優(yōu)惠券
          騰訊云優(yōu)惠券
          京東云優(yōu)惠券
          站點(diǎn)信息
          問(wèn)題反饋
          郵箱:[email protected]
          QQ群:637538335
          關(guān)注微信

                欧美操逼频 | 房中术在线学习 | 性一交一乱一A片久久99蜜桃 | 91操比视频 | 午夜日韩一区二区三区在线观看 |