序
回望時光,從2009 年11 月 Go 語言第一個版本發佈時起,我就開始持續關注Go 語言。當時是因為Go 語言是Google 公司開發的一門語言,所以我便格外關注。結果,從看到Go 語言的第一天起,我就被這門語言深深吸引了。
畢業後我進入蘇寧易購( 註:中國大陸3C 通路商) 從事軟體開發,在平時工作中,使用Java 和PHP 程式設計居多。後來公司的一些專案開發也陸續使用過Python、C# 等開發語言。比較之下,Go 語言更加簡潔、高效、優雅。所以在工作之餘,我一直在學習研究Go 語言,並嘗試開發了一些小項目。
2015 年8 月Go 1.5 發佈,這個版本被認為是歷史性的。完全移除C 語言部分,實現Go 語言自舉,這讓我真正地意識到Go 語言在未來有可能取代C 語言。恰好公司的專案開始嘗試用Go 語言進行重構,從此我開始深度使用Go 語言進行專案實戰開發。在使用Go 語言重構之後,我們公司的開發效率獲得了極大的提升。
由於喜歡開放原始碼,從2009 年至今,我研究了大量的原始程式碼,其中包括Java、PHP、Python、Go、Rust、Docker、Vue、Spring、Flutter等各種流行的原始程式,並將一些心得在我的個人網誌上面發表。後來我也創立了個人公眾號「原始程式巨量資料」來將好的演算法、流行的框架和程式進行分享。遺憾的是由於這幾年平時比較忙,公眾號很少打理。(之後我會花更多時間來分享精品知識和原始程式,感興趣的讀者可以關注一下。)
近幾年我在工作之餘編寫了大量Go 語言開放原始碼專案,並發佈其中一小部分到碼雲和GitHub 上,其中有代表性的是:(1)Go 支付合集;(2)Go 中文拼音合集包;(3)Go 驗證碼合集;(4)PHP 微信支付合集;(5)Go-WiFi 智慧插頭。讀者可以去Gitee 或GitHub 網站上按名稱搜索。由於我的部分Go 語言開放原始碼專案深受Go 語言社區的歡迎,加上市場上關於Go Web 開發的書很少,且書中很少有實戰的知識。所以我想寫一本Go 語言實戰方面的書來反應Go 語言社區的朋友們,也希望能幫助更多的人。於是,2019 年下半年我便在工作之餘開啟了本書的寫作之旅。
到了2020 年,由於公司專案比較緊,寫書的事便一直擱淺。直到2020年7 月,電子工業出版社的吳宏偉編輯找到我,邀請我寫書。恰好正在寫第2 章,我想這應該是和吳宏偉編輯有緣,便欣然答應。從此我開始捨棄業餘時間,全力寫作。
特別感謝吳宏偉編輯,在我寫書過程中他提出了許多寶貴的意見和建議,並和我反覆溝通、修改。經過反覆修改打磨,咬文嚼字,本書才得以完稿。
特別感謝Go 語言社區的所有的貢獻者,沒有他們的無私奉獻,就沒有Go 語言社區的繁榮。謹以此書獻給所有喜歡Go 語言的朋友們。
感謝我的爸爸秀剛、媽媽克平。生為農民的他們,具有中國農民最樸質的勤勞精神。他們生我養我,20 年如一日,送我讀完大學,在我心中他們很偉大。
感謝我的妻子清荷,我的知音知己。中文系的她讓我熟讀各種文學著作,也因此愛上寫作。在她的影響下,我熟讀《道德經》等經典文學著作,讓我在展翅翱翔的同時懂得保持謙卑和知進退。在我寫作期間,是她在背後默默地支持和付出,才使得這本書能夠順利完稿。
廖顯東