在2021年527螞蟻技術日上,螞蟻內源社區舉辦了內源專場,在專場上玉伯給大家分享了《開源有帶給我什么》,以下為演講的圖文整理。
我的開源之路
我從2009年到2018年,接近十年時間,一直在做開源的一些事情,在這個過程中收獲了很多東西。今天就和大家分享一下,回顧這十年,我的一些收獲和感觸。
我最開始注冊GitHub是09年的夏天,再之前,是在Google Code上面有一些個人項目。這張圖是10年7、8月之后,開始在GitHub上瘋狂提交代碼的時候,那時候整天沉浸在代碼里面,現在回想起來還是很開心的。
這些年做過一些開源項目,最開始是模塊加載器Sea.js,在淘寶時期和別人一起開發了Kissy項目,來支付寶的早期做過一個不太成功的項目Arale,做了大概兩年覺得這個方面是不對的,馬上切換開始去做Ant Design,再后來又開啟了AntV數據可視化開源項目。當然,體驗技術部還有很多做的不錯的開源項目,比如egg.js和Chair,不過這些我參與不多。
我的收獲之一:高效工作
這些年我一直在思考,我在參與開源的過程中真正的收獲是什么。
我總結了三點。其中第一個就是養成了高效工作的習慣。
高效工作里面包括幾個小點,首先是文檔優先。
在文檔方面我印象最深的一件事,就是在2010年左右參與到CommonJS開放組織里面,這是一個虛擬的組織,最主要的產出就是文檔,我在里面感受到了業界這些頂尖的專家對于文檔的重視。
當時,大家通過一個wiki系統以及Google Group論壇在一起,討論什么叫模塊,以及擬定它的1.0、1.1等版本的規范細則,每個規范中都有很多分支,圍繞里面的很多細節,大家吵的不可開交。正是通過大家的努力產出的這些規范文檔,對整個行業都起到很大的幫助。
經常參與開源的同學可能發現,在文檔優先這方面,老外比我們重視太多了,有點項目可能還只是個空殼,但里面已經討論很多了,把很多想法思路、怎么做、可能遇到什么坑這些問題,通過文檔和討論,想的比較清楚了才動手去寫代碼,這點和國內是很不一樣的。
當你真的深度參與開源,并且以文檔先行的方式去實踐的話,你的收獲會非常之大。
第二點就是,在開源社區非常強調異步協作。無論是GitHub上的issues,還是Google的Groups,都是異步協作的利器,后來語雀的討論區也借鑒了這些思路,就是是因為我們發現,異步協作比線下會議高效很多。我也非常想在公司內去推行異步協作,在體驗技術部有句話,與其在釘釘上找我,不如發個issue給我,你可能會更快的得到反饋。
人們通常進行交流的手段就是聽說讀寫,其中讀和寫是比聽和說更高維度的手段,需要更多邏輯和抽象能力,更有助于問題的及早解決。
最后一點是求同尊異。GitHub上有些項目參與人數眾多,大家參與討論很激烈,如何在有分歧的情況下達成共識,以及不僅達成共識而是讓社區往前走一步,這是需要一些領導力,以及一些意見領袖做出一些犧牲的。比如當時在CommonJS社區里有一位C語言大拿,他已經實現了一版模塊化代碼,?比已有的一些都更優雅,但為了讓社區意見保持一致往前走,他把自己的代碼全刪掉了。
在這里,求同尊異不是很虛的詞,而是很實際的原則,影響你的很多取舍。
最后一點是挺有趣的,在早期GitHub做社區的可能很多都是技術,比較純粹,后來各種追求商業化以及個人影響力的都來了。所以我最后一點就是你要知人情世故,現在GitHub上很多開源類庫你一看就知道是來蹭名利的,這種情況下笑一笑就好了,不需要去較真,否則會耗費很多無謂的時間,最少也影響心情。但同時你自己不要去人情世故,保持純粹。開源社區也是個小社會,GitHub也沒有大家想象中那么純潔,有很多故事在里面。
這些習慣和認知一直延續到我現在的工作中,真的給我帶來了很多幫助。我相信在開源上,只要你參與進去,你就會獲得一些感性的認識,知道它們對你的職業成長和習慣是非常有利的。
我的收獲之二:學做產品
我之前做Sea.js這些開源項目的時候,是把它當做一個產品去打造的,因此肯定會遇到產品的靈魂三問:
每一個開源項目在決定要不要去做的時候,都要問自己這幾個問題。這些問題其實和很多業務和產品遇到的問題很類似。你必須將這些問題回答清楚之后才能再往前走一步。
比如當初我們在做AntV的G2的時候,就要回答一個問題,當時國內外有higcharts、echarts等開源的可視化框架,也都非常成功,這時候你G2憑什么去做另一個可視化類庫?后來和蕭慶關于這個問題想了很久,最終得出的答案是我們要做圖形語法,而不是以前業界通行的基于配置的可視化,這也正是G2的差異化競爭優勢,真的做好了會帶來更多的可能性。
關于第二個問題,是因為很多你想做的項目,要么在GitHub上已經有了,要么已經在文檔中被人討論過了,那為什么是你做?為什么你更有可能去做成?這個問題的一個“政治正確”的答案是和你的業務有相關性,更實際的可能是和你這個人更有關系,是你內心想不想做,愿不愿意去長期的投入。
比如Ant Design、AntV,其實當時是集團更有機會去做的,因為集團有數據產品技術部,他們有很多業務,在這些業務土壤下是更有機會去長出這些項目的,但是他們缺人。所以對這個問題我的回答是,很多情況下,人的要素是比業務更重要的。只要你對事情是篤定想要去做的,大膽去做就好了。
第三個問題其實是更難回答的,就是你的邊界在哪。之前接觸過的一些開源項目越做越大,或者越做越復雜,這不一定是好的。我自己心目中理想的開源產品,是做到一定階段,就不需要再做了。比如一些命令行小工具,很多年都沒有更新了,但大家都在用,因為它們各種接口很完備,已經不需要更新了。做開源項目也一樣,當你花一些時間設計好了,然后寫完代碼,就可以對整個世界說,我做好了,你用吧。當然,這是一種理想狀態。
我的收獲之三:對事的熱愛
我的分享最后一點是熱愛。但凡你曾經經歷過為開源而瘋狂,你就會理解什么叫熱愛。而如果你沒有瘋狂過,熱愛對你來說只是兩個字而已。
最近袁老去世,舉國同悲,我也看了那個40多分鐘的紀錄片,看的過程中真的是非常感動。特別是里面提到袁老的禾下乘涼夢:他有一個夢,希望稻谷長的像高粱一樣高,稻穗比掃把還長,結的谷粒和花生米一樣大,到時候他和他的助手可以躺在下面乘涼,睡個午覺。我覺得袁老說到這段話的時候整個人都升華了,看了這段視頻,你可以理解什么叫做事業,什么叫做熱愛。
當你把開源當做自己的事業的時候,感受其實是一樣的,即使生活上很樸素,你也可以過的很開心。當你寫代碼的時候想著怎么寫的更好,某個內存占用怎么降低一點點,某個性能怎么提高一點點,當你滿腦子在想這些的時候,一些物欲得失也就沒那么重要了。
我希望同學們通過開源,去參與和主導項目,能夠感受到這份熱愛。持續去感受過幾份熱愛之后,我覺得你整個人都會不一樣的,面對許多事情,你會活的更通透,更透徹。
另外前不久在推特上看到一句話讓我挺有感觸,他主要說的是,很多人說工作要跟對人,但其實沒什么關系,跟你工作的地方和公司也沒關系,跟什么人不如跟隨自己的內心。真正一個人在職場生涯往前走,應該找到的是你的mission和calling,還有找到對你有意義和熱愛的一些事情。
總結一下,如果說開源帶給我什么,首先第一個就是高效工作的習慣,讓我受益終身;第二個是在這個過程中,學會了怎么去做產品;第三個是非常感謝自己有興趣參與一些開源項目之后,從中感受到什么叫熱愛,從而改變了我對人生的很多看法。
本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。 如若轉載,請注明出處:http://www.pswp.cn/news/275766.shtml 繁體地址,請注明出處:http://hk.pswp.cn/news/275766.shtml 英文地址,請注明出處:http://en.pswp.cn/news/275766.shtml
如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!