原發表於 2020/4/21

身為一個自由網路世界的工程師,學新的東西當然是從餵給 google 開始。

你可以找到非常多的從基礎開始介紹 GoLang 的文章,也可以找到很多很厲害但入門者可能無法完全理解的程式範例,當然也不乏 GoLang / PHP 的語法比較,在無數次的更新書籤、copy-paste-error 之後,終於可以自稱會一點點 GoLang 了。分享幾個對我幫助比較多的學習資源:

Learn Go with Tests

這不是一本書,也不是紙本書電子版,不過它放在 GitBook 上,脈絡又清楚,所以硬是要把它當成是書。

這本書是在我從零到有的學習過程中幫助最多的,沒發現它的話,我現在不可能寫得出服務。

內文以 TDD 的方式,從基礎開始學習,從基本的型別、流程控制開始,手把手的帶到 Dependency Injection 以及 Mocking 的概念,再帶你寫 Go 獨有的 Select, Sync 等 Package(至少PHP沒有)。在了解基礎之後再帶你寫出一個包含 CLI, Web 及 WebSocket 的應用程式。過程中只有 WebSocket 使用了第三方的套件,非常符合我想從根本開始了解的目標。

最精華的是:與書名呼應, 95% 的過程都照著 TDD 流程來完成,非常非常非常讚。

以前寫 PHP 的時候都是直接依靠 PHPUnit 或是 Laravel 的框架魔法來完成測試,不依靠現成的框架直接從架構面下手來完成可測試的需求,是一次非常難能可貴的學習經驗。

A Tour of Go

不負責任猜測,任何在 google 搜尋過 GoLang 的人應該都會看過這個網站。這是 GoLang 的基本導覽,直接隨附線上的 Playground 讓你玩弄 code。

我自己在什麼都不懂的初期,跟練習完 Learn Go With Tests 有一點基礎之後各看了一次,各有不同的體會。

Effective Go

這裡講比較概念的東西,適合在開始寫出一些東西以後再來讀,可以幫助你從 work 到 right (取自 Make it work, make it right, make it fast. — Kent Beck)

也有正體中文翻譯可以看,感謝翻譯的大大。

IDE

IDE 的自動完成從 PHP 新手期就開始幫助我探索 Class 及找出可以改進的地方;這在 GoLang 這種強型別的語言上更好用了,可以即時了解 Package 提供的 function 或是發現錯誤,而且這種回饋是在 coding 期間就即時發生的。

我使用的是 JetBrains 的 IDE ,但相信 VSCode 一定也有強大的插件可以完成這件事情,用 Vim 寫程式的高手…應該不需要讀這一篇吧。

最後修改日期: 2021-07-02

作者

留言

撰寫回覆或留言

發佈留言必須填寫的電子郵件地址不會公開。