<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          參與開(kāi)源項(xiàng)目很難嗎?

          共 3298字,需瀏覽 7分鐘

           ·

          2022-04-01 20:48

          hello大家好,我是小樓。

          流量真是個(gè)讓人捉摸不透的東西,有時(shí)候?qū)懥艘黄约焊杏X(jué)牛的不行的文章,結(jié)果閱讀數(shù)據(jù)慘淡,有時(shí)候覺(jué)數(shù)據(jù)可能沒(méi)那么好的文章,實(shí)際數(shù)據(jù)卻出乎意料。

          5cefe04b4c0e9a3e1ef2ab985ccfa056.webp

          之前的文章《慘,給Go提的代碼被批麻了》就是這樣,我以為就一般吧吧,沒(méi)想到卻“火了”。

          這篇文章截止目前,發(fā)表的20天時(shí)間里,在掘金閱讀量突破1w,知乎閱讀量突破1.8w,頭條閱讀量破1.7w,微信公眾號(hào)的閱讀加上被轉(zhuǎn)載的閱讀也有1w,就連公司內(nèi)網(wǎng)的閱讀都有3k。

          可以說(shuō)這個(gè)數(shù)據(jù)是我從寫(xiě)公眾號(hào)以來(lái)最好的了,但我并不覺(jué)得它是我寫(xiě)得最好的文章,所以就很迷。

          好了,以上只是寫(xiě)技術(shù)文過(guò)程中的一點(diǎn)點(diǎn)驚喜,這樣的驚喜是我繼續(xù)寫(xiě)好文章的最大動(dòng)力,所以動(dòng)動(dòng)你們的小手,點(diǎn)贊+在看+轉(zhuǎn)發(fā)安排起來(lái)。

          今天我就順著這篇文章來(lái)聊聊大家可能都比較感興趣的話題,開(kāi)源。本文會(huì)結(jié)合自己的一些看法,從參與開(kāi)源項(xiàng)目的收益和如何參與開(kāi)源項(xiàng)目?jī)蓚€(gè)方面展開(kāi)。

          參與開(kāi)源項(xiàng)目的好處

          首先要明確,為什么要參與開(kāi)源項(xiàng)目?總得對(duì)我有點(diǎn)好處吧。每個(gè)人可能追求不一樣,所以我這里就列舉一下我知道的好處,看看有沒(méi)有戳中你的點(diǎn)。

          • 小禮品

          這點(diǎn)可能是被很多人忽略的點(diǎn),因?yàn)樘×耍_實(shí)也算得上一個(gè)好處。如果你掌握了一些技巧,每年從開(kāi)源社區(qū)拿點(diǎn)小(薅)禮(羊)物(毛)是很easy的。尤其是國(guó)內(nèi)的社區(qū),T恤、杯子、背包等等是很容易拿到的。

          比如這兩年Nacos、Dubbo社區(qū)送我的一些杯具:

          d9947333594890fe225ed9a93d603f45.webpa0383179a3f496c8d52505e65976963b.webp

          據(jù)我觀察,阿里的開(kāi)源項(xiàng)目只要每年都去提一個(gè)PR,很大概率會(huì)送你禮物,不管這個(gè)PR是大是小,可以大到貢獻(xiàn)一點(diǎn)源碼,也可以小到format一下代碼、修改文檔中的一些錯(cuò)誤、增加一個(gè)單元測(cè)試等等,所以是不是學(xué)到了薅羊毛的技巧?

          • 朋友圈素材

          這點(diǎn)只是滿足一下虛榮心,其實(shí)并沒(méi)有什么卵用,但還是提一嘴,比如下面這些素材,是發(fā)朋友圈裝x的利器:

          e44e7f96a1ad1459d3bf1b17e420a4fe.webpca82f7db08aac115a7596d0768ad3748.webp
          • 裝飾簡(jiǎn)歷

          如果你有參與開(kāi)源項(xiàng)目的經(jīng)歷,寫(xiě)到簡(jiǎn)歷上一般是個(gè)加分項(xiàng),說(shuō)一般情況是因?yàn)槲以诿嬖嚨臅r(shí)候遇到過(guò)候選人在簡(jiǎn)歷上這樣寫(xiě):

          參與貢獻(xiàn)過(guò)上萬(wàn)star的項(xiàng)目。(后面還貼上了項(xiàng)目地址)

          一看這句描述就有貓膩,為啥強(qiáng)調(diào)上萬(wàn)star卻不說(shuō)出項(xiàng)目名稱(chēng)?于是我打開(kāi)后面的github地址發(fā)現(xiàn),原來(lái)這個(gè)上萬(wàn)star的項(xiàng)目是個(gè)聚合在線學(xué)習(xí)資料的項(xiàng)目。

          不能說(shuō)參與這樣的項(xiàng)目不好,只是簡(jiǎn)歷上這句話讓我感覺(jué)在打擦邊球,所以不但沒(méi)有加分,反而減分了。

          一般來(lái)說(shuō)對(duì)項(xiàng)目有過(guò)貢獻(xiàn),無(wú)論大小,都可以稱(chēng)之為Contributor,貢獻(xiàn)達(dá)到一定程度則稱(chēng)為Committer,達(dá)到多少貢獻(xiàn)才能稱(chēng)為Committer一般每個(gè)社區(qū)都有自己的衡量標(biāo)準(zhǔn),比如Nacos社區(qū)有明確的規(guī)定:

          72c5fcae6fbb4812f49bb24fd68c8a29.webp

          翻譯下就是:至少有8個(gè)PR,團(tuán)隊(duì)協(xié)作能力,理解項(xiàng)目的代碼風(fēng)格,能寫(xiě)出優(yōu)秀的代碼。當(dāng)然也有很多社區(qū)沒(méi)有明文規(guī)定,總之就是貢獻(xiàn)越多越有可能成為Committer。

          所以在簡(jiǎn)歷中如果你是某個(gè)項(xiàng)目的Committer就很厲害了,一詞勝千言。退一步就算不是Committer,如果你有一些比較重要或者核心的代碼提交,也可以寫(xiě)上,附上具體的issue。如果只是代碼的format、增加一些單元測(cè)試,我建議簡(jiǎn)歷上就不要提了。

          • 能力提升

          通常開(kāi)源項(xiàng)目的代碼、設(shè)計(jì)、規(guī)范都是比較優(yōu)秀的,和優(yōu)秀的人一起共事能成長(zhǎng)更快。

          一般我們?cè)趨⑴c開(kāi)源項(xiàng)目時(shí),都是使用英文來(lái)交流,所以對(duì)你的英文書(shū)寫(xiě)能力是個(gè)提升。

          其次代碼規(guī)范、測(cè)試能力、考慮事情的全面性都將得到鍛煉。

          以我個(gè)人的感受來(lái)說(shuō),雖然嘴上說(shuō)寫(xiě)代碼要規(guī)范,但在公司寫(xiě)代碼的時(shí)候,有時(shí)候就不太注意,都是以快速完成任務(wù)為目標(biāo),但開(kāi)源項(xiàng)目不一樣,你寫(xiě)的每一行代碼都要被眾多的大佬一行一行地review,只要有一點(diǎn)點(diǎn)不滿意都會(huì)要求你修改。

          測(cè)試也是如此,你寫(xiě)的每一行代碼都將被代碼測(cè)試,單元測(cè)試、集成測(cè)試。開(kāi)源項(xiàng)目更相信用代碼測(cè)試,所以這也鍛煉了你寫(xiě)測(cè)試和寫(xiě)代碼的能力,寫(xiě)出代碼不難,寫(xiě)出容易測(cè)試的代碼還是比較困難的。

          • 提升影響力

          這是更高層級(jí)的追求,當(dāng)你想在技術(shù)上走的遠(yuǎn)的時(shí)候,需要一些業(yè)界影響力,這時(shí),參與開(kāi)源是個(gè)不錯(cuò)的選擇,能結(jié)識(shí)更多的圈內(nèi)牛人,也讓大家能認(rèn)識(shí)你,你的圈子、人脈就會(huì)擴(kuò)張。

          提升影響力有什么作用呢?最直接的是,讓別人知道你的存在,下一次機(jī)會(huì)來(lái)臨時(shí),說(shuō)不定你會(huì)被看中或者推薦。

          當(dāng)然我離這個(gè)層次還很遠(yuǎn),只是說(shuō)一點(diǎn)自己的理解。

          如何參與開(kāi)源項(xiàng)目

          • 參與開(kāi)源的方式

          上文其實(shí)也提到了,參與開(kāi)源項(xiàng)目不一定是直接的貢獻(xiàn)源碼,也可以是對(duì)文檔的編寫(xiě)或修正、寫(xiě)一些單元測(cè)試或者測(cè)試用例、也可以寫(xiě)一些開(kāi)源項(xiàng)目相關(guān)的文章。

          比如我在去年寫(xiě)《Dubbo為什么要用Go重寫(xiě)?》這篇文章時(shí),就順手把Dubbo-go項(xiàng)目的README改了

          ecff2107ac3e2c6249e6d4a8b1e73965.webp

          還有比如在寫(xiě)《使用dubbo-go搭建dubbo接口測(cè)試平臺(tái)》這篇文章時(shí),把這篇文章投稿給了Dubbo-go官方網(wǎng)站,也被收錄進(jìn)去

          93216e88a7c02ed4dcafcfaa79043c12.webp

          這些都算是對(duì)開(kāi)源的一種貢獻(xiàn)。當(dāng)然如果你有代碼的直接貢獻(xiàn)是最好的,這也是獲得技術(shù)成長(zhǎng)最快的方式。

          • 從哪里開(kāi)始

          如果我們平時(shí)工作中用到什么開(kāi)源項(xiàng)目,沒(méi)事的時(shí)候可以把源碼下載下來(lái)翻一番,可以按照文檔跑起來(lái),打上斷點(diǎn)看看是否跟自己想的一樣,這時(shí)我們便有了一些基礎(chǔ),可以去github上的issue找找,一般的項(xiàng)目會(huì)把issue分類(lèi),可以從標(biāo)了good first issue或者bug標(biāo)簽的issue看起,看看有沒(méi)有自己能解決的,再結(jié)合代碼,一步一步調(diào)試。

          這種方式目的性比較強(qiáng),我就是沖著提交代碼去的,而且比較有時(shí)間去研究,目前我還沒(méi)用過(guò)這種方式,我更多的是下面提到的這種方式。

          另外一種是如果我在使用開(kāi)源項(xiàng)目的過(guò)程中發(fā)現(xiàn)了一個(gè)bug,或者一個(gè)可以優(yōu)化的點(diǎn),可以去github上提個(gè)issue先討論討論,如果社區(qū)的人也認(rèn)可你的觀點(diǎn),可以把你的修復(fù)或者修復(fù)作為一個(gè)PR提交上去。

          這個(gè)方式我在Dubbo/Sentinel/Nacos/Skywalking/Go中都是這么干的,都是平時(shí)遇到的一些問(wèn)題,反哺到社區(qū)。

          發(fā)現(xiàn)問(wèn)題往往比解決問(wèn)題更困難,開(kāi)源項(xiàng)目也是如此。

          等等,在你想提交代碼前,我建議你好好看看開(kāi)源項(xiàng)目的規(guī)范,一般位于項(xiàng)目的README或者官網(wǎng)中,他對(duì)issue有什么要求,對(duì)代碼有什么要求,對(duì)commit message等等都有什么樣的要求,如果不按照這些規(guī)范來(lái)提交,可能你的下場(chǎng)會(huì)和我一樣,一個(gè)字「慘」。

          • 提交代碼流程

          這一步網(wǎng)上資料比較多,我這里只說(shuō)個(gè)大概的流程,具體到每一步我相信你能在網(wǎng)上找到更詳細(xì)的教程:

          1. 提issue討論(不是必須,有些項(xiàng)目可以直接提代碼)
          2. fork代碼倉(cāng)庫(kù)
          3. 在fork的代碼倉(cāng)庫(kù)拉一個(gè)分支,并把代碼提交到這個(gè)分支上
          4. 簽署Contributor License Agreement(簡(jiǎn)稱(chēng)CLA)
          5. 在這個(gè)倉(cāng)庫(kù)上向原倉(cāng)庫(kù)發(fā)起一個(gè)PR
          6. 等待代碼Review反饋,并按照反饋修改
          7. Merge進(jìn)代碼倉(cāng)庫(kù),貢獻(xiàn)完成

          最后說(shuō)一句

          萬(wàn)事開(kāi)頭難,往往第一個(gè)PR是最難提交的,如果嘗試著提交了,我相信你會(huì)打開(kāi)新世界的大門(mén)。

          對(duì)了,雖然我參與到開(kāi)源項(xiàng)目的經(jīng)驗(yàn)不夠多,但可以給你一點(diǎn)參考,有正例也有反例

          • https://github.com/golang/go/pull/50023
          • https://github.com/dubbogo/dubbogo.github.io/pull/7
          • https://github.com/apache/dubbo/pull/8066
          • https://github.com/apache/dubbo/pull/7929
          • https://github.com/alibaba/nacos/pull/2403
          • https://github.com/alibaba/Sentinel/pull/1045
          • https://github.com/alibaba/Sentinel/pull/104
          • https://github.com/apache/skywalking/pull/2930
          • https://github.com/apache/skywalking/pull/2874

          好了,今天的分享到此為止,如果文章中寫(xiě)的有不清楚的地方,也歡迎加我微信MrRoshi私聊,我們下期再見(jiàn)!

          - END -
          瀏覽 42
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  丁香五月婷婷激情网 | 黄片在线免费观 | 中文字幕在线观看免费视频 | 免费看成人做爰视频 | 天天撸天天色 |