後記
如果你真的將語法篇和進階篇都仔細閱讀完了,並且動手敲了代碼,那麼你會認識到 Go 的語法其實並不難,特性也並不多,經驗豐富的人可能幾天就上手了,它完完全全是一門面向工程的語言,這一點你會在以後的編碼中慢慢體會到。倘若你學習完後感到無處施展拳腳,想要更深一步學習,我可以給出下面幾個學習路線和示例項目以供參考。
Web 開發
Web 開發是 Go 語言中一個很常見的應用場景,你可以嘗試以下的幾個開源 Web 框架:
如果你想要進行微服務開發,我推薦下面幾個開源框架:
然後你需要與數據庫交互,我推薦下面幾個開源庫:
你可以參照下面這些項目來進行學習:
- gin vue admin
- go-zero-looklook
- gin-admin,單體 Web 項目我比較推薦參考該項目進行學習
- go-platform,微服務項目我推薦參考該項目進行學習
IM 通訊
使用 Go 進行 IM 開發,推薦下面這些開源項目:
網絡編程
Go 在網絡編程這塊也有非常多的應用,下面給出一些參考的開源項目:
游戲服務器
在游戲服務器這個領域,有越來越多的企業轉到 Go 這個方向
數據庫開發
數據庫開發需要一定的技術功底,基於 Go 語言的數據庫或引擎同樣也不少,光是閱讀它們的源代碼就需要花費不少時間
- badger,高速 kv 數據庫
- dgraph,圖數據庫
- cayley,圖數據庫
- etcd,分布式鍵值數據庫
- rosedb,鍵值數據庫,入門的最佳選擇
- nutsdb,鍵值數據庫
- prometheus,時序數據庫
- tidb,時序數據庫
- cockroach,分布式 SQL 數據庫
- rqlite,基於 SQLite 的分布式數據庫
命令行工具
Go 非常適合用於命令行 CLI 工具開發,下面推薦幾個命令行開發框架或庫:
- flag,flag 標准庫
- cobra,強烈推薦使用 cobra 進行 CLI 開發,有許多著名項目都是基於 cobra,比如 Docker,K8S 等
- go-pretty,用於在命令行進行美觀的輸出
- cli,輕量級的命令行框架
- kingpin,強大靈活的命令行解析庫
由於 cobra 十分常用,基於它進行命令行開發的項目非常多,隨便都可以找到,下面只是一些參考項目:
上面只是列出了比較常見的領域,你可以看到的是 Go 在服務端領域應用較為廣泛,而客戶端則較少,其實 Go 在其他領域也有不少的應用,比如 webrtc,區塊鏈,對象存儲,雲計算等等,感興趣可以在 Github 上自行了解。
最後,如果你想更深入的了解Go語言的實現細節,比如slice和 map的底層數據結構,協程調度器的實現,GC垃圾回收的過程等等,前往實現原理章節了解更多內容。
