歡迎光臨
每天分享高質量文章

Gopher China 2019 講師專訪-滴滴出行/R lab 高階專家工程師杜歡

第五屆 Gopher China 大會將於2019年4月26日-4月28日在北京市海澱區朗麗茲西山花園酒店舉辦,Gopher China 大會目前是國內最大規模,最專業的 Go 語言線下技術交流大會。大會聚集了全國各地的 Gopher 一起進行 Go 語言的學習與交流。透過國內外 Go 語言屆的大神給大家帶來技術的分享,實時瞭解 Go 的動態、應用場景以及技術實踐的細節等等。

為方便我們的 Gopher 朋友們在大會前也能 get 到大神們在 Go 方面的技術理念,會前我們將對本次大會所有的講師一一做專訪,下麵是來自滴滴出行/R lab 高階專家工程師杜歡的專訪。

 

1、簡單介紹下自己和您現在的工作

 

大家好,我是杜歡,來自滴滴出行。我加入滴滴已經將近四年,從一開始就在公司內積極參與推廣 Go 相關技術棧併為公司和部門貢獻了不少 Go 程式碼。我從 2011 年就開始關註和使用 Go,對這個技術的發展歷程和內部實現原理比較瞭解,平時也會寫一些開源專案(https://github.com/huandu),不少都跟 Go 相關。我現在就職於滴滴出行的 R lab,這是一個專註於創新業務的部門,我在其中負責即時配送技術和 R lab 的基礎技術架構與穩定性建設。

2、回憶一下與 Golang 的淵源。和 Go 結緣是什麼時候?用 Go 語言實現的第一個專案是什麼?運用 Go 語言截止到目前,對它最深刻的印象是什麼?

截至目前,我對 Go 印象最深的是相對低的入門和維護成本。透過非常簡單的培訓、使用非常精煉的程式碼規範和合適的開發框架,我們可以讓其他語言背景的開發者快速轉成 Go 開發者,並且能寫出可讀、高效和穩定的業務程式碼,這相對其他語言來說是一個非常大的競爭優勢,我們可以快速打造一支使用 Go 技術棧的有戰鬥力的團隊。

3、2009年誕生至今,Go語言基本統治了整個雲端計算領域,作為最專業的Go語言專家,您認為這是由於它的哪些優雅的特性?Golang未來還會有什麼樣的改進和突破?Go和其他語言相比最明顯的優勢是什麼?

我覺得“統治”還算不上吧,Java 在各方面還是挺有優勢的,不過雲端計算確實有不少細分領域上都在大量使用 Go,比如 docker 生態中的各種工具鏈。

 

Go 作為一個後起之秀能做到這些,我覺得是因為它擁有許多恰到好處的功能。首先,Go 作為一種系統語言,可以直接操作記憶體和呼叫作業系統函式,甚至可以為特定 CPU 編寫彙編,這讓它能夠成為新時代的 C,侵入到 Java 和各種動態語言觸碰不到的領域。其次,Go 擁有非常簡單易懂的語法,熟悉 Java、Python、Javascript、PHP 等語言的開發者能快速上手,不會覺得陌生,這個特性讓 Go 快速獲得了很多使用者,相比同期出現的 Rust、Swift、Nim 等語言更容易學習理解。最後,Go 也非常幸運的抓住了雲端計算這個風口,它所針對的多核、高併發、低延時、虛擬化等場景恰好是近些年來發展最快的方向,填補了很多更成熟的程式語言在這些方面的短板。

 

Go 未來還會繼續在低延時 GC、泛型、依賴管理等方面發生重大變化,並不斷完善內建的基礎庫功能,相信後面它會在保持簡潔的前提下變得更強大。我個人則非常看好針對 Go 的各種程式碼生成工具的未來,Go 嚴謹而簡單的語法可以讓它輕易被工具所理解,使用一些合適的工具鏈就能讓 Go 業務程式碼用簡單好讀的程式碼寫出複雜健壯的程式。

4、您是否有關註往屆 Gopher China 大會,對往屆 Gopher China 大會的風格以及內容的印象是怎樣的?希望這屆 Gopher 大會加入什麼新鮮元素?

以前並沒有機會親身參與 Gopher China,這是我的第一次。我看過去年在上海的大會分享,感覺有幾個分享非常扎實給力,比如 CGO 的那個主題。

 

對於這次大會,我希望能夠增加一些 Go 方向上大趨勢的介紹和討論,我看到議程第二天有一個《Go 的未來》座談,很期待這個環節可以給我一些啟發。

 

5、對於一些即將畢業的,特別是對自己未來就業一片迷茫的 gopher,在他們未來的求職道路上有什麼建議?

首先要對自己的能力有信心,如果在學校已經學習了 Go 相關技術棧的知識,並有一定的實踐經驗,這對於求職來說已經是一個非常硬的敲門磚了,非常有競爭力。另外,公司對於應屆畢業生的技術深度和廣度要求並不高,最關鍵的是技術基礎,包括各種計算機基礎、語言、基本的軟體設計樣式、網路程式設計等方面,建議 Gopher 不要僅僅實踐 Go,也要多關註一些基礎內容,會對自己的現在和將來都很有幫助。最後,祝大家求職順利。

6、現在很多企業專案都在準備轉Go,對於這些專案的負責人有沒有建議和經驗分享?

Go 語言上手較快,比較適合從零到一的業務大量使用,當前已經有不少開源庫改寫了微服務架構中用到的方方面面功能,已經可以在生產環境中使用。在企業中使用 Go 也有不少值得註意的坑,最大的一個是開源庫質量比較參差不齊,建議設定專人來進行各種庫的選型和程式碼梳理,確保企業對這些庫的實現有充分的理解,並有能力自行解決裡面的問題。我在實踐過程中就遇到了好幾個知名庫的 bug,提交了 issue 沒人回覆,自己找到問題修複後提交了 PR 也沒有最終合併到 master,最終不得不自己在公司內維護一個 fork 版本。

7、百忙之中,是什麼原因促使您蒞臨本次大會?

這次能代表滴滴參加 Gopher China 大會挺榮幸的,說起來真的有些意外,因為滴滴為了能給大家帶來一次有價值的分享還進行了內部推薦,我最開始只是抱著試一試的態度報名參加了這個活動,沒想到最後被推舉出來,現在倍感壓力,希望所分享的內容可以給大家帶來一些收穫。歡迎沒有到現場的 Gopher 朋友關註 Gopher China 相關網站資訊,及時查收會議中分享的各種乾貨,相信一定會對大家帶來很多啟發,下次就不會不捨得花錢來看了 =^_^=

8、選擇一位 Go 語言大神作簡單評價,目前和您在技術上交流最多的Go 語言大神是誰?

 

和我交流最多的是滴滴出行的陶文(https://github.com/taowen),他對各種技術都瞭如指掌,在 Go 技術棧方面也相當深入,在公司內實現了相當多基礎庫,業餘時間也實現了很多讓我很有啟發的 Go 語言庫,比如 Modern Go Programming,plz(https://github.com/v2pro/plz)、json-iterator/go (https://github.com/json-iterator/go 等。

9、對於這次大會上您分享的主題簡單介紹一下

我這次分享的題目是《大型微服務框架設計實踐》,這是個很大的題目,也是我在滴滴內部很喜歡跟大家聊的話題。大型微服務框架和一般微服務框架的設計與實現的關註點並不一樣,如果把微服務當作作業系統上的可執行程式來看,那麼一般微服務框架關註的是怎麼讓程式開發變得簡單快速,會專註於提升單個程式的開發體驗,而大型微服務框架則相當於作業系統本身,需要考慮如何為各種異構程式設計一個既開放又受控的環境,可謂框架的框架。實現這樣的框架並不太難,只是在設計層面上需要做很多的斟酌,並且突破一些關鍵技術點,在我的分享中會提到這些內容,希望能對大家有所幫助。

Gopher China 2019 最新資訊

志願者招募:

因 Gopher China 2019 大會報名人數超出預期,現還需招募大會現場服務執行志願者3名,本次招募只限北京地區

地區:僅限北京地區      人數:3人

工作時段:

4月26日下午+4月27日上午+4月28日下午,需要1名,(不會錯過27號下午和28號上午的演講)。

4月27日全天+4月28日上午,需要2名,(在沒有工作安排的情況下聽27號和28號上午演講,不會錯過28號下午的演講)。

如果你是北京地區在校學生,也是Go語言愛好者,可透過申請志願服務免費獲得  Gopher China 2019 大會參會資格。

識別下方二維碼即可報名志願者:

志願者福利:

a. 免費參會資格,2天干貨不得不 get 的新技能!

b. Gopher China 2019 限量版T恤一件,買不到的T恤你攢了幾件?

c. 與國內外Go語言界的技術大牛近距離接觸,或高冷或萌心的技術大牛一網打盡〜

d. 有機會獲得各廠商的展臺禮品,展臺上的市場小姐姐都是人美嘴甜心地好〜

贊(0)

分享創造快樂