本文字數:8888字git
閱讀時間:23分鐘github
序面試
先自我介紹一下,筆名鐵頭喬,2016年西安交大計算機系本科畢業以後,來到清華大學軟件學院直博,師從王建民教授,大師兄黃向東,今年順利畢業。回首往事,沒有虛度年華,也不算碌碌無爲,主要在作一款時序數據庫:Apache IoTDB。算法
五年時間,見證了 IoTDB 從發佈第一個版本,到應用於數十家企業;從公開源代碼,到成爲 Apache 基金會頂級項目;從只有實驗室同窗參與,到造成百餘貢獻者的開源社區。博士階段最開心的不是論文中稿,而是作的系統可以運行在祖國的大地上。數據庫
畢業的事情忙完以後,便開始準備這篇文章了,總結了一下博士階段的經歷和教訓,歷時兩週終於完成,獻給你們。編程
前言微信
讀博第一階段數據結構
讀博第二階段架構
後記運維
前言
爲何讀博?
選擇讀博的都是勇士,我讀博的理由有三點:
(1)科研初體驗還不錯:15年在中科院自動化所實習,過了兩週讀論文寫代碼的生活,這種生活簡單純粹,像是回到了高三。
(2)簡單的執念:清華是我從小的夢想,以爲在清華多待兩年,就能多跟老師學點知識。
(3)想了解本身:本科常常據說讀博壓力大,想看看本身在這個過程當中會有什麼想法,作出什麼選擇。
讀什麼方向?
作系統。15年在西安神州數碼實習,7人一組,兩週作一個銀行貸款系統,也是第一次領略到作系統的魅力,當把系統從用戶到後臺每一步都調通的時候,就像打通了任督二脈,這種爽勁也支撐我演示前一晚寫代碼寫到2點多。
做爲組長,個人職責就是把流程跑通,而後你們一塊兒完善業務邏輯。演示當天,還有半個小時展現,系統又出幺蛾子,因而繼續調,終於在演示以前搞定,順利經過。
此次經歷讓我對作系統產生了濃厚的興趣,並且很期待有一個緊密的團隊,你們一塊兒寫代碼,就像一塊兒扛過槍上戰場。那個時候對系統的感受就是構建一個虛擬國家,定義各類規則,讓各個部門協同運轉起來。
可是同時,我也意識到,這種系統第一次作很新鮮,若是總作相似技術棧的系統,也會感到無聊。作系統不是單純的堆功能、拼廣度,而要追求深度。所以,讀研的方向選擇了作系統,但願可以學一學大型系統裏的知識和優化方法。
初見導師
讀研時候有一次聽劉璘老師說,讀博就像是選擇一種婚姻,一生就一次,也不會有心境再來一次。這也說明了選擇導師的重要性。結合自身的經歷,我以爲選導師的原則就是:你想成爲像導師同樣的人。
15年與導師第一次見面,此次見面給我留下的最深入的印象就是:王老師的精神狀態比不少20多歲的年輕人還要好。
爲何這麼說呢,以我本科爲例,大四常常和舍友玩遊戲到一兩點,早上沒課就睡到十一點。上午無精打彩,下午逐漸恢復正常,晚上賊精神。到了暑假寒假,做息就更混亂了,閒的難受。後來也意識到這種生活沒什麼意思,我須要一些長遠的目標,來保持良好的精神狀態。
保研面試
在保研面試時,我說本身的夢想就是作系統,當架構師。
因而,一個鬥志昂揚的23歲年輕人,就這樣經過了面試、走進了讀博生活。
讀博第一階段
本科畢設
博士的生活要從2016年3月來清華作畢設開始算,那個時候你們正在開發一種叫作 TsFile(Time series File) 的文件格式,主要用來存儲時間序列數據。
個人第一個任務就是實現 Spark 和 TsFile 的鏈接器。對於一個本科只寫過一些數據結構與算法,github、maven 都沒怎麼用過的人來講,從哪下手都不知道,只能在 github 上找相似的項目,而後看他們的源碼。
之前自認爲寫代碼不發愁,不少時候寫一遍代碼,沒有bug直接能跑。那時候才意識到僅會給輸入輸出,寫個算法是不夠的。不少時候不是哪一個算法寫不出來,而是不知道在哪寫這個算法。而在大型項目中,常常須要嘗試新技術,走通一條技術路線,顯然我在這方面缺少經驗。
進度緩慢,因而開始堆時間,天天早上8點多到實驗室,晚上10點多出實驗室。也所以沒怎麼鍛鍊身體。碰巧這時候又遇到了個人中國好舍友,孫林。他買了各類各樣的零食,可是他不怎麼吃,都給我吃了,因而一直 62.5Kg 的我,這時候到了 73Kg。
因而我逐層分析緣由,從本科沒重視實踐,只學了書本知識,到高考沒考好,再到初中常常玩電腦。把當時的困難歸咎於過去的經歷。甚至在想,若是當初沒來清華,可能就不會遇到這些困難。
後來想通了,悟已往之不諫,知來者之可追。過去的事情已經沒法改變,不管我作何選擇,總會在前進的道路上遇到困難,而這時候只能硬着頭上。
當你真心想作一件事時,全世界都會來幫你。當時有三個復旦的同窗也來咱們實驗室,嘉燁、仔仔和齊童,其中嘉燁作的工做和我相關,因而我有了能夠請教的人,在他的幫助下,我又開始有了進展。
此外,有時候遇到問題,我開始在其餘開源項目裏提問,有個國外小哥常常及時幫我解答,有時候甚至直接給我丟過來一段代碼,這也是第一次接觸開源。
因而,項目逐漸步入正軌。還好大四下學期提早來適應了一下實驗室生活,否則博一又要上課,又要作項目,估計忙不過來。因此,若是有機會提早進入下一階段,就要主動。
團隊成型
2016年秋天,IoTDB 初始團隊成立。
(1)東哥:在我逐步適應項目節奏時,那個男人回來了,他就是從遙遠的澳大利亞留學歸國的東哥。做爲咱們組的頭,統籌全局。
在科研方面,帶我一篇篇讀論文,每篇論文讀完以後討論半個多小時,也讓我這個科研小白逐漸學會了怎麼讀論文。
項目方面,他須要作 IoTDB 的規劃和項目實施,常常熬夜。因此我就儘可能幫他分擔一些工做。
(2)宗姐姐:實驗室的行政老師,和咱們打成一片,在生活上對咱們很是關照,思想上排憂解難。
鐵頭喬也是宗姐姐叫出來的,我以爲很是適合本身,哈哈哈。
(3)大哥:實驗室的山東大漢,比我高一級,他平時開發常常涉及到位運算,可是從他嘴裏說出來的位都成了「味兒」,你們能夠感覺一下,「這一味兒與上那一味兒」。大哥是海底撈黑海會員,因而有時候也不可避免地成爲了大鴿。
我常常會找大哥要接口,咱們的經典對話就是,「大哥,這個接口能不能支持?」,大哥回:「你問我支持不支持,那確定要支持啊!」
(4)康博:比我高一級的博士師兄,主要作寫入和存儲引擎,康博是典型的很負責任的清華學子。
在咱們研一準備考試時候,又有新任務,康博說了一句讓我至今印象深入的話:「交給咱們,讓他們去複習考試吧」。
(5)馨逸:咱們級惟一的女生。也是咱們實驗室惟一的產品經理,在馨逸的努力下,咱們有了初版高質量用戶手冊和Apache IoTDB沿用至今的logo圖標。
馨逸買了零食以後,她的桌子放不下,就放在做爲同桌的個人桌子裏了,就被我吃吃吃。
(6)小飛飛:實驗室的另外一位山東小漢,是大哥的接班人,也是咱們天天的快樂源泉。
有一次寫代碼寫的比較晚,一直在優化一個數據結構 DynamicOneColumn(DOC),我和小飛飛騎車回宿舍的時候,小飛飛就快樂地唱了起來:「DOC~ DOC~ 我是一個DOC~」。
(7)老年人:康博的接班人,他的愛好和老年人一毛同樣。性格也比較穩,被東哥認定爲磐石。
當時作畢設時候,咱們去吃快餐炸雞,老年人說:「來個冰激凌,吃點甜的,天天過的太苦了。」 老年人的口頭禪:「這個鬼東西」。
(8)徐總:清本畢業,自成一派,負責SQL解析和RPC,平時負責審PR,被東哥認定爲利刃,把好最後一道關。
徐總很是自律,歷來不吃外賣,實驗室集體加班時候也不吃外賣,只吃食堂,風雨無阻。
橫空出世
咱們每月會進行 IoTDB 的版本發佈。第一個版本發佈是 2017 年4月1日愚人節,咱們發佈了 0.1.0 版本,也標誌着一個產品的誕生。
這時候的 IoTDB,在我看來就像是一個剛出世的孩子,沒法預料它會發展成什麼樣子,又會對個人人生軌跡產生怎樣的影響。
公衆號的前身
2017年夏天考完最後一科,正好去作了一個膝蓋的手術,作完手術後只能在家作康復訓練,而且註冊了一個公衆號 「喬村兒」,也就是這個公衆號的前身,主要用來記錄和分享生活,也收穫了不少:
(1)與家人分享平常生活。可能男生都或多或少跟家人交流很少,經過寫做的方式,讓家人感覺到個人關心。雖然不能常回家陪伴,可是可讓個人文字陪伴他們。很開心的是,有一次姐姐說,爺爺在給奶奶讀手機上的東西,一看是我寫的文章。
(2)與朋友緊密聯繫。許久不見的朋友,讀到個人文章以後,也來分享本身的生活。也讓本身時刻意識到,生活有千百種過法,我只是其中一種,就讓咱們在各自的生活中加油吧!
(3)在更廣闊的的天地尋找本身的位置(來源於阿德勒心理學)。生活不能所有被工做和科研佔據,當工做的小圈子遇到問題,須要有更廣闊的的圈子接納本身。而公衆號就是一個更廣闊的共同體。
(4)鍛鍊文字表達能力。我歷來不喜歡寫做文,可是寫這些還能夠。寫得多了,對於寫做也就不發愁了,也算克服了一項缺點。
青海西寧的日子
2017年10月左右重返學校後,我和學弟江天(個人天)被派往青海西寧,和崑崙數據的團隊一塊兒參與青海新能源大數據平臺建設,應該是國內第一個風電物聯網平臺。
咱們的目標有兩個,一個是用國外產品接住線上數據,第二就是驗證 IoTDB。不得不說,這一次近距離體會到了和國外技術的差距。也從此次實踐中,咱們開始重視亂序數據的處理,而且完善本身的產品。
出差過程當中也結識了一幫好朋友,個人天話很少,代碼寫得賊6,平時比較宅,晚上下班卻乖乖被我拉出去,在冬天的西寧吹着冷風溜達。
還有崑崙數據的一幫兄弟,統籌帷幄的蔣總,數據平臺總負責人鵬哥,負責數據接入的景帥,負責查詢的一鳴,駐場的陳明、遠程支援的振興哥,還有上飛機前一分鐘還坐地上抱着電腦運維的遠哥。
那時候天天中午你們會去一個小飯館吃碗麪,晚上就找大飯店吃一頓好的,涮羊肉、涮牛肉、烤魚,附近的飯店基本都被咱們吃遍了。週末不忙的時候你們還會一塊兒爬個山,在西寧的日子仍是很不錯的。
讀博之路如此艱辛我始料未及
這是2017年龜給我分享的一句話,我以爲很是貼切那時候的我。我高中最差的科目就是語文,大學好不容易不用學語文了,可把我高興壞了。讀了博發現要發英文論文才能畢業,我就意識到了,這將是我人生中最艱難的一段時期。
儘管項目開始有了轉機,可是論文的壓力又逐漸增大。此時,機器學習方向逐漸火熱。相比之下,數據庫系統方向不是那麼好發論文。這時候有兩個選擇擺在我面前,是去作機器學習,仍是繼續數據庫系統方向。
當這個問題從腦子裏冒出來的時候,其實就已經有了答案:仍是作系統。
讀博並非爲了畢業的那個時刻,而是爲了過程當中的每一天,每一件事。當下定決心在一條路走到黑的時候,就沒有那麼多時間糾結和彷徨了,也就進入了博士第二階段。
讀博第二階段
積極的生活狀態
2018年過了幾個月很是規律的生活。
7點30:起牀
7點50:去食堂點一碗小米粥和兩個雞蛋,後來打飯阿姨看到我直接給我固定套餐。
8點30-12點:幹活
12點-12點30:去離實驗室最近的食堂吃飯
12點30-13點30:午休
13點30-17點:幹活
17點-18點30:去操場鍛鍊,吃飯
18點30-22點:幹活
回顧整個博士階段,這應該是我最喜歡的生活節奏。若是說找到健康的生活節奏是安裝了一臺高級發動機,那接下來的事情就是找到前進的方向。
走向開源
2018年夏天,王老師作了一個開創性的決定,要把 IoTDB 捐給 Apache 基金會,從內部項目轉爲開源項目。緣由有幾項:
(1)當時的開源大數據軟件大可能是國外貢獻的,國內大可能是在使用,咱們應該爲中國的開源軟件作出本身的貢獻。
(2)學校裏不少項目隨着一波學生畢業也就停掉了。而系統軟件是須要五年、十年的投入,而且須要衆多優秀的貢獻者參與,造成良好的社區才能長久發展。
就這樣,咱們提交了申請書,通過投票進入了 Apache ,成爲 Apache 惟一的物聯網時序數據庫項目。
全部進入 Apache 的項目都要先進入孵化器,完成相應的任務(建設社區)後,才能畢業成爲頂級項目。而沒法畢業的就會退休,退出 Apache 基金會。
在進入 Apache 後的一段時間,咱們把項目代碼從清華的倉庫遷移到了 Apache 的倉庫。而且按照 Apache 的要求作了不少事務性工做。同時,在項目導師的指導下,咱們儘可能把討論放到了郵件列表中(這是一件很痛苦的事情)。
儘管咱們是 Apache 開源項目,可是並不知道怎麼建設開源社區。好像進入 Apache 開源對咱們來講,只是增長了一些繁瑣的工做。github star 也並很少,更不知道怎麼吸引社區開發者和用戶。在幻想一進入 Apache 以後就能擁有活躍的社區開發者和用戶的咱們,被潑了一盆冷水。
第一道坎:上海地鐵
2019年5月30號要上線上海地鐵,須要寫入延遲低於200ms。線上系統是用的 KairosDB,咱們首先須要適配 KairosDB 接口,因而從2月開始,學弟劉睿帶一個實習生作了 IoTDB 兼容 KairosDB 的 Rest 接口:IKR(起名就是這麼直接),到5月基本完成。
通過初步測試,咱們的寫入延遲有時候會達到幾十秒,平均延遲也不知足要求。說實話,這個時候我對存儲引擎並不熟悉,看了看代碼只以爲很複雜。可是我也知道,這是 IoTDB 的一道坎,邁過去了就一馬平川。
這時候,正值女友畢業旅行,我跟她說:「你去吧,等你回來以前我確定把系統搞好!」
送走了女友,我拉上了個人天和天安兩大主力學弟,在東哥初步趟了路以後,開始重寫存儲引擎。
已經畢業的大哥據說咱們的計劃以後,說大家不要太激進。確實,我沒什麼把握,可是仍是想拼一把。借用 stormzhang 的一句話,就是幹!
就這樣,三我的結對編程,天天早上9點到晚上11點,花了一週時間,基本寫好了一版,開始測試。測試能看到初步結果須要半個小時,這半個小時就像等出高考成績同樣忐忑。而第一次的測試結果也沒有讓咱們失望,果真不穩定,穩定才見鬼了。可是不怕,咱們還有一週,帶週末的那種。
找問題,完善方案,繼續修改,提交測試。這個過程持續到了第二週的週六。週六下午組會東哥須要彙報一週的工做,咱們週六上午10點出了一波結果,發現還有問題,東哥說:「我心臟難受。。。」
通過了一週的磨合,我隱約感受,此次改完估計就穩了。11點開始提交測試,測到下午1點30,看寫入延遲監控,系統一切正常,平均延遲25ms,起飛!
後續芮蕾和蘇月適配完查詢引擎,成功上線上海地鐵,替換了以前的 9 臺 KairosDB 集羣。
同級碩士畢業
我這我的常常後知後覺,在我忙完上海地鐵項目,才發現同級的碩士朋友們已經離校了(尤爲是拉開抽屜,發現沒有零食了...)。對於博士生來講,這是一個標誌性的時刻。曾經用在東哥身上的 「幹走了一屆又一屆碩士」,我也可以體會到是什麼感受了。
做爲還在學校的咱們,能作的惟有堅持,不讓你們的努力白費,但願他們以後在和別人聊天,聽到 IoTDB 在某個場景裏被用起來的時候,可以開心地和別人說:「我也是 IoTDB 的貢獻者」。
借用《1408幻影兇間》結尾的臺詞:We are here to do the job, and we don't rattle(咱們是爲了這個故事而來,咱們要不慌不忙)。
從哪裏入手呢?好的開源項目都有活躍的社區,所以,個人想法就是建設開源社區。社區是一幫有共同目的的人,接下來就是怎麼找到這些人。
盤點了一下手上的資源,咱們能夠在一些大會上進行宣傳,也可以經過實驗室的一些項目打磨產品,可是這還不夠。咱們須要更多的用戶、貢獻者和更豐富的測試場景。
實驗室沒有專門作社區運營的同窗,也沒有打廣告的預算,只能本身想辦法了。
社區建設
「喬村兒」斷更的時候,我並無中止寫做,而是新開了一個技術公衆號「數據庫漫遊指南」。剛開始並無推廣 IoTDB,主要緣由是那時候還不穩定。可是,在經歷了上海地鐵的洗禮以後,我對 IoTDB 和本身的運維能力已經有了的信心,因而開始在公衆號上進行宣傳,後來直接改爲了 Apache IoTDB。
除了公衆號,也在CSDN、OSChina上寫文章,包括版本發佈、使用教程、常見問題、運維經驗等,前先後後估計寫了上百篇。此外,組建了微信和QQ用戶羣,而且把本身的微信放到了公衆號上,不少加過來的用戶跟我說的第一句話就是:「看了你的文章,頗有幫助,但願進羣」,這也是對個人激勵。
此外,還有一些用戶加好友的備註是「IoTDB愛好者」,這應該是每一個軟件開發者最開心的時刻了。固然,也不乏扔臭雞蛋的,而咱們須要作的就是及時改進,一往無前。
我曾經想過要不要弄個機器人加羣,後來想一想仍是算了,畢竟不是全部人都習慣在羣裏說話,直接加到我,可以讓用戶和開發者第一時間找到我,離社區更近一些。
找到第一個貢獻者
開源社區的發展是從找到第一個社區貢獻者開始。對於我來講,就是劉大偉。
2019年末大偉哥進入咱們社區,他比我大兩歲,是四維智聯的架構師,也是個人老鄉。正好年末升級查詢引擎,就拉上他一塊兒討論設計方案,並且初步實現就交給了大偉哥。
查詢引擎涉及的地方很是多,他初版改完以後,上百個測試類不經過,擱誰都頭大。原本我預想的是等我忙完,咱們就一塊兒來修測試,沒想到他一我的把測試一點一點都調好了,那段時間他常常搞到晚上兩三點。實話說,這股精神我很是佩服。
除了社區的活動,咱們也會常常約飯,而且一塊兒參加其餘開源社區的活動。大偉哥憑藉優秀的人格魅力,已經成爲社區的明星人物,如今也是社區的 PMC。
如何參與開源社區?我嘗試從大偉哥的經歷總結一下:貢獻**、承認、熱愛**。這三個詞每個都不是單向的,而是社區和貢獻者之間的雙向互動。
第一個開源用戶
2020年疫情爆發,開始在家辦公,疫情期間咱們主要作了一件事:和大唐先一的張景一塊兒,讓 IoTDB 在湖南幾個電廠上線。
最開始景哥跟我交流,說:「5月有個項目準備上線 IoTDB,能不能支持一下」。我說:「只要大家決定用,咱們就全力支持。」
正值重構完查詢引擎,bug 比較多,時不時就給我反饋測試問題,而咱們就經過微信溝通,一步步排查。
就這樣,過了一段時間解 bug 的日子,每次我自認爲沒啥 bug 了,就跟女友說:「這確定是最後一個 bug。」 而後立刻就來打臉,她就在旁邊樂。
有的bug我自感一天搞不定,沒思路,就拉上田原、個人天、勞模昊男四堂會審。事實證實,及時求助他人,確實可以加速問題的解決。雖然過程比較艱難,磨合了三四個月,最後終於成功上線。
我對用戶的態度就是大哥的那句話:「你問我支持不支持,那確定要支持啊!」
開源社區
在參與開源項目的日子裏,也接觸到了很多中國的開源人物。包括咱們項目的姜寧導師;開源佈道師李建盛老師;在家脫產寫了一年代碼的APISIX的溫銘總;Sharding Sphere 的亮哥和娟神;海豚調度的東哥;Pulsar的翟哥、示說網的程總等等。
關於社區建設,我時不時會想,若是有我的可以全職宣傳就行了,可是 Apache APISIX 的溫總的一句話改變了個人想法:「社區建設這麼重要的事,固然要本身上了。」 一件讓 CEO 親自上陣的事情,值得咱們認真對待。
咱們的開源社區也在不斷壯大,如今已經有122位貢獻者了。其中不只有戰隊,如東方國信的超哥、厚亮、海媚、豔虹;阿里的金竹老師團隊;雲智慧的紅閃;用友的永偉、瑞傑;華爲的秉華、超哥、一夫、魯銘。也有如宗翰、魏小涵、宇翔、劉煜、亞東、佳俊等單兵聯盟。此外,也有非技術同窗的加入,如禹任、李琳、泰丞等等,你們一塊兒組織活動,編輯公衆號文章。
鐵打的實驗室流水的兵,實驗室的隊伍也在不斷融入新鮮血液,咱們的團隊也在壯大,我也有了本身的小弟,田原、書記澤嵩、老中醫愷豐、愈園、祥威、新宇、凌哲、Steve宇榮、旭鑫。在學校的好處就是可以接觸年輕人的新思惟,心態永遠年輕。
收穫
我的收穫:2020年,學院獎學金的評審規則進行了修改,增長了開源貢獻。這也標誌着,不只僅發論文可以受到學院的承認,作系統、作軟件的同窗也可以受到承認。對於咱們實驗室這些作系統的同窗來講,無疑是一個好消息。在學生時代的最後一年,我也有幸得到了國家獎學金和清華軟件獎。
產品方面:不徹底統計,IoTDB 已經有數十家用戶,部署的實例有數百個,在多個場景中實現了對 InfluxDB 等國外產品的替代,實現了工業軟件的國產化。
社區方面:隨着社區的成長,每一個參與社區的人都會共享社區發展的成果,近期最直接的例子就是招聘 IoTDB 人才的崗位愈來愈多。能夠說,社區是一個爲你們創造機會的平臺,我也但願可以讓參與 IoTDB 的朋友們有所回報,不只是精神方面,還有物質方面。
畢業
不得不說,博士畢業都要脫層皮,預答辯、畢業論文、格式審查、盲審、學位答辯,每一個環節都有可能掛掉,慶幸的是在朋友們的幫助和鼓勵下,都順利經過,也深入感覺到了開源對於個人影響。畢業答辯時,評委老師說了一句話:作系統不容易,尤爲是作生產級的系統。
若是說淮海戰役是人民羣衆用小車推出來的,那個人博士之路則是學校和開源社區共同鋪就的。
畢業答辯不少素材和場景都來源於社區,感謝中車的曉晨哥、大唐的張景、瑞恩的李總、嘉信的萬總、紹興的發哥、拓維的斌哥、華哥、鶴爺、平哥、天遠的翟哥。感謝全部 IoTDB 的用戶、貢獻者和幫助過個人朋友們。
五年的博士生涯即將結束,但對於數據庫系統軟件卻剛剛起步,我會繼續在 Apache IoTDB 社區發光發熱,和社區的朋友們一塊兒打造世界級的時序數據庫產品。
後記
總結
總結一下經驗教訓:
(1)在團隊中,作一個許三多同樣的人,利人就是最大的利己。
(2)時常反思,找到緣由後不糾結,想如何解決問題,而且避免再次掉坑。
(3)堅持長期主義,多閱讀、多分享。
(4)堅持鍛鍊,爲祖國健康工做50年。
(5)建設開源社區沒有捷徑,惟有付出真心。
一句話歸納:找到熱愛的事業,用創業的態度去對待。
關於本公衆號
我的公衆號《鐵頭喬》從新開張,本號有留言功能,會長期經營,分享生活感悟、讀書筆記、研究生生活、時序數據庫知識,歡迎你們關注轉發。
本文分享自微信公衆號 - IoTDB漫遊指南(Apache-IoTDB)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。