TiKV Committer 聶殿輝:開源不僅僅是開放源代碼,更是一種態度和溝通方式

聶殿輝,TiKV Committer,曾經是一個連續創業者,目前在掌門科技遊戲部門帶一個研發團隊。他還喜歡買手辦,拼高達模型。他很少發朋友圈,幾乎不用手機,自嘲是老年人生活模式,但對於參與社區還是保持着一片熱情。

有夢想,愛折騰

我大學畢業一兩年之後懷着一腔熱血開始參與創業,當時是公司第三位員工。最開始我們做的一個項目想對標國外的 Twitter 和 Facebook,可惜沒過多久微博就出現了,於是我們的項目漸漸退出市場。2013 年開始和另外一個同事參與過衆籌方面的創業,也是由於時機不太好,後來也沒有繼續下去。

技術人員看着內向,其實談到技術就很好聊。壓力比較大的反而是一些相關知識的瘋狂補課。做衆籌創業時項目偏金融,和股權相關,這方面我的知識有點脫節,爲了更好的溝通因此惡補了大量金融領域的知識,這樣才能和對方聊的比較順利。

創業壓力確實很大,精神一直比較緊繃,有一種責任感在肩上。創業的時候不僅僅需要把自己的技術做好,還要去考慮自己做的東西是不是對社會有價值有幫助,同時也希望在這過程中對團隊有成長和幫助,雖然最後創業沒成功,但我對責任的理解更加深刻了。

但如果讓我選擇,我還是會去創業。創業的五年雖然很累但是很開心,有一些夢想和激情在,相信自己做的東西有價值。

所以我看 PingCAP 這樣一個創業公司時,也別有一番感受。首先,我覺得 PingCAP 做開源有一種使命感,是我見過非常徹底的開源。從我知道 TiDB 開始你們就一直在開源方面做各種各樣的嘗試。同時也很重視技術輸出,無論是相關數據庫領域還是更外圍的技術領域,都能看到你們在努力分享傳授知識。

其次還有一個很神奇的點,我在提 PR 的時候感覺 PingCAP 的同學上班時間都不一樣,不同時間點都有人在 Review Code。

玩轉 TiDB 開源社區

對開源的理解

之前工作中就使用過一些小的開源項目。TiKV 是我參與的第一個真正的大型開源項目。

我認爲開源不僅僅是在技術上開放源代碼,更是一個分享的態度、一種溝通方式。之前我會讀別人的源碼,後來看了《大教堂與集市》,我纔開始思考原來開源是這樣的。開源項目和公司內部開發會很不一樣,像 Linux 組織好一羣人,用很好的溝通方式把一件事做好,纔是很有意思的事情。

TiDB 給我感覺很像集市的開發,把很多人聚集在一起,又保證可控的質量。對社區的溝通能力和組織能力是一個很大的考驗。

第一次接觸 TiKV

我的工作要求我對技術涉獵比較廣,因爲怕落伍所以我每年會了解一個開發語言。2018 年正好瞭解到 Rust,後來發現 Rust 確實不錯,想更深入瞭解,所以要找一個項目去入手。後來在 GitHub 上掃到了 TiKV 這個項目,就開始去慢慢了解。

TiKV 是一個很複雜的系統,涉及的東西很多,所以當時想找到一個切入點去參與,剛好那段時間 Coprocessor 在做函數下推,這個模塊相對獨立,對我來說只要瞭解一部分就可以參與 TiKV,很適合入手,issue 的描述和 lable 也很明確,比較好切入。

之前創業做項目更看重功能的完備性、應用性,如果性能有問題可以回頭再修改。但是給 TiKV 提 PR,很多是性能相關。性能在我之前的工作中不是最重要的,但因爲 TiKV 太底層太核心,所以非常壓榨性能,可能本身功能很簡單,但很多都是性能上可以優化的點,這和我之前的工作方式很不一樣。

深度參與社區

在參與 Coprocessor 之前我提過一個 PR,當時是 TiKV 有些依賴要升級版本,我那時對 Rust 還不瞭解,就想看看 TiKV 用了什麼庫,這樣可以很快了解 Rust 生態。

印象中解決的最難的問題應該是 Row Format,這個 PR 牽扯的東西比較多,中間會穿插着一些其他的事情要去做,有很多準備工作,並且需要很好理解整個 TiKV 工作流程,TiDB 上的數據發過來怎麼存,怎麼解碼,都是比較細節的問題。

我對 TiDB 社區的整體印象用一句話概括就是:很專業,又很有人情味。

專業是因爲社區很系統,活動很豐富,感覺 PingCAP 投入了非常大的精力在社區,像 挑戰賽捉蟲競賽,最近也被各種刷屏。我之前掃過你們的博客,信息量非常大。

人情味是最開始看 TiKV Review Guide,Review Guide 裏提到一些規範,比如如果發現提 PR 的人掌握的知識不如你,也需要有一些耐心,讓人覺得很專業又很有耐心。對參與者非常友好, Review 的環節很順滑,對新手來說很容易有一個切入點。

對人情味的感受還來自於一次面基的經歷。

有一天我突然收到 Breezewish( PingCAP 小夥伴)的信息:誒,看你 base 在上海,我也在上海,來線下面基唄?(直男就是這麼直白)

於是我們約在 PingCAP 上海辦公室樓下的咖啡館,Breezewish 給我很詳細的講了 TiKV 的模塊,讓我對 TiKV 瞭解又更多了些。再後來我一點一點寫的函數被 Siddon Tang(PingCAP 首席架構師)發現,他說不要老寫簡單的啦,來寫寫難一些的唄。受此激勵,慢慢開始上手做了一些階梯的任務,比如 Row Format。後來也參與社區 性能挑戰賽易用性挑戰賽

從 Contributor 到 Reviewer 的進階還是蠻輕鬆的,做的東西有認同感,到了 Committer 之後我會有一些壓力,因爲這個角色對項目的理解需要更深入,我也希望自己之後可以花更多時間去了解 TiKV。參與的越多,越覺得代碼方面不是問題,對項目的整體把握纔是最考驗人的。

趣味問答

喜歡橫屏還是豎屏? 豎屏

Emac 還是 Vim? Vim

mac 還是 Linux?Linux

Firefox 還是 Chrome?Chrome,就是太吃內存了

喜歡用什麼鍵盤? HHKB

鼠標還是觸控? 鼠標

甜豆花還是鹹豆花? 作爲一個東北人當然吃鹹豆花!

最後回答一下莊天翼在 上一個採訪 中的提問:你最喜歡吃什麼菜,平時做菜嗎?

我不喜歡吃肉,從記事開始就不太吃葷菜了,對吃的沒啥慾望,平時也不做菜。老婆是個荒廢廚藝的廚師,之前喜歡做菜,但在遇到我之後覺得做菜沒有成就感了。(🤦‍♀🤦‍♂️)

歡迎登錄 PingCAP 官方網站查看技術文檔和博客:https://pingcap.com

若對 TiDB 的使用有所疑問,也可以登錄 Asktug.com 搜索或發帖交流~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章