Go 部落格
GopherChina 之旅報告
我們早已知道 Go 在中國的受歡迎程度超過其他任何國家。根據 Google Trends 的資料,搜尋“golang”這個詞的絕大多數都來自中華人民共和國。其他人也曾對這一現象發表過看法,但迄今為止,我們對這一現象的具體資訊卻十分稀少。
中國首屆 Go 大會——GopherChina——似乎是探索這一情況的絕佳機會,我們可以讓一些西方的 Gopher 親臨中國。收到實際的邀請後,我決定接受並就 gofmt 對軟體開發的影響發表一次演講。

你好,上海!
這次大會於一個四月的週末在上海舉行,地點在上海浦東軟體園的浦軟大廈,從上海市中心區域乘坐地鐵一個小時或更短時間即可輕鬆到達。大會借鑑了GopherCon 的模式,採用單軌制,所有演講都在一個可容納約 400 名與會者的會議室進行。大會由志願者組織,由Asta Xie 領導,並得到了主要行業名稱的大力贊助。據組織者稱,由於場地限制,許多希望參加的人未能如願。

以組織者 Asta Xie(從左往右數第二位)為首的歡迎委員會。
每位與會者都收到一個袋子,裡面裝有必備的 GopherChina T 恤、各種贊助商相關的資訊手冊、貼紙,以及偶爾出現的毛絨“玩偶”(但沒有毛絨絨的 Gopher)。至少有一個第三方供應商在推銷技術書籍,其中包括幾本 Go 原創(非英文翻譯)書籍。

Go 書籍!
第一印象是,與會者普遍比較年輕,這使得現場氣氛非常熱烈,整個活動看起來也執行得井井有條。
除了我的演講,所有演講都用中文進行,因此對我來說無法理解。主要組織者 Asta Xie 協助我進行了一些耳語同傳,偶爾出現的英文幻燈片提供了額外的線索:“69GB”即使不懂中文也能讓人印象深刻(稍後詳述)。因此,我實際上只聽了幾場演講,大部分時間都花在了與會議室外的與會者交談上。不過,從幻燈片來看,大多數演講的質量都很高,與我們去年在丹佛 GopherCon 的經歷相當。每場演講都有一個小時的時間,足以深入探討技術細節,並且聽眾提問踴躍(幾十個問題)。
正如預期的那樣,許多演講都與 Web 服務、移動應用後端等相關。其中一些系統無論從哪個角度看都顯得非常龐大。例如,周洋的演講描述了奇虎 360(中國一家大型軟體公司)使用的一個用 Go 編寫的大規模內部訊息系統。演講中討論了他們的團隊如何將原始的 69GB (!) 堆大小和由此產生的 3-6 秒的長時間 GC 暫停減少到更易於管理的水平,以及他們如何在數千臺機器上每臺機器執行數百萬個 goroutine。未來計劃釋出一篇客座部落格文章,更詳細地介紹這個系統。

週六擠滿人的會議室。
在另一次演講中,DaoCloud 的郭峰談到了他們公司如何使用 Go 進行所謂的應用程式“持續交付”。DaoCloud 負責將託管在 GitHub(及中國同類平臺)上的軟體自動遷移到雲端。軟體開發者只需在 GitHub 上推送新版本,DaoCloud 就會負責其他一切:執行測試、Docker 化,並使用您首選的雲服務提供商進行部署。
幾位演講者來自享有盛譽的大型軟體公司(我將會議程式展示給非技術人員,他們都很容易認出幾家公司的名字)。與美國相比,Go 不僅在初創公司和新加入者中非常受歡迎,而且在大型組織中也得到了廣泛應用,其規模之大是我們開始在其他地方看到的。
我自己並非 Web 服務專家,在我的演講中,我稍微偏離了會議的普遍主題,談論了 gofmt 的使用及其如何開始影響人們對 Go 乃至其他語言的期望。我用英語發表演講,但提前將幻燈片翻譯成了中文。由於語言障礙較大,我並沒有期待我的演講會收到太多問題。因此,我決定將演講時間縮短,為關於 Go 的一般性提問留出充足的時間,這一點受到了聽眾的歡迎。

在中國,沒有豐盛的美食,一次社交活動就不算完整。
會議幾天後,在CEO 徐蔚的邀請下,我訪問了這家成立 4 年的初創公司七牛(“七牛雲”),徐蔚曾在會議上發表演講,他也是第一批 Go 中文書籍的作者之一(上面照片中最左邊的那本書)。此次訪問得到了 Asta Xie 的協助和翻譯。


七牛大廳,工程部門。
七牛是一家極其成功的全 Go 公司,擁有約 160 名員工,服務超過 150,000 家公司和開發者,儲存超過 500 億個檔案,並且每天還在增長超過 5 億個檔案。當被問及 Go 在中國取得成功的原因時,徐蔚迅速回答:PHP 在中國非常流行,但相對緩慢,不適合大型系統。與美國一樣,大學主要教授 C++ 和 Java,但對於許多應用來說,C++ 工具過於複雜,Java 又過於龐大。他認為,Go 現在扮演著傳統上屬於 PHP 的角色,但 Go 執行速度更快,型別安全,並且更容易擴充套件。他非常喜歡 Go 的簡潔性以及應用程式易於部署的特性。他認為該語言對他們來說“完美”,他最希望的是有一個推薦的甚至標準化的包,可以輕鬆訪問資料庫系統。他確實提到他們過去有過 GC 問題,但設法解決了。希望我們即將釋出的 1.5 版本能夠解決這個問題。對七牛來說,Go 的出現恰逢其時,並且處於正確的(開源)生態位。
據 Asta Xie 稱,七牛隻是 PRC 眾多 Go 公司中的一家。像阿里巴巴、百度、騰訊和微博這樣的大公司,現在都在以某種形式使用 Go。他指出,雖然上海及蘇州等周邊城市是高科技中心,但北京地區擁有更多的軟體開發人員。Asta 希望在 2016 年在北京組織一個更大規模(1000,可能 1500 人)的後續會議。
看來我們已經找到了中國的 Go 使用者:他們無處不在!
一些 GopherChina 的資料,包括影片,現在可以和 Go 課程一起在一個第三方網站上找到。
下一篇文章:奇虎 360 與 Go
上一篇文章:Go 中的可測試示例
部落格索引