-
先跑起來,透過文件和實踐熟悉業務流程
這一步可以透過看官方文件開始,要注意的是一些專案是 更新先於文件 的,比如新版本啟動方式有變更,但是文件還沒更新。跟著文件不一定能把專案跑起來,需要藉助 GitHub Issue 或者是 Slack 這樣的工具以獲取即時的幫助
-
看測試,透過測試瞭解流程
如果是開源專案,可以透過 GitHub Action 快速瞭解需要哪些依賴、如何快速執行測試,便於在本地執行測試,透過這些整合測試可以快速弄懂業務主線
-
透過 debug 高效快速地梳理流程
透過斷點可以一步一步跟蹤程式的執行,可以比較直觀地看呼叫棧、變數等等的
對於一些無法本地除錯的專案來說,我們可以退而求其次,斷點它的測試,這也是一個很有效的方法
-
畫圖:降低複雜度
很多專案會使用一些比較優雅的設計或是引入一些抽象層,這樣程式碼讀起來就會跳來跳去,層級深的話就很容把人給繞暈了
可以用 draw.io 或者 excalidraw 等工具,根據實際情況畫一畫 活動圖、時序圖等
-
提出具體的問題,帶著問題看專案
如果只是盲目地看專案程式碼,可能看完還是一頭霧水,但是如果能提出一個具體問題,或是帶著一個需求去看,效果就會好得多
比如我提出問題:“某個任務在叢集內是如何完成的?”,我可能會先去找到該任務的建立入口,然後順藤摸瓜,找到任務的排程邏輯,順著 happy path 找到下發任務的邏輯,再找到 Woker 的處理邏輯,這樣就能弄懂整個排程流程
最後如果能用 一句話 回答提出的問題,那可能能說明你對這個問題涉及的知識已經有了一個比較好的理解
-
英語很重要
大多數專案的註釋、日誌等的都是英文,看懂這些能極大提高效率
如何弄懂複雜專案
相關文章
- 如何建立複雜的機器學習專案?機器學習
- 如何將複雜專案分解為可管理任務?
- 複雜的IT專案如何管理 有哪些管理要點
- git管理複雜專案程式碼Git
- 如何管理前端專案中的複雜依賴關係前端
- 複雜任務專案管理Project Office專案管理Project
- Datawhale-MySQL-任務六(複雜專案)MySql
- 精讀《維護好一個複雜專案》
- 用 Feature First 的方式管理前端專案複雜度前端複雜度
- 得物複雜 C 端專案的重構實踐
- 大型複雜專案管理怎麼結合傳統與敏捷專案管理敏捷
- 專案交接雜談
- 實戰複雜低程式碼專案React從架構到拆解React架構
- DDD之理解複雜度、尊重複雜度、掌控複雜度複雜度
- 時間複雜度怎麼算?如何計算時間複雜度?時間複雜度
- 如何降低軟體的複雜性?
- javascript複雜型別如何傳參JavaScript型別
- 專案需求討論-Vlayout來快速構建及擴充套件複雜介面套件
- 中國式複雜報表真的有必要存在?如何解決複雜報表
- Linux 如何設定密碼複雜度?Linux密碼複雜度
- 業務複雜度不夠,如何深挖複雜度
- 操作複雜的CRM系統如何使用
- 時間複雜度 – Java那些事兒專欄時間複雜度Java
- 時間複雜度跟空間複雜度時間複雜度
- 複雜性Complex與複雜Complicated區別 - Sonja
- 時間複雜度與空間複雜度時間複雜度
- 時間複雜度和空間複雜度時間複雜度
- 10.03.30專題 “《簡單之美》作者老倪談專案管理之道--複雜系統簡單化“專案管理
- 如何優雅地管理複雜前端程式碼前端
- 如何使用 XYZ 軟體建立複雜圖形
- 如何快速學習複雜事物的指南 - BaldauLDA
- 如何使用建造者模式構造複雜物件?模式物件
- 搭建Typescript+React專案模板(3) --- 整理專案和雜項TypeScriptReact
- 複雜度分析複雜度
- 時間複雜度O(n)和空間複雜度時間複雜度
- 複雜度分析的套路及常見的複雜度複雜度
- vue專案複製元件clipboardVue元件
- Alpha階段專案複審