原文鏈接: 讀 Go 原始碼,可以試試這個工具
編程發展至今,從面向程序到面向物件,再到現在的面向框架,寫代碼變成了一件越來越容易的事情,
學習基礎語法,看看框架檔案,幾天時間搞出一個小專案并不是一件很難的事情,
但時間長了就會發現,一直這樣飄在表面是不行的,技術永遠得不到提升,
想要技術水平有一個質的飛躍,有一個很好的方法,就是讀原始碼,
但讀原始碼真的是一件很有挑戰的事情,
想想當年自己讀 Django 原始碼,從啟動流程開始看,沒走幾步就放棄了,而且還放棄了很多次,
這么說吧,我對 Django 啟動部分的代碼,就像對英文單詞 abandon 那么熟悉,
后來總結經驗,發現是方法不對,
主要原因是一上來就深入細節了,事無巨細,每個函式都不想錯過,結果就導致對整體沒有概念,抓不住重點,又深陷無關緊要的代碼,最后就是看不進去,只能放棄,
最近看了一點 Go 原始碼,慢慢也摸索出了一些心得,有一個方法我覺得挺好,可以帶著問題去讀原始碼,比如:
- Go Error 嵌套到底是怎么實作的?
- 為什么要避免在 Go 中使用 ioutil.ReadAll?
- 如何在 Go 中將 []byte 轉換為 io.Reader?
在解決問題的程序中也就對原始碼更熟悉了,
還有一點要注意的就是,先看整體,再看細節,
在這里推薦給大家一個工具,這個工具可以幫我們梳理出代碼的整體結構,我覺得還是挺有用的,是一個開源專案:
專案地址: https://github.com/jfeliu007/goplantuml
這個專案可以分析一個 Go 專案,然后生成介面和結構體的 UML 圖,有了這個圖之后,基本上也就對專案整體關系有了一個基本概念,再讀代碼的話,相對來說會容易一些,
專案具體怎么用我倒是沒仔細研究,因為老哥非常貼心的寫了一個 WEB 頁面:
網站鏈接: https://www.dumels.com/

使用起來很方便,首先在頁面最上方輸入框輸入專案地址,然后在左側輸入要分析的代碼目錄就可以了,默認生成的圖中會包括 Fields 和 Methods,
填寫好資訊之后就可以生成 UML 圖了,比如我輸入的 src/sync,就得到了下面這張圖,有了這張圖,對代碼結構之間的關系就更清晰了,

還可以一次分析多個目錄,多個目錄用英文逗號分割,
如果不填寫要分析的目錄,則會分析整個專案,也可以選擇是否要忽略某個目錄,
友情提示一點,不要試圖分析整個 Go 專案,可能是專案太大了,頁面是不會給你回傳的,
好了,本文就到這里了,你有什么好用的工具嗎?歡迎給我留言交流,
往期推薦:
- Go 學習路線(2022)
- 開始讀 Go 原始碼了
- 推薦三個實用的 Go 開發工具
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/423541.html
標籤:其他
下一篇:集合remove()方法相關問題
