2019年4月28日晚,由探探獨家冠名,滴滴和 GoCN 社群聯合主辦,英語流利說、Grab、客路、JetBrains、PingCAP、阿里雲、TARS、美餐、心動網路等多家大廠以及掘金、IT大咖說、非同步社群、華章圖書等合作媒體贊助的一場熱鬧非凡的技術盛會,探探第五屆 GopherChina 圓滿結束了,與會人數超過 1000 人。
2009 年的11月10日,Go 語言以開放原始碼的方式向全球正式釋出,截止到2019年,已經有超過 1680 個貢獻者為該專案的 34 個儲存庫完成了超過 50,000 次提交。由於 Go 是第一個開源的語言,我們已經更新迭代了 10 個版本。同時,線下活動也在積極的展開, Go 語言大會和使用者組遍佈全世界。
2015年由 Go 中國社群發起的第一屆 Gopher China 大會在上海成功舉辦,歷時四年已成為國內最權威和最乾貨的Go大會,GopherChina 大會致力於為中國廣大的 Gopher 提供最好的交流平臺。舉辦 Gopher China 大會的目的是彙集廣大 Go 語言的開發者以及大規模應用 Go 的示範企業給大家帶來精彩分享,呈現一場最 cool 的技術盛會。
GopherChina 大會舉辦至今,在業內獲得了良好的口碑,被公認是最具實力、最具乾貨的線下技術盛會。
4月26日,國際知名講師 Dave Cheney 受邀在大會前一天就給報名參加培訓的 Gopher 進行了深度的培訓,本次會前培訓 Dave 分享的主題是高效能Go 研討會,分享話題圍繞著 1. 微處理器效能的過去、現在和未來;2. 基準測試;3. 效能測量和分析;4. 編譯器優化;5. 執行跟蹤程式;6. 記憶體和垃圾收集器;7. 提示和回顧展開,培訓結束後, Dave 為每一位參加培訓的同學都頒發了自己親筆簽名的課程完成證書。
4月27日早上9:00大會正式開始,GoCN社群發起人兼歷屆大會的主辦負責人 Asta 進行了開場致辭,他說到:“轉眼間,GopherChina大會我們已經舉辦第五屆了,感謝大家在百忙之中來參加的大會,給大家彙報一下Gopher China 組委會在過去一年我們做的一些事情。過去一年的時間裡,繼在上海舉辦了第四屆 Gopher China 大會之後,我們後面在各個城市舉辦了 Gopher Meetup 活動,從去年的 5 月份開始到 12 月結束,我們一共跑了4個不同的城市,辦了5場 Gopher Meetup 活動。今年 GopherChina 大會結束後,我們將爭取把Gopher Meetup活動擴充套件到10個城市。”
Go 在很多地方逐步用起來,很多地方需要線下交流的平臺。Gopher China 活動最先是當作社群的活動在搞。希望在國內用 Go 的人越來越多,希望搭建平臺,讓大家很好交流技術。從第一屆到今年的第五屆,GopherChina 大會不僅是從人數上有增加,大會topic涉及的領域也逐步在擴充套件。
每年的 GopherChina 大會舉辦前,GoCN 社群組委會都會對外公佈招募講師,歷年來報名的講師都非常的多,大家很想來這個平臺進行技術交流,通過分享一些自己在 Go 運用方面的一些經驗或者是踩過的一些坑,通過這些技術實踐來告訴大家使用 Go 的一些技巧,充分利用 Go 的特性為廣大的 Gopher 帶了更多的技術乾貨以及程式設計技巧。
接下來就來回顧一下 GopherChina 2019 大會的乾貨內容,在兩天的時間裡,GopherChina 2019與會講師一共分享了16個主題,下面是2019 GopherChina 大會嘉賓分享回顧。
大型微服務框架設計實踐
主講人:滴滴出行/R lab高階專家工程師-杜歡
內容概要:
從框架配置->約定->DSL->容器化,引入“作業系統”的概念,表述說現在的服務框架,正越來越向作業系統的方向發展。通過這個分享,基本能對Golang的微服務框架所必須的特性都有很好的瞭解。
如何用Go打造高效能路徑規劃和ETA引擎
主講人:Grab 地圖團隊資深架構師-胡泊
內容概要:
主要描述的是 Grab 地圖團隊中使用Golang做了哪些事情。Grab 在軌跡處理這塊的一些優化點,比如對資料進行壓縮,將資料儲存分離,建立快取層,引入大資料 spark streaming 處理等。後續又展示了路徑規劃和 ETA 的演算法邏輯。
TiDB的Golang實踐
主講人:PingCAP TiDB/tech lead-姚維
內容概要:
首先是介紹了 TiDB 的 SQL處理層的模型結構。隨後聊到了分散式系統的測試,描述了一下 FailPoint 的測試注入。再後面,就說到了 TiDB 是如何使用 Chunk 結構來儲存表資料的。
How to write testable code
主講人:Heptio /資深工程師-Dave
內容概要:
基本上 Dave 的整個 Topic 是在告訴大家如何進行單元測試,如何看測試覆蓋率,測試的重要性,如何才是合理的測試用例。基本上他也是建議使用現在比較流行的陣列測試,一個大陣列中儲存不同的輸入,輸出,然後對這個大陣列迴圈判斷輸入是否能產生期望輸出。
Go業務基礎庫之Error & Context
主講人:bilibili/資深架構師-毛劍
內容概要:
毛老師的主題是從業務框架的角度來說,B站是如何處理 Error 和 Context 的。關於 Error,首先是使用 WithStack 儲存堆疊資訊,以方便查詢根因。並且詳細告訴我們B站的大倉庫是如何處理 error 的規則的。Context 其實算是一個老生常談的話題了,但是毛劍總結了很多實際使用中的最佳實踐,分享內容還是誠意滿滿的。ntext 等都是很好的B站實踐總結。最終總結了下業務基礎庫的思考。
Go同步和併發設計模型
主講人:微博研發中心平臺架構部分/資深架構師-晁嶽攀
內容概要:
從原始碼級別探究 Go 在併發層面的基礎庫實現。跟去年的深入CGO程式設計一個風格,內容非常全面和豐富,有細節有深度。如果想深入 golang 原始碼,一定不可以錯過。主要是做了一下 Golang 中鎖、併發處理、記憶體模型的梳理,每一個板塊都講的很細。
百度App Go語言實戰
主講人:百度APP技術平臺部/資深研發工程師-陳肖楠
內容概要:
首先百度對內部專案都會有一個工程能力評估圖,對程式碼規範、測試、上線等流程都有自己的評估標準。其次介紹了一下百度內部對開發規範,開發工具,程式碼規範的介紹。比較有乾貨的是介紹了一下在實現開發框架 server 遇到的點,比如建立了一個 goroutine 池來控制goroutine的數量。 server 端出現TIME_WAIT過多問題的處理。而後介紹了一下百度的構建體系,如何自建映象等。具體的實現邏輯沒有細想,不過感覺百度內部為了保證 golang 的程式碼交付質量,做了很多工作。最後還介紹了百度的程式碼檢查工具,基本上也是使用 AST 解析程式碼,並和規則匹配來檢查的。
用Golang搭建實時音視訊雲
主講人:iTutorGroup/研發總監-董海冰
內容概要:
golang 在 WebRTC 協議的服務端實現。首先是例行解釋下為何技術選型使用 golang,而後對 WEBRTC 的協議進行了說明,接著大致說了一下他們實現的具體架構,和他們遇到的問題。
比較有印象是他們遇到的問題。他們整個團隊是之前各種語系的人都有,於是出現各種錯誤,比如阻塞 for 迴圈 select 的問題,比如日期格式化的問題,比如依賴庫版本問題。
基於MINIO的物件儲存方案在探探的實踐
主講人:探探/工程師-於樂
內容概要:
用 golang 擼了一個支援多叢集的分散式物件儲存系統。從接到需求,技術選型,技術調研,部署,遇到問題,分析,嘗試,最終解決方案。就好像跟著講師一起從零搭建了一套物件儲存系統,非常精彩。確實大量的小檔案儲存系統的設計和使用是很難的一件事情。
從零開始用GO實現 Lexer & Parser
主講人:英語流利說/Platform Tech Lead-何源
內容概要:
介紹了使用標記語言來代替表單錄入,使用git進行提交管理,並且使用 CI 進行提交測試,解決有一堆做教研的人員需要錄入大量題目,但是他們覺得使用 Web 頁面錄入效率太低,並且一旦修改,沒有版本記錄問題。
高效能高可用的微服務框架TarsGo的騰訊實踐
主講人:騰訊/TARS開源團隊核心成員-陳明傑
內容概要:
講解了一些實用的,在開發 Tars go 過程中他們注意到的點,比如儘量不用反射,儘量使用指標返回資料,如何優化 Timer,使用 sync.pool 來快取臨時物件。這些在實際coding中都是要注意的點。這麼龐大的一個框架,涵蓋服務框架,服務治理,部署運營,排程等集於一身,也只有超級大廠能有此等人才和人力了。
閃電網路-BTC小額支付解決方案
主講人:starcoin/核心工程師-方圓
內容概要:
今年分享和區塊鏈相關的,先簡單介紹了 BTC,還有對於閃電網路進行基本的介紹。介紹基本原理,基本原理是除了你需要了解的BTC這些東西之外,你需要有一個基本的瞭解。接下來是介紹 LND ,這個是閃電網路Go語言的實現,閃電網路本身實現很多種,但是官方選擇用Go語言實現的LND,最後是支付流程,閃電網路到底怎麼跟之前的基本原理結合起來。
Using Go Modules in everyday life
主講人:JetBrains/Developer Advocate-Florin Patan
內容概要:
Florin Patan 語速較 Dave 稍快一點,分享過程中有一位他的臺灣同事進行全程翻譯。首先介紹了下 GoMod。然後就是對 GOLAND 的使用,這個過程讓場下不少人都感嘆:我們平時用的是Goland嗎?
用Go構建高效能資料庫中介軟體
主講人:小米商城系統組/基礎服務高階研發工程師-徐成選
內容概要:
首先簡單介紹 Go 在小米的一個使用情況。資料庫中介軟體 Gaea 的介紹,以及一些 Go 有關的幾個技術點的分享。關於 Go 的 Runtime 的使用情況;再一個 Go 的工具鏈下使用的情況;最後說一下針對中介軟體尤其替換內部的專案,我們是怎麼來做測試的,包括單元測試還有整合測試。
花椒直播基於golang的中臺技術實踐
主講人:花椒直播/技術總監-周洋
內容概要:
討論花椒直播在不同情境下對技術中臺技術棧選型的思考。然後討論的是中臺應該做什麼。在洋總眼中的中臺是以業務高效為原則而高度定製化的。很接地氣的說法,能讓業務好好跑的中臺就是好中臺。而後介紹了他們給業務做的一些中臺服務,gokeeper ,匯流排服務,cron 任務管理服務等。
知乎社群核心業務 Golang 化實踐
主講人:知乎/後端工程師-杜旭
內容概要:
講述的知乎在轉語言重構過程中的一些實踐經驗。講述了整個重構過程也是中規中矩的,建立新服務,然後測試,測試完成了,切流量。最終的重構結果是喜人的,節約了80%的伺服器資源。
各個主題都有自己的特色,這些主題有大到說框架,也有小到說具體的某個包的使用的。這些分享內容都足以讓參會的聽眾能得到足夠多的乾貨,大會剛剛落幕,“Go中國”公眾號就在第一時間分享了本次大會講師PPT,到場的 gopher 們都為GoCN組委會的效率驚歎!
聽完兩天的技術乾貨,Gopher 們都感覺收穫頗多,大會還沒有結束,就有很多參會的 Gopher 分享了自己參會後的感想。很多人在剛接觸 Golang 的時候都是抱著試一試的心態,現在看來,這麼多的公司在實際專案中都用到了 Golang,這足以說明 Go 未來在各個領域有著非常好的發展趨勢。
本次活動的圓滿結束,GoCN 組委會對所有參會者表示衷心的感謝,感謝現場所有的講師、工作人員、展商以及大會志願者的辛苦付出,因為有你們,才會有如此成功的 GopherChina 2019,今年的 GopherChina 大會雖然結束,接下來我們還有全國巡迴的Gopher Meetup,請持續關注 GoCN 官網動態以及“ Go 中國”公眾號,活動相關資訊將第一時間 get 到。
GopherChina 2019大會幹貨非常多!大牛非常多,不僅講師強,聽眾也是臥虎藏龍。
@所有參會人員,
GopherChina 2019北京大會幹貨PPT下載地址:
https://github.com/gopherchina/conference
再次邀請大家在知乎上對本次大會進行了評價:
http://www.zhihu.com/question/321966626