Go 部落格

GopherChina 旅遊報告

Robert Griesemer
2015 年 7 月 1 日

我們已經得知一段時間,Go 在中國比其他國家都受歡迎。根據 Google 趨勢,關於「golang」一詞搜尋量最高的區域大多數來自中國人民共和國,高於其他任何地方。 其他 人也針對同一項觀察做了猜測,然而到目前為止,我們對這個現象只有零碎的具體資訊。

中國的第一場 Go 研討會,GopherChina,看起來似乎可以藉由讓西方 Gopher 踏上中國土地來探索這個情況的絕佳機會。一封真正的邀請函讓這件事成真,我決定接受邀請,並關於 gofmt 對軟體開發的影響做一個簡報。

你好,上海!

這場會議在上海的四月週末於上海浦東軟體園區的浦軟大廈舉行,搭乘地鐵從上海較中心的區域前往,車程不超過一小時,相當便利。這場會議是仿效GopherCon而舉辦,采用單軌制的方式進行,所有講題均在容納約 400 名與會者的會議室中發表演說。這場會議是由志工主辦,由謝阿 스타領導,並獲得產業主要品牌的強力贊助。根據主辦單位表示,有許多人希望能參加這場會議,但由於空間限制,無法滿足所有人的需求。

由主要組織者謝阿 스타(左起第 2 位)所組成的歡迎委員會。

每位與會者都收到一個裝有 GopherChina 的規定制式 T 恤、各個贊助商相關的宣傳手冊、貼紙,以及時常出現的填充「某個物品」(但沒有毛絨絨的 Gophers)。至少有一位第三方供應商宣傳技術書籍,包括數本原創(未從英文翻譯)的 Go 書籍。

Go 書籍!

初次印象是,與會者的平均年齡相當年輕,因此現場充滿了熱情的氣氛,而且這場活動似乎辦得很完善。

除了我的講題以外,其他所有簡報都是用普通話進行,因此我完全聽不懂。主要組織者謝阿 스타會在我耳邊小聲地同時翻譯,偶爾出現的英文投影片也提供了線索:「69GB」這個數字即使完全不懂普通話也會特別引人注目(稍後會有更多說明)。因此,我最後僅聆聽了少數幾場簡報,而將大部分時間花在與會場外的與會者交談。然而,從投影片的內容看來,大多數簡報的品質似乎都很高,與我們去年在丹佛出席的 GopherCon 經驗相當。每場演講都分配到一個小時時段,讓主講者有充裕的時間說明技術細節,而熱情的聽眾也提出了許多(數十個)問題。

正如預期的那樣,許多簡報都是關於網路服務、行動應用程式的後端等等。有些系統的規模似乎非常龐大。例如,楊周的一場演講說明了中國主要的軟體公司 奇虎 360 所使用的內部大型訊息傳遞系統,完全使用 Go 撰寫。該簡報討論了團隊如何將原本 69GB (!) 的堆積大小和會造成 3-6 秒漫長 GC 暫停現象的數目,降低到較易管理的大小,以及如何在數千台機器中,於每台機器執行數百萬個 goroutines。未來規劃了一篇客座部落格文章,將更詳細說明這個系統。

週六的會議室擠滿了人潮。

在另一場簡報中,郭鋒 來自 DaoCloud 公司,談論他們如何將 Go 用於公司內部,以進行應用程式「持續交付」。DaoCloud 會自動將軟體託管在 GitHub(及中國等價的平台)並移至雲端。軟體開發人員只需在 GitHub 推播新版本,DaoCloud 會負責其餘的工作:執行測試、Docker 化 並使用您偏好的雲端服務供應商配送。

有幾位講者來自知名的大型軟體公司(我把研討會計畫拿給非技術人員看,他們可以輕易認出好幾家公司名稱)。與美國相比,Go 看來不僅在新手和新創公司之間廣受歡迎,也已大量被許多大型組織採用,並以我們在其他地方才剛剛開始看到的方式大規模地使用。

由於我本身並非網路服務的專家,在我的簡報中,我稍微偏離了一般的研討會主題,談論了 gofmt ,以及它廣泛的使用如何已開始形塑人們對 Go 以及其他語言的期待。我用英語簡報,但事前已將投影片翻譯為中文。由於語言障礙相當明顯,我並不預期我的演講會獲得太多問題。所以,我決定簡短扼要,並留下充裕時間讓聽眾提出有關 Go 的一般問題,而聽眾也很欣賞。

在中國,沒有絕佳美食的社交活動是不完整的。

研討會結束後的幾天,我拜訪了已有 4 年歷史的新創公司 七牛 (「七隻牛」),係應其 執行長 徐蔚的邀請,並在謝 Asta 的協助和翻譯下進行。七牛是行動應用程式的雲端儲存服務供應商;徐蔚在研討會上進行簡報,而且他碰巧也是一本關於 Go 的第一本中文書籍的作者(上圖最左邊那一本)。

七牛大廳,工程部門。

七牛雲是一家極為成功的純 Go 商店,約有 160 名員工,為超過 150,000 家公司和開發人員提供服務,儲存超過 500 億個檔案,每天新增超過 5 億個檔案。當被問及 Go 在中國成功的理由時,魏旭很快回答:PHP 在中國非常流行,但速度較慢,並不適合大型系統。與美國一樣,大學教授 C++ 和 Java 作為主要程式語言,但許多應用程式認為 C++ 是過於複雜的工具,而 Java 太過龐大。他認為,Go 現在扮演著傳統上屬於 PHP 的角色,但 Go 執行速度更快、類型安全且更容易調整規模。他喜歡 Go 的簡單特性,而應用程式也很容易部署。他認為這門語言對他們來說「很完美」,他的主要需求是推薦或標準化套件,以便輕易存取資料庫系統。他確實提到,他們過去曾遇到 GC 的問題,不過後來解決了。希望我們即將發行的 1.5 版能解決這個問題。對七牛雲來說,Go 出現在適當的時間和適當的(開放原始碼)地方。

根據 Asta Xie 的說法,七牛雲只是中國許多 Go 商店的其中一家。阿里巴巴、百度、騰訊和微博等大公司現在都以一種或另一種形式使用 Go。他指出,雖然上海和像蘇州這樣的鄰近城市是高科技中心,但北京地區的軟體開發人員數量更多。對於 2016 年,Asta 希望在北京組織一個規模更大的後續會議(約 1000 人,或許有 1500 人)。

看來我們已經找到中國的 Go 使用者:他們無處不在!

部分的 GopherChina 資料,包括影片,現在與 Go 課程一同提供於 第三方網站上。

下一篇:奇虎 360 和 Go
上一篇:Go 中的可測試範例
Blog 索引