3分鐘,教你快速熟悉新項(xiàng)目!
掃描二維碼
隨時(shí)隨地手機(jī)看文章
如何快速熟悉一個(gè)對(duì)你來(lái)說(shuō)完全陌生的項(xiàng)目?這可能是很多人都會(huì)遇到的難題。但如果掌握了方法論,它也可以是一道加分題。
最近有位粉絲朋友也遇到了同樣的問(wèn)題,尋求我的意見(jiàn),其實(shí)我和大家一樣,走了不少?gòu)澛贰M炊ㄋ纪?,程序喵總結(jié)了下自己之前熟悉新項(xiàng)目的心路歷程,嘗試著“在巨人的肩膀上”總結(jié)出一套方法論,希望對(duì)大家有幫助!
01
業(yè) 務(wù) 理 解
不 要 一 上 來(lái) 就 看 代 碼!
CSDN上,關(guān)于“程序員 業(yè)務(wù)理解 重要”的搜索結(jié)果有20頁(yè),洋洋灑灑,有老程序員的躊躇,也有新程序員的困惑。
了解一個(gè)項(xiàng)目,首先要了解其業(yè)務(wù),很多技術(shù)人(尤其是小年輕)都專注于編程技術(shù)的學(xué)習(xí)與沉淀,卻忽略了對(duì)業(yè)務(wù)的理解。
事實(shí)上,技術(shù)無(wú)論多么高超終究還是為業(yè)務(wù)服務(wù)的,很多公司(不乏阿里這種大公司)在面試候選人時(shí),也會(huì)重點(diǎn)考察面試者對(duì)業(yè)務(wù)的理解。不同的行業(yè),不同的公司,業(yè)務(wù)邏輯也不一樣,高級(jí)工程師不僅技術(shù)NB,也更懂得怎么用技術(shù)驅(qū)動(dòng)業(yè)務(wù)。
那么你要問(wèn)了,啥是業(yè)務(wù)理解?
我建議大家可以從尋找下面這些問(wèn)題的答案入手,如果你搞懂了80%,你也就明白了業(yè)務(wù)的意義。
-
這個(gè)項(xiàng)目是做什么的?誰(shuí)是我們的用戶?和同類(lèi)項(xiàng)目比,我們有哪些差異或優(yōu)勢(shì)?
-
項(xiàng)目的負(fù)責(zé)人是誰(shuí)?項(xiàng)目的參與者都有誰(shuí)?項(xiàng)目的上下游都有哪些?是公司的其它部門(mén)還是外部用戶?嘗試找到熟悉項(xiàng)目的人,等自己遇到問(wèn)題的時(shí)候就可以抓到人去請(qǐng)教。 -
嘗試著了解項(xiàng)目的主要功能都有什么? -
項(xiàng)目的遺留問(wèn)題,目前面臨的問(wèn)題,以及將來(lái)的規(guī)劃。只有了解了項(xiàng)目的相關(guān)業(yè)務(wù),了解的項(xiàng)目的整體流程,對(duì)整體有所把握,之后看代碼時(shí)才會(huì)有方向。
Tips:
可以先向熟悉項(xiàng)目的人請(qǐng)教業(yè)務(wù)流程,熟悉項(xiàng)目相關(guān)的所有資料:產(chǎn)品功能架構(gòu)圖,業(yè)務(wù)流程圖,功能圖,用例圖,需求文檔,設(shè)計(jì)文檔,運(yùn)營(yíng)手冊(cè)等。
02
技 術(shù) 學(xué) 習(xí)
了解完項(xiàng)目的整體流程,就可以開(kāi)始看代碼啦!
-
了解項(xiàng)目的編譯環(huán)境和運(yùn)行環(huán)境。 -
找到項(xiàng)目的架構(gòu)圖,了解項(xiàng)目的子系統(tǒng)和子模塊,以及它們之間的關(guān)系。 -
根據(jù)運(yùn)行效果和項(xiàng)目的架構(gòu)圖,在代碼中找到每個(gè)效果、每個(gè)子系統(tǒng)在代碼中的對(duì)應(yīng)位置。 -
弄清楚項(xiàng)目的關(guān)鍵輸入和輸出都有什么? -
項(xiàng)目有哪些配置文件,都是什么格式? -
項(xiàng)目有沒(méi)有接入第三方SDK,接入的第三方SDK提供了什么能力。 -
項(xiàng)目使用了什么框架,什么中間件,什么工具包。
03
實(shí)踐強(qiáng)化
當(dāng)我們熟悉了項(xiàng)目相關(guān)的業(yè)務(wù),項(xiàng)目的主要流程,并了解了項(xiàng)目相關(guān)功能的代碼后,可以嘗試著去實(shí)踐強(qiáng)化。以一個(gè)小需求做為切入點(diǎn),這個(gè)需求可以是產(chǎn)品提出的需求,也可以是自己提的需求,如有沒(méi)有小bug可以修,或是代碼中有沒(méi)有可以優(yōu)化的代碼,重構(gòu)一些有缺陷的代碼,把這些作為切入點(diǎn),自己動(dòng)手編碼,調(diào)試,測(cè)試和發(fā)布,讓自己對(duì)項(xiàng)目更加熟悉,實(shí)踐出真知,個(gè)人認(rèn)為只看代碼不如多動(dòng)手實(shí)踐。
04
多思考
熟悉了代碼后,我們不妨多做一些思考,
項(xiàng)目架構(gòu)為什么這么設(shè)計(jì)?
為什么要接入這個(gè)SDK?
為什么要用這個(gè)中間件?
項(xiàng)目目前有哪些坑?
項(xiàng)目有沒(méi)有些可以優(yōu)化的地方?
這些思考不僅可以幫助我們加深對(duì)項(xiàng)目和業(yè)務(wù)的理解,同時(shí)也有助于提高架構(gòu)能力。
總結(jié)
業(yè)務(wù)理解+技術(shù)學(xué)習(xí)+時(shí)間強(qiáng)化+多思考
參考資料
https://zhuanlan.zhihu.com/p/135411056
https://blog.csdn.net/CLG_CSDN/article/details/99713903
https://www.reddit.com/r/learnprogramming/comments/2x4nq8/how_to_get_familiar_with_an_existing_project_from/
往期推薦
|
|||
|
|||
|
|||
|
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問(wèn)題,請(qǐng)聯(lián)系我們,謝謝!