點擊上方藍字關注我們

作者 |鍾嘉傑
編輯| 胡志鵬


01
什麼是開源
這裡的開源特指開源軟件。引用 維基百科 的定義,開源軟件(英語:open source software,縮寫:OSS)又稱開放源代碼軟件,是一種源代碼可以任意獲取的計算機軟件,這種軟件的著作權持有人在軟件協議的規定之下保留一部分權利並允許用戶學習、修改以及以任何目的向任何人分發該軟件。
02
開源社區的組成
你或許沒有向開源社區提交過代碼,但是你其實已經在開源社區中了。為什麼這麼說呢?如果你是後端工程師,你是否使用過 Spring,Flask,nodejs 等;如果你是前端工程師,你是否使用過 VUE,React 等?測試的小夥伴是否使用過 selenium?或者你是否也使用過 MySQL、Postgresql、Docker、kubernetes?這些都是開源軟件,只要使用他們,你就是開源社區的用戶,實際上就已經參與到開源社區之中。
開源社區主要的角色有:維護者、貢獻者、用戶,從人員的數量來看,一般情況下是 維護者 << 貢獻者 << 用戶。也就是說,大部開源社區的小夥伴都是用戶。
用戶是有差別的,用戶與用戶之間的差異,有時比維護者之間還大。有的用戶是深度用戶,他們除了簡單使用開源軟件外,還可以能會對軟件進行意見反饋和二次改造。這部分深度用戶對社區是非常有意義的,因為他們能將使用時候遇到的 bug,可能的改進思路反饋給社區,讓貢獻者和維護者不斷的優化軟件,提高用戶體驗,提高使用便利性。所以深度用對開源社區來說,是非常重要的角色,如果你也是開源社區的用戶,那可以通過反饋 bug、提建議需求來逐步轉變成深度用戶。
03
我是怎麼參與開源的
這個部分的參與開源是專指站在貢獻者和維護者角度看待開源的。我參與「貢獻」開源項目其實非常早,但是僅僅是自己 GitHub 倉庫的項目。大學時我主修數學專業,但是更想從事軟件開發方向的工作,所以在大學期間我就創建了很多 GitHub的倉庫。是的,在自己的倉庫中創建倉庫再迭代也是參與開源的方式,但是是否能流行起來就是另一個故事了。此時的開源更多的是外部需求,我想通過 GitHub 向外界展示我是會寫一些代碼的,希望能在職業市場獲得認可。
之後,隨着我在工作中花的時間越來越多,而且我創建的倉庫沒有人使用,我漸漸就失去了了維護的動力。
但從用戶變成開發者,或許你只需要向前多走一步。畢業之後,我從事了軟件行業,使用了很多開源軟件。有一天,我突發奇想,想看看某調度系統的任務是如何運行的,我在 IDE 點進了項目的源碼,花了三天時間,通過日常使用和代碼注釋,弄懂了它是如何運行 shell 任務的。
在此期間我還發現了源碼注釋中有一個拼寫錯誤。懷着試一試的心態,我對源碼進行了修改,閱讀了項目的貢獻指南,並向原庫提交了 PR。社區響應非常迅速,第二天就將 PR 合併了。從此,我就從用戶轉變成了開發者。這是一個非常簡單的修改,但是正是因為向前多走了一步,才讓這一切發生。當我現在回想時,這個PR當然有我細心閱讀代碼的原因,但是和我下定第一步的決心也密不可分。我可能不是第一個發現這個問題的人,因為很多人可能都會閱讀到這塊的源碼,但是可以肯定我是第一個提出並解決這個問題的人。所以我認為,開源除了保持好奇心外,還要勇於行動。表達自己的需求,提高自己的執行力。
隨着第一個PR 被合併,我看源碼的範圍越來越廣,每個模塊都或多或少都會涉及,我也會把遇到的問題創建 issue,並修復我遇到的,或者社區中遇到的問題。與此同時,我的 commit 數量也逐漸變多,在1年 6 個月後,commit 數量達到 40 多個時,我被提名成為項目的 committer。
是的,我花了 1.5 年才完成從用戶到 committer 的轉變,而且只完成了 40 個PR。我列出這組數字想表達的是,我並不是什麼大牛,我只是比別人多堅持了一點點時間。我們項目很多人花了 6 個月的時間就成為了 committer,而且 commit 無論是數量還是質量都遠高於我,我願意稱他們為真正的大牛。但是開源並不是大牛的專屬,像我這個樣普通的人也能有屬於自己的一畝三分地。這個章節我想告訴大家的是:堅持在開源世界中,比技術強更加重要,你能堅持或許你已經成功了一半了。
可能有小夥伴要問了,為什麼我要參與開源,我能得到什麼好處?於我而言除了可以成為 committer 這樣帶少許光環的好處外,給我更多的是滿足自我認同,讓我知道真的有人寫代碼時會精益求精,當我項目的代碼被下載、被運行時,會有一種我寫的代碼改變了世界的錯覺。那種感覺就像攀爬了很久,歷經艱險,終於看到了太陽升起一樣,會讓我覺得一起都值得。
或許你也和我一樣是一個普通的 coder,但要不要也嘗試一下讓自己變得不同呢?
04
加入社區

參與 DolphinScheduler 社區有非常多的參與貢獻的方式,包括:

貢獻第一個PR(文檔、代碼)我們也希望是簡單的,第一個PR用於熟悉提交的流程和社區協作以及感受社區的友好度。
社區匯總了以下適合新手的問題列表:https://github.com/apache/dolphinscheduler/issues/5689
非新手問題列表:https://github.com/apache/dolphinscheduler/issues?q=is%3Aopen+is%3Aissue+label%3A%22volunteer+wanted%22
如何參與貢獻鏈接:https://dolphinscheduler.apache.org/zh-cn/docs/development/contribute.html
來吧,DolphinScheduler開源社區需要您的參與,為中國開源崛起添磚加瓦吧,哪怕只是小小的一塊瓦,匯聚起來的力量也是巨大的。
參與開源可以近距離與各路高手切磋,迅速提升自己的技能,如果您想參與貢獻,我們有個貢獻者種子孵化群,可以添加社區小助手
微信(Leonard-ds)手把手教會您( 貢獻者不分水平高低,有問必答,關鍵是有一顆願意貢獻的心 )。添加小助手微信時請說明想參與貢獻。
來吧,開源社區非常期待您的參與。
您的Star,是Apache DolphinScheduler為愛發電的動力❤️~
(Leonard-ds)

點擊閱讀原文,加入開源!

點個在看你最好看