摘要:從開始到結(jié)束大約花了個(gè)月的時(shí)間,前輩也已經(jīng)離職了。是一個(gè)聊天室,會自動整合,任何的動向都會紀(jì)錄在內(nèi),讓所有人進(jìn)入一個(gè)獨(dú)立的空間討論問題。自己也嘗試丟了詢問項(xiàng)目開發(fā)進(jìn)度,當(dāng)然也沒得到任何回應(yīng)。以上是我在上學(xué)習(xí)開源的經(jīng)驗(yàn)分享。
先祝給位圣誕節(jié)快樂!
文章拖了將近一年的時(shí)間,我想是時(shí)候可以把兩年多在 GitHub 開源的經(jīng)驗(yàn)分享給大家,雖然不及神人級的開發(fā)者,但我始終相信,分享、自由、開放、討論和開發(fā)者是開源的核心精神。
如果你不知道什么是 GitHub,但多少應(yīng)該也知道 Bitbucket, CodePlex, Google Code, GitCafe 等等,就先假設(shè)大家都知道吧~
先說聲抱歉,也許用詞上大家可能不太習(xí)慣,再請大家提出修正并給予建議。
文長,對著電腦的各位,進(jìn)入正題前,泡一泡咖啡提提神!
[ 接觸 GitHub ]N 年前聽教授介紹開源有多厲害,國外高手都是怎么玩開源項(xiàng)目的,就從那個(gè)時(shí)候開始,接觸了 GitHub。除了 GitHub 你還可以選擇國產(chǎn) GitCafe,用過 GitHub 都應(yīng)該可以感受到,大眾還是較為喜歡 GitHub,不論是 UI/UX、效率還是社群,GitHub 還是擁有極大的優(yōu)勢。
開始的時(shí)候玩一玩就立馬上手,根本就是快快樂樂學(xué) Git/GitHub,透過 GitHub 才慢慢了解 Git。一開始使用 GitHub 提供的 GitHub Desktop 來 commit push,但后來好像 bug 很多,這時(shí)就開始接觸 command line (cmd),就一直用到現(xiàn)在,現(xiàn)在已經(jīng)回不去 GUI 了。
有付費(fèi)買過 GitHub 私人空間的人和公司其實(shí)不少,但費(fèi)用也不便宜。還記得之前在公司直接用 GitHub Importer 把整個(gè)公司項(xiàng)目復(fù)制一份到 GitHub 上,不費(fèi)吹灰之力就完成了,如果你的項(xiàng)目是 svn,轉(zhuǎn)換過去 git 也是沒有問題的!
[ 前輩 ]兩年前自己很嫩(現(xiàn)在還是很嫩),前輩開始教我多學(xué)習(xí)別人的開源項(xiàng)目、學(xué)習(xí)模仿等等的,到現(xiàn)在我還是恨感激這位前輩,沒有他推我一把,我可能就沒繼續(xù)開源下去了??戳藥讉€(gè)星期后,前輩讓我開一個(gè)項(xiàng)目,剛好公司網(wǎng)站是使用 AngularJS 當(dāng)前端架構(gòu)開發(fā),那就寫一個(gè)前端驗(yàn)證工具吧。定義需求、規(guī)則、功能,再來定義最重要的 SPEC,接著開始寫主要模組,其中當(dāng)然少不了被前輩叮說這怎么這樣寫等等之類的。
我還記得很清楚,前輩說:那開始寫測試吧,寫測試的時(shí)間是寫模組的兩倍時(shí)間哦!問題是,我怎么知道該如何寫測試,而且是該死的 AngularJS,哪懂什么 protractor,由一堆什么 BDD/TDD, JUnit, QUnit, Jasmine, Mocha 的。就直接模仿了前輩的程式,也終于把完整的測試給寫出來了。從開始到結(jié)束大約花了3個(gè)月的時(shí)間,前輩也已經(jīng)離職了。大致初步功能也完成了,DEMO 頁面也寫好了,就立馬開源,這里簡稱 A-V!
不要懷疑,前輩是個(gè)牛人,所以我非常的辛運(yùn)!
[ N4J ]其實(shí)在 A-V 出來之前,我只會 jQuery,正在學(xué)習(xí) jQuery 寫第三方套件的時(shí)候開發(fā)了 N4J 的前端工具,N4J 是純粹學(xué)習(xí)用的,學(xué)習(xí)如何使用 GitHub、結(jié)構(gòu)以及書寫文件。還記得自己寫得很開心,多年回去看還記得那時(shí)候的興奮,后來畢業(yè)后也用 N4J 順利拿到了聘書,畢業(yè)后就馬上就業(yè)。
[ A-V ]先說說 A-V 目前的狀況,有 2xx commits、1x releases、2x contributors,比起大型項(xiàng)目這個(gè)數(shù)字沒什么,但對我來說,這些數(shù)字都是一個(gè)肯定,一個(gè)成就,我想這是開源帶給我的好處之一,也是讓我持續(xù)投入時(shí)間的原因。
完成第一個(gè)版本后就馬上上線了,寫過程式的人都知道,這時(shí)候就會出現(xiàn)上線臭蟲,版本 1.0.5, 1.0.6, 1.1.0 后,才開始慢慢穩(wěn)定下來。
很快的,我試著在各論壇發(fā)表自己的作品,也包括中國的一些社群,分享自己這幾個(gè)月下來的成果,但很可惜回應(yīng)我的人沒有很多,也許是作品沒有爆炸性,畢竟只是個(gè)前端驗(yàn)證工具。其實(shí)不免有點(diǎn)小小的失望,沒有人討論,沒有任何回饋。但有一點(diǎn)值得注意的是,AngularJS 在這方面還沒有太多相關(guān)的套件和討論,所以我算是進(jìn)入了對的時(shí)間點(diǎn)。
幾個(gè)月下來,我持續(xù)開發(fā)、增加功能、把程式寫得更好,來了第一個(gè) issue,后來也陸續(xù)來了幾個(gè),應(yīng)該是我之前在某個(gè)論壇發(fā)文,有人看到進(jìn)來給我意見。當(dāng)然我就立即回覆謝謝他們的提議,馬上修改或者問說有什么建議等等之類的。因?yàn)橛腥丝吹?,star 了過后就會更多人看到,甚至有人開始丟 PR 給我,在這里我學(xué)到,有人丟 PR 給你,你一定要接受,除非他的程式充滿問題,但也不能馬上拒絕,要提出自己的理由決定是否要對方修改還是繼續(xù)討論下去。其實(shí)我在別人的開源項(xiàng)目也是如此,丟了一個(gè) PR,幾天內(nèi)沒有人回覆會覺得很傷心,但一旦被接受或者回覆,心理會很開心,太棒了,被接受了!這是一種被肯定,支持的動作。所以只要有人丟 PR 我大部分都會接受。
接下來的幾個(gè)月,更多的 issue 更多的 PR,一個(gè)人無法承擔(dān)所有的問題,所以很多我回覆后就沒有繼續(xù)了,一旦有時(shí)間可能是一個(gè)月后,才有時(shí)間回來看到底發(fā)生什么問題,就這樣慢慢把 bug 修復(fù)。還記得有一次,有個(gè) issue 幾個(gè)月下來都解不了,某天晚上到了咖啡廳坐下,瞬間就解掉了,這一定要上一個(gè)新標(biāo)簽說 “fix feature or major improvement”,其實(shí)這是開發(fā)開源的小確幸,只有你知道發(fā)生了什么事,即使你公告了你修復(fù)這個(gè)功能,會理你的人沒有多少。
中間當(dāng)然有停下的時(shí)候,完全沒有任何聲音自己也沒動力繼續(xù)開發(fā)解 bug,但突然有人丟了一個(gè) bug 或者 PR 過后,又會瞬間熱血起來,不修掉不行的那種感覺,修掉后會很開心,然后又會安靜一陣子。大概就是這樣來來回回的狀況。
當(dāng)然如果你的項(xiàng)目是那種爆炸性的,比如說 pageres、express、awesome,不會是以上的故事
前幾個(gè)月,因?yàn)樽杂X A-V 掉入了谷底,很久沒有更新也沒有人問說進(jìn)度,開了一個(gè) issue “Looking for Collaborators”,自以為會有人自告奮勇的說:“我來”,結(jié)果一個(gè)都沒有。在這里我學(xué)習(xí)到的是,開源項(xiàng)目,就是要讓他慢慢的醞釀,果然某一天有人丟了個(gè)PR 幾乎大改了我整個(gè)架構(gòu),改著改著他的興趣就來了,我就問他說要不要當(dāng) Collaborator,他也就馬上說好。后來我們也開了個(gè)Slack 群組,討論著 A-V 的開發(fā)。也許有人覺得這沒什么,但是這種與網(wǎng)友一起奮斗,討論著彼此的專業(yè),這份經(jīng)歷是工作永遠(yuǎn)無法取代的。
以上故事就是不停的 loop,持續(xù)了兩年,直到現(xiàn)在不是一個(gè)人在開發(fā)修 bug,而是有同伴一起討論,彼此給意見,這就是開源的魅力所在。
A-V 過后,陸陸續(xù)續(xù)展開對開源的興趣,看了很多知識產(chǎn)權(quán)的選擇(還是覺得迷迷糊糊的),期間也開了不少的項(xiàng)目,像是 IG、GE、SSS、JSD 等等的,雖然沒有像 A-V 那么精彩,但難免還是有issue 有 PR(真的很珍貴)。
[ A-J ]A-J 雖然不是我開始的,是我主動寄信給作者要求成為 Collaborator。A-J 屬于爆炸性的項(xiàng)目,現(xiàn)在已經(jīng)有四位數(shù)的星星,通常這類型的項(xiàng)目 issue 和 pr 會多到你接到手軟會想吐,大概會忽略他一陣子,然后一段時(shí)間后再來慢慢處理。但是既然是自己主動要求幫忙的,就有責(zé)任繼續(xù)維護(hù)它,開源要學(xué)習(xí)的其中一點(diǎn)就是-主動,包括提出問題、意見、結(jié)果、拒絕,你的任何一個(gè)動作都在幫助一個(gè)開源項(xiàng)目的進(jìn)步,這里就真的是責(zé)任制了。每個(gè)項(xiàng)目都有自己的步調(diào),你也可以不要主動,讓原開發(fā)者自行決定項(xiàng)目方向。
[ Gitter ]其實(shí)我覺得 GitHub 提供的 Issue 已經(jīng)很好用了,整個(gè)項(xiàng)目的討論都能在 Issue Comment 完成,有必要還能互相關(guān)聯(lián),甚至下標(biāo)簽來整理 Issue 分類。但有時(shí)候不是所有人都喜歡在 Issue 問問題,也有可能擔(dān)心問到重復(fù)的問題。
如果你的項(xiàng)目很大,你可以建議大家到 stackoverflow/segmentfault/irc 尋找問題,但對于比較小的項(xiàng)目,可以使用Gitter。 Gitter 是一個(gè)聊天室,會自動整合 GitHub,任何的動向都會紀(jì)錄在 Gitter 內(nèi),讓所有人進(jìn)入一個(gè)獨(dú)立的空間討論問題。多一個(gè)管道讓大家凝聚,其實(shí)多少也能幫助到你,因?yàn)橐粋€(gè)聊天室里面,大家都能發(fā)言,你不回答其他人會幫你回答的。
[ 已死? ]常常逛 GitHub,你會發(fā)現(xiàn)有很多有趣的項(xiàng)目,但看到最新的更新時(shí)間,什么!是一年前。這時(shí)候就會開始腦補(bǔ),是不是項(xiàng)目已經(jīng)沒有在開發(fā)了,作者似乎也消失了,有好多 issue 好多 PR 都沒有被接受。自己也嘗試丟了 issue 詢問項(xiàng)目開發(fā)進(jìn)度,當(dāng)然也沒得到任何回應(yīng)。偶爾還是會覺得很可惜,這么棒的一個(gè)項(xiàng)目是不是被拋棄了。
但是不要?dú)怵H,就因?yàn)檫@是開源,這是一個(gè)開放的社群,任何人都有權(quán)利查看修改更新(有的是不允許的),先查查看 fork 分支,有時(shí)候分支的星星數(shù)還會比原本的還要多,再看看 issue 里面有沒有人在討論替代方案。最后一招就是自己 fork 自己改,當(dāng)然你也可以開一個(gè)全新的項(xiàng)目來做一樣的事情。
[ END ]以上是我在 GitHub 上學(xué)習(xí)開源的經(jīng)驗(yàn)分享。對我來說,滑 GitHub 已經(jīng)成為我生活中的一部分。打開 GitHub 點(diǎn)擊 Explore 常常會有意想不到的新項(xiàng)目,也是吸收新知識、新趨勢的好地方。
有人說,維護(hù)開源項(xiàng)目,就像是開一間公司,你要不停的對他持續(xù)開發(fā),對的時(shí)機(jī)對的功能,持續(xù)研究并找尋突破點(diǎn),公司才能活得久。
原諒我把開源項(xiàng)目的名字都縮寫了,因?yàn)檫@不能是個(gè)廣告文,但
不瞞各位,我就是來騙贊的啦,騙星星為其次,再來騙 followers,但我一定會持續(xù)開源,增加自己的能力。
不知道大家的開源經(jīng)驗(yàn)是什么呢?
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/91580.html
摘要:喜歡學(xué)習(xí)新的技術(shù)和實(shí)現(xiàn)方案,挑戰(zhàn)難點(diǎn)。第三層直接符合的。遇到的問題,也盡可能的去一起解決,減輕學(xué)習(xí)上的痛苦。學(xué)習(xí)完了,就得實(shí)戰(zhàn)。當(dāng)然也有我很多沒有考慮到的,還需繼續(xù)學(xué)習(xí)。在此期間,也可能會有更好,更有趣的想法在其中產(chǎn)生。 showImg(https://segmentfault.com/img/remote/1460000019521851); 有人說,Spring Boot的出現(xiàn),讓...
摘要:遵守原則對了,在提交表單前會有幾項(xiàng)拷問靈魂的宣言需要勾選。期限提交表單過后就是坐等收郵件了。郵件里說許可證的有效期是一年,到期前會發(fā)一個(gè)提醒郵件,如果項(xiàng)目還符合要求可以繼續(xù)申請使用。 閑聊 步入前端切圖仔行列的我曾多次糾結(jié)過「到底使用哪種編輯器寫前端好用?」這樣的問題,前前后后嘗試過 Dreamweaver 、HBuilder 、Sublime Text 、Atom 和現(xiàn)在主要使用的...
摘要:受上海杰克大大委托,于今晚分享一下本人的自學(xué)歷程主題機(jī)械轉(zhuǎn)行前端,半年零基礎(chǔ)自學(xué)的心路歷程。所以我就這半年個(gè)人自學(xué)修行以來的一些感觸和心得方面進(jìn)行分享。背景介紹內(nèi)容前工作狀況機(jī)械離職經(jīng)歷心態(tài)轉(zhuǎn)變目標(biāo)確定大家好,我是,一枚前端萌新。 機(jī)械轉(zhuǎn)行前端,半年零基礎(chǔ)自學(xué)的心路歷程 標(biāo)簽: 轉(zhuǎn)行 自學(xué) 原創(chuàng):Michael.Lu 277133779@qq .com 轉(zhuǎn)載注明出處 這是初級群(西安...
摘要:受上海杰克大大委托,于今晚分享一下本人的自學(xué)歷程主題機(jī)械轉(zhuǎn)行前端,半年零基礎(chǔ)自學(xué)的心路歷程。所以我就這半年個(gè)人自學(xué)修行以來的一些感觸和心得方面進(jìn)行分享。背景介紹內(nèi)容前工作狀況機(jī)械離職經(jīng)歷心態(tài)轉(zhuǎn)變目標(biāo)確定大家好,我是,一枚前端萌新。 機(jī)械轉(zhuǎn)行前端,半年零基礎(chǔ)自學(xué)的心路歷程 標(biāo)簽: 轉(zhuǎn)行 自學(xué) 原創(chuàng):Michael.Lu 277133779@qq .com 轉(zhuǎn)載注明出處 這是初級群(西安...
閱讀 4010·2023-04-26 00:36
閱讀 2746·2021-11-16 11:44
閱讀 1189·2021-11-15 17:58
閱讀 1748·2021-09-30 09:47
閱讀 1290·2019-08-30 13:05
閱讀 1617·2019-08-30 12:55
閱讀 2493·2019-08-30 11:02
閱讀 2891·2019-08-29 17:01