www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 公眾號精選 > 程序喵大人
[導(dǎo)讀]如何快速熟悉一個對你來說完全陌生的項目?這可能是很多人都會遇到的難題。但如果掌握了方法論,它也可以是一道加分題。 最近有位粉絲朋友也遇到了同樣的問題,尋求我的意見,其實我和大家一樣,走了不少彎路。痛定思痛,程序喵總結(jié)了下自己之前熟悉新項目的

如何快速熟悉一個對你來說完全陌生的項目?這可能是很多人都會遇到的難題。但如果掌握了方法論,它也可以是一道加分題。


最近有位粉絲朋友也遇到了同樣的問題,尋求我的意見,其實我和大家一樣,走了不少彎路。痛定思痛,程序喵總結(jié)了下自己之前熟悉新項目的心路歷程,嘗試著“在巨人的肩膀上”總結(jié)出一套方法論,希望對大家有幫助!


01


業(yè) 務(wù) 理 解


不 要 一 上 來 就 看 代 碼!


CSDN上,關(guān)于“程序員 業(yè)務(wù)理解 重要”的搜索結(jié)果有20頁,洋洋灑灑,有老程序員的躊躇,也有新程序員的困惑。


了解一個項目,首先要了解其業(yè)務(wù),很多技術(shù)人(尤其是小年輕)都專注于編程技術(shù)的學(xué)習(xí)與沉淀,卻忽略了對業(yè)務(wù)的理解。


事實上,技術(shù)無論多么高超終究還是為業(yè)務(wù)服務(wù)的,很多公司(不乏阿里這種大公司)在面試候選人時,也會重點考察面試者對業(yè)務(wù)的理解。不同的行業(yè),不同的公司,業(yè)務(wù)邏輯也不一樣,高級工程師不僅技術(shù)NB,也更懂得怎么用技術(shù)驅(qū)動業(yè)務(wù)。


那么你要問了,啥是業(yè)務(wù)理解?


我建議大家可以從尋找下面這些問題的答案入手,如果你搞懂了80%,你也就明白了業(yè)務(wù)的意義。



  1. 這個項目是做什么的?誰是我們的用戶?和同類項目比,我們有哪些差異或優(yōu)勢?
  2. 項目的負(fù)責(zé)人是誰?項目的參與者都有誰?項目的上下游都有哪些?是公司的其它部門還是外部用戶?嘗試找到熟悉項目的人,等自己遇到問題的時候就可以抓到人去請教。
  3. 嘗試著了解項目的主要功能都有什么?
  4. 項目的遺留問題,目前面臨的問題,以及將來的規(guī)劃。只有了解了項目的相關(guān)業(yè)務(wù),了解的項目的整體流程,對整體有所把握,之后看代碼時才會有方向。

Tips:

可以先向熟悉項目的人請教業(yè)務(wù)流程,熟悉項目相關(guān)的所有資料:產(chǎn)品功能架構(gòu)圖,業(yè)務(wù)流程圖,功能圖,用例圖,需求文檔,設(shè)計文檔,運(yùn)營手冊等。




02


技 術(shù) 學(xué) 習(xí)


了解完項目的整體流程,就可以開始看代碼啦!




  1. 了解項目的編譯環(huán)境和運(yùn)行環(huán)境。
  2. 找到項目的架構(gòu)圖,了解項目的子系統(tǒng)和子模塊,以及它們之間的關(guān)系。
  3. 根據(jù)運(yùn)行效果和項目的架構(gòu)圖,在代碼中找到每個效果、每個子系統(tǒng)在代碼中的對應(yīng)位置。
  4. 弄清楚項目的關(guān)鍵輸入和輸出都有什么?
  5. 項目有哪些配置文件,都是什么格式?
  6. 項目有沒有接入第三方SDK,接入的第三方SDK提供了什么能力。
  7. 項目使用了什么框架,什么中間件,什么工具包。





03


實踐強(qiáng)化


當(dāng)我們熟悉了項目相關(guān)的業(yè)務(wù),項目的主要流程,并了解了項目相關(guān)功能的代碼后,可以嘗試著去實踐強(qiáng)化。以一個小需求做為切入點,這個需求可以是產(chǎn)品提出的需求,也可以是自己提的需求,如有沒有小bug可以修,或是代碼中有沒有可以優(yōu)化的代碼,重構(gòu)一些有缺陷的代碼,把這些作為切入點,自己動手編碼,調(diào)試,測試和發(fā)布,讓自己對項目更加熟悉,實踐出真知,個人認(rèn)為只看代碼不如多動手實踐。

04


多思考


熟悉了代碼后,我們不妨多做一些思考,

項目架構(gòu)為什么這么設(shè)計?

為什么要接入這個SDK?

為什么要用這個中間件?

項目目前有哪些坑?

項目有沒有些可以優(yōu)化的地方?

這些思考不僅可以幫助我們加深對項目和業(yè)務(wù)的理解,同時也有助于提高架構(gòu)能力。

總結(jié)

業(yè)務(wù)理解+技術(shù)學(xué)習(xí)+時間強(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/



往期推薦

01

他來了,他來了,C++17新特性精華都在這了


02

一文讓你搞懂設(shè)計模式


03

C++11新特性,所有知識點都在這了!


04

Linux如何調(diào)試內(nèi)存泄露



免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
關(guān)閉
關(guān)閉