成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

開源總監(jiān)寫的“苦澀指南”:真的,一般人別碰開源項(xiàng)目

開源
做開源項(xiàng)目絕不僅僅只是寫代碼那么簡(jiǎn)單,甚至最困難的都不是寫代碼的部分,而在于你如何宣傳和推銷,如何做好維護(hù),以及如何跟一幫噴子打交道。Formidable的開源總監(jiān)用一篇苦澀的開源指南告訴你:如果你不是真心喜歡開源的話,最好不要去做開源項(xiàng)目了。

編者按:開源很簡(jiǎn)單,只要你想干就干對(duì)吧。也許,但如果你想在開源上取得成功,就得聽聽過來人的經(jīng)驗(yàn)教訓(xùn)。做開源項(xiàng)目絕不僅僅只是寫代碼那么簡(jiǎn)單,甚至最困難的都不是寫代碼的部分,而在于你如何宣傳和推銷,如何做好維護(hù),以及如何跟一幫噴子打交道。Formidable的開源總監(jiān)用一篇苦澀的開源指南告訴你:如果你不是真心喜歡開源的話,最好不要去做開源項(xiàng)目了。

[[234463]]

嗨,我是Ken。

我是Formidable的開源總監(jiān)。

如果你聽說過我,可能是因?yàn)橐韵聝牲c(diǎn)中的一點(diǎn)或者全部:

  1. 我在Twitter上面是個(gè)話嘮
  2. 因?yàn)镾lick Carousel、Webpack Dashboard、Spectacle、Cash……這些開源庫(kù)

今天我們主要關(guān)注第二點(diǎn)。最近(以及過去)有很多人問我開源方面的指導(dǎo),今天是我覺得想寫一寫的日子。

不過在此之前,我會(huì)先談?wù)劄槭裁茨阆胱鲩_源的問題,以及我的個(gè)人經(jīng)歷。

為什么你應(yīng)該寫OSS(開源軟件)

說到為什么,開源對(duì)你和你的職業(yè)生涯的好處可以列舉很多:

  • 它可以為你的個(gè)人品牌創(chuàng)造奇跡。如果你有一個(gè)很火的項(xiàng)目,大家就會(huì)熟悉你和你的工作
  • 它可以為你的公司品牌創(chuàng)造奇跡。提供和維護(hù)開源項(xiàng)目能提高品牌的知名度。讓員工有時(shí)間去做這個(gè)然后看看他們的想法變成現(xiàn)實(shí),這可以讓人知道在這里工作很棒
  • 作為開發(fā)者你可以得到成長(zhǎng)!你不再只是寫寫孤芳自賞的業(yè)余項(xiàng)目腳本了。有人盯住你,所以你會(huì)有積極性去把東西做好。
  • 你會(huì)得到回報(bào)。因?yàn)镴ohn-David Dalton寫了lodash而節(jié)省了你這個(gè)項(xiàng)目的開發(fā)時(shí)間一樣,你也許也會(huì)用你的代碼幫別人節(jié)省時(shí)間。你成為一個(gè)人人為我我為人人的社區(qū)的一部分。
  • 感覺會(huì)很棒。雖然這個(gè)是個(gè)人體驗(yàn),但每次有人感謝你對(duì)其項(xiàng)目的貢獻(xiàn)或者告訴你有關(guān)你節(jié)省了他們時(shí)間的故事的時(shí)候那種感覺都非常奇妙。
  • 這未必能幫你找到一份工作,因?yàn)榇蠖鄶?shù)公司并不嚴(yán)格地根據(jù)GitHub的星星數(shù)量去招人,但是如果說這不會(huì)幫你得到一次面試機(jī)會(huì)我就是在撒謊。

我的OSS經(jīng)歷

我還是承認(rèn)吧。我是有史以來最糟糕的開源維護(hù)者。OK,也許不是最糟糕的,但我每次并沒有做到最好。

我曾經(jīng)有過幾次未能正確地管理好開源項(xiàng)目,不過嘿如果不是因?yàn)槲页晒?chuàng)建了數(shù)量可觀的項(xiàng)目的的話就沒那些事了。

但是,我從每一個(gè)項(xiàng)目的失敗那里都學(xué)到了一些東西,并且利用從中得到的洞察來幫助我下一次做得更好,這些我后面會(huì)談。我當(dāng)然越來越擅長(zhǎng)這個(gè)了,但我希望一些讀者也能從我的錯(cuò)誤中吸取教訓(xùn)而不是再走彎路。

我決定簡(jiǎn)要介紹一下我的經(jīng)歷,因?yàn)橄鄬?duì)于典型的OSS經(jīng)歷我的有點(diǎn)不太符合常規(guī)。不管你信不信,我認(rèn)為我的整個(gè)職業(yè)生涯大概給不到20個(gè)不是我自己的項(xiàng)目做出過貢獻(xiàn)。

我的第一個(gè)OSS項(xiàng)目大概是我最成功的項(xiàng)目。我記得那時(shí)候我還在一家廣告公司工作,在為紐約的一個(gè)大型時(shí)裝品牌創(chuàng)建電子商務(wù)網(wǎng)站。我是團(tuán)隊(duì)的資深開發(fā)者,通常繁重的JS開發(fā)都是我干的。跟我一起回到j(luò)Query那時(shí)候的日子吧……

時(shí)尚電子商務(wù)比較有趣的一點(diǎn)是到處都是旋轉(zhuǎn)木馬。而且往往會(huì)有非常復(fù)雜非常有野心的設(shè)計(jì)。以至于現(xiàn)有的旋轉(zhuǎn)木馬/幻燈片庫(kù)都不夠靈活來支持他們提供給我的設(shè)計(jì),所以我開始從頭寫旋轉(zhuǎn)木馬,用CoffeeScript來寫。這玩意兒行得通,但是當(dāng)然并沒有讓我讓在同事當(dāng)中更受歡迎。

所以我看到一個(gè)很明確的需求。得有一個(gè)足夠靈活的旋轉(zhuǎn)木馬插件來支持設(shè)計(jì)師扔給我們做的任何事情,而且還有易用易于修改。于是我就寫了。為我們大家。然后我覺得它很有用,既然如此為什么不幫別人節(jié)省大量時(shí)間呢,于是我就把它開源了……

結(jié)果表明它的確幫別人省了大量時(shí)間,而且大家似乎都挺喜歡。在發(fā)布后的頭幾個(gè)月里,其熱度突破了天際。我對(duì)OSS還很陌生,對(duì)大家使用我的東西感到非常興奮,所以熱情高漲,甚至愿意徹夜加班去修補(bǔ)問題,推出新版,確保沒人能與之競(jìng)爭(zhēng)。

這些就不說這么多了,因?yàn)檫@篇文章是想提供一些提示的,不是講我的故事:最后發(fā)生的事情是我停止了項(xiàng)目的維護(hù)。我宣布了幾件事。我換工作了,所以我再也不需要旋轉(zhuǎn)木馬了。我已經(jīng)脫離了那個(gè)問題空間。React也出來了,我早早就開始研究,所以我對(duì)jQuery之類的東西再也沒興趣了。

但是最大的原因之一還是因?yàn)槲医钇AΡM了。我做得太辛苦了。評(píng)論里面?zhèn)€個(gè)都自以為是,說我們?nèi)绾尾粦?yīng)該使用旋轉(zhuǎn)木馬(即便我為了賺錢做得每一個(gè)項(xiàng)目都會(huì)有一個(gè),而且都是手工設(shè)計(jì)),我變胖了,我妻子發(fā)火了。

從此之后,我在不同領(lǐng)域又做了幾個(gè)流行的庫(kù),每一個(gè)都解決了一個(gè)不同的問題。我的最大恐懼之一是我再也不能寫出熱門的庫(kù)了,擔(dān)心點(diǎn)擊數(shù)不如人意。目前為止我仍能避免這件事情發(fā)生,雖然我還會(huì)時(shí)不時(shí)做一些蠢事出來,但是至今仍令我無法釋懷的還是對(duì)旋轉(zhuǎn)木馬項(xiàng)目的管理,那感覺就好像讓半個(gè)互聯(lián)網(wǎng)都失望了。

所以下面我要給大家介紹一些經(jīng)驗(yàn),希望你能夠利用好它們做出成功的項(xiàng)目,而不是留下遺憾。

入門

開源跟演講很像。許多人并不認(rèn)為自己推銷的東西足夠有價(jià)值。這純屬胡扯。如果你看過冒名頂替綜合征的東西的話,這完全是對(duì)的。每個(gè)人都有自己的獨(dú)特知識(shí)構(gòu)成,沒有一個(gè)人什么東西都懂完。你兜售的東西總會(huì)有人需要的。

我有兩個(gè)獨(dú)特優(yōu)勢(shì)1)看得開 2)自信心爆棚,所以我只管寫出來,但是我注意到這兩點(diǎn)對(duì)很多人都比較困難。

我的建議:

[[234464]]
盡管去做吧!

可能會(huì)發(fā)生的最糟糕的局面是什么?別人會(huì)指手畫腳?我來告訴你吧孩子,哪怕你把最完美、最有用、最令人印象深刻的代碼放到GitHub上,你猜怎么著?照樣有些混蛋會(huì)進(jìn)來吐槽發(fā)牢騷。這是不可避免的。最糟糕的情況下你也能學(xué)到一些東西。有人可能會(huì)說,“嘿這搞得性能很糟糕”你要么“呃我不會(huì)編程,算了我退出”,要么“哦哇哦,多謝你的提示,剛剛改好,現(xiàn)在好點(diǎn)了。”要成為把它做得更好的那個(gè)人。

那么你應(yīng)該開發(fā)什么呢?好吧,這個(gè)問題而可是價(jià)值百萬(wàn)美元的啊。

我是這么看的:

  • 你有一個(gè)問題
  • 對(duì)于這個(gè)問題你有一個(gè)解決方案
  • 你提供的這個(gè)解決方案包裝得非常好,大家都想用你的解決方案去解決自己的問題

那么我們就來談?wù)勅绾伟b的問題……

API設(shè)計(jì)

假設(shè)你有了自己的想法。你有一個(gè)問題,現(xiàn)在你已經(jīng)解決了這個(gè)問題。但是你還希望別人也用它對(duì)吧?以下就是一些提示告訴你如何讓別人也想用你的東西。

首先,要看看之前的技術(shù)和你的競(jìng)爭(zhēng)對(duì)手。如果別人的庫(kù)做的東西跟你的一樣,你就得有與眾不同的東西才行。假設(shè)說你想開發(fā)下一個(gè)lodash。好吧助你好運(yùn)。但除此以外,為了能爭(zhēng)取到lodash的市場(chǎng)份額,你得有吸引人之處。你的東西必須要有更小或者更快或者更好的API。知道為什么我會(huì)這么做了吧?

說到API設(shè)計(jì),需要有一些平衡。你可以做一個(gè)開箱即用不用做任何事情的庫(kù),可是這樣的話大家就會(huì)抱怨想要修改的東西。你可以做出最靈活、可配置型最強(qiáng)的庫(kù),可這樣一來你就會(huì)成為Tobias Koppers/ Sean T. Larkin,而大家就會(huì)抱怨自己要做配置的工作。(對(duì)不起Sean,我是被迫的。V4版做的很不錯(cuò)。)

你希望找到其中完美的平衡,既要盡可能方便使用,又能進(jìn)行必要的配置。在此之上,你希望保持簡(jiǎn)潔、明確以及可用。不要聰明過頭,否則的話你會(huì)惹毛所有人的。

我喜歡做的一件事是用非常明了但不聰明的方式寫源碼。因?yàn)檫@樣可以讓別人更容易做貢獻(xiàn)。東西是什么就按照什么命名,不要做自嗨式的編程,如果你要搞東西的話,要注釋一下為什么。

這段時(shí)間以來我沒寫過一行代碼,直到我完成了一個(gè)心目中想要的模擬API。如果你要把它做成真正的API的話是要花些時(shí)間的,但這是一個(gè)值得努力的好目標(biāo)。你會(huì)知道什么時(shí)候API做對(duì)了的,因?yàn)槟菚r(shí)候你會(huì)感覺喜歡上它。

準(zhǔn)備好發(fā)布

現(xiàn)在你已經(jīng)解決了你的問題,并且包裝得很好了。現(xiàn)在是是時(shí)候發(fā)布它了。但在你做之前,如果你希望別人使用的話還需要有些事情發(fā)生才行。

寫點(diǎn)該死的文檔。

這不是開玩笑。你的文檔得是有史以來寫出來的最好的文檔。避免用居高臨下的口吻去寫東西。你需要在開頭有類似標(biāo)題鏈接索引這類的東西。你的有個(gè)開頭章節(jié)解釋那些如何讓這玩意兒第一次跑起來的折磨人的細(xì)節(jié)。你需要把API的所有邊邊角角以詳細(xì)到荒謬的地步全都寫出來。

如果你有一個(gè)方法,你應(yīng)該把預(yù)期的參數(shù)、類型以及返回類型都寫進(jìn)文檔里面。你應(yīng)該說明它做什么。你應(yīng)該給出例子來解釋如何去使用它。讓別人很容易就能使用你的庫(kù)。

你應(yīng)該說明如何做貢獻(xiàn)。你應(yīng)該說明如何運(yùn)行所有這些編譯步驟。如果你引用了另一個(gè)項(xiàng)目,或者概念,要提供鏈接。如果你引用了任何可鏈接的東西,鏈接過去。

要徹底詳細(xì),結(jié)果會(huì)大不一樣。

寫一些該死的測(cè)試。

給我仔細(xì)聽清楚。你應(yīng)該把測(cè)試覆蓋到合理的占比。原因是:

  • 這會(huì)激發(fā)你對(duì)你的庫(kù)健康情況的信心
  • 這會(huì)讓你充滿自信地合并PR(Pull Request)
  • 這會(huì)讓你在暫停項(xiàng)目一段時(shí)間之后自信地繼續(xù)工作下去

有一次我發(fā)布了一個(gè)庫(kù),但沒有經(jīng)過測(cè)試,Paul Irish就說了,“如果做過一些測(cè)試的話就酷了。”自然,我的反應(yīng)是,“哦天哪,是Paul啊”然后開始寫測(cè)試。寫了那些測(cè)試后我一共找到了15個(gè)BUG!謝謝你Paul!

如果你寫了任何東西,那就繼續(xù)寫點(diǎn)測(cè)試。求你了。這是錦上添花的事情。這可以省掉我很多時(shí)間和痛苦。

寫完測(cè)試后,把它在Travis或任何持續(xù)集成平臺(tái)上設(shè)置好,你就能高枕無憂了。

使用類型

測(cè)試沒有抓到的bug,type都能抓到。現(xiàn)在如果你不對(duì)你的JS劃分類型,這種舉動(dòng)就像開車不系安全帶一樣。此外,隨著越來越多的人使用TS(TypeScript)或者Flow,他們都假設(shè)type已經(jīng)就位。用類型來寫庫(kù),導(dǎo)出和提供類型,你會(huì)感謝我的。要么讓別人到后面再給它標(biāo)注類型,這將是第三方風(fēng)格的,過時(shí)的可能還是錯(cuò)誤的。你看著辦吧。

Repo(代碼倉(cāng)庫(kù))的先決條件

  • README.md
  • CONTRIBUTING.md
  • LICENSE.txt
  • 一個(gè)有效的、填好的package.json

呃,README。你永遠(yuǎn)應(yīng)該把LICENSE.txt放進(jìn)去,否則的話一些人就用不了你的代碼庫(kù)。授權(quán)用MIT就可以了。不要自作聰明自己寫一些授權(quán)聲明。只用MIT。寫吧。

CONTRIBUTING.md不僅是指出如何做這個(gè)項(xiàng)目的好地方,也是鏈接到/添加到你的行為準(zhǔn)則的好地方。不管你同不同意這個(gè)概念,一定要增加行為準(zhǔn)則,相信我。這會(huì)讓某些人對(duì)貢獻(xiàn)感到舒服并且參與進(jìn)來,今后你要是有問題的話,這里也是把討厭的人踢走時(shí)告訴對(duì)方原因的一個(gè)很好的指示牌。

錦上添花

假設(shè)你已經(jīng)寫出了很棒的文檔。API設(shè)計(jì)的很好,所有的先決條件都就位了,并且你已經(jīng)準(zhǔn)備好讓你的代碼庫(kù)看起來比較像樣了。但我還有些意見。

勛章。沒有東西能像勛章那樣讓你的代碼庫(kù)看起來更加像樣了。勛章太多當(dāng)然不好,但如果你納入一些有用的勛章的話,這就是正統(tǒng)的印記。這說明你很上心。

像npm版本,測(cè)試狀態(tài),覆蓋率數(shù)據(jù)等這樣的東西也是很好的。

此外,Markdown支持裸HTML,所以你可以讓你的repo標(biāo)題更好看點(diǎn)。把東西居中排列,添加引言,美化一下。

如果你真的想拿金牌的話,學(xué)著這里(https://github.com/kentcdodds/all-contributors)一樣增加貢獻(xiàn)者條目。

認(rèn)識(shí)給項(xiàng)目做貢獻(xiàn)的人真的是非常好。

發(fā)布 & 營(yíng)銷

好了現(xiàn)在一切就緒了,是時(shí)候閃亮登場(chǎng)了。怎么才能讓別人過來看看并且使用你的新庫(kù)呢?

我的建議非常具體。周一美東時(shí)間12凌晨發(fā)布。這是歐洲一天的結(jié)束,是紐約午休時(shí)間,而舊金山還在任何事情還沒做完的早上。這時(shí)候有大量的受眾正在滑動(dòng)手指,在互聯(lián)網(wǎng)上閑逛呢。

至于怎么發(fā)布,我想Twitter是第一站。做出大膽的聲明。

“厭倦了用鍵盤寫CSS?猜猜看,現(xiàn)在你可以用Xbox控制器來寫了!”

“Stack Traces讓你很沮喪?如果是在VR里面跟蹤這些會(huì)怎么樣?”

開干吧。但要有吸引力。使用圖片。或者視頻。要直截了當(dāng)讓人明白它是做什么的以及為什么他們要使用它,附上鏈接。這個(gè)流程應(yīng)該這樣:

  • 瀏覽Twitter
  • 噢看看這條推特
  • 噢MD,這個(gè)東西居然能做這個(gè)?!
  • 點(diǎn)擊鏈接
  • 進(jìn)入到代碼庫(kù),噢它看起來挺像那么回事的
  • 去到入門
  • 拷貝/粘貼到終端,爽一把
  • [點(diǎn)擊星星按鈕]

你的代碼庫(kù)受歡迎程度可能要取決于粉絲數(shù)以及你向他們推銷的技術(shù)方向,但這些一般都是有用的招數(shù)。除了Twitter用戶以外,在HN(HackerNews)和Reddit上面發(fā)布也效果不錯(cuò)。

此外,需要的話還可以跟著發(fā)布一起發(fā)表一篇博客文章,尤其是如果你是在公司的旗幟下做這件事的話。你可以用更長(zhǎng)一點(diǎn)的形式展示出來。

要大膽。要有信心。準(zhǔn)備好給你的東西留夠版面。

維護(hù)

我很害怕說到這一部分,因?yàn)檫@是通常是我經(jīng)歷最糟糕的地方。不過我還是很樂意給你們談?wù)勎覐母鞣N失敗中吸取到的教訓(xùn),希望你們看了能夠知道會(huì)發(fā)生哪些事情。

現(xiàn)在你已經(jīng)發(fā)布了你的庫(kù)。接下來可能會(huì)有兩種情況發(fā)生:

1、它失敗了。

誰(shuí)會(huì)在意呢。我就經(jīng)常發(fā)生這種事情。重頭再來過唄。有時(shí)候一些東西火不起來。這未必就意味著你很糟糕或者你的想法不行,只是時(shí)機(jī)不對(duì)罷了。重要的是你做出來了,你做對(duì)了。下一次你再開發(fā)的時(shí)候,你為成功所做的準(zhǔn)備就更加充分了。給自己鼓鼓勁,下次加油吧!

2、它火了。

這時(shí)候才是你真正麻煩的時(shí)候。大家喜歡你的東西。他們?cè)谕铺厣厦孓D(zhuǎn)發(fā)你的東西。你得不斷改bug回答問題并且為你的想法辯護(hù)。對(duì)此我有一些看法。

首先,如果任何人對(duì)折騰你的庫(kù)感興趣的話,讓對(duì)方成為維護(hù)者。再重復(fù)一遍:

如果任何人對(duì)折騰你的庫(kù)感興趣的話,讓對(duì)方成為維護(hù)者。

原因是:時(shí)間會(huì)流逝,新的技術(shù)會(huì)出現(xiàn),問題也會(huì)改變。你也會(huì)變。但你的repo還在那里。如果你你委派別人的話,你就會(huì)碰上糟糕的時(shí)刻。你會(huì)因?yàn)榫S護(hù)而筋疲力盡,你會(huì)對(duì)這個(gè)項(xiàng)目心懷怨恨,這東西最后會(huì)變成你的負(fù)擔(dān)。相信我,這件事情授權(quán)給別人干。

接下來,我想談?wù)劯讼嗵幍氖虑椤?/p>

這是開源最大部分之一,在很多時(shí)候甚至比寫代碼還要重要。等著吧,大家會(huì)吐槽你。他們各個(gè)都覺得自己有這個(gè)資格。他們會(huì)公開蔑視你的項(xiàng)目。

讓那幫家伙見鬼去吧。

我已經(jīng)花費(fèi)了那么時(shí)間在做東西上面,現(xiàn)在我希望能把精力放在別的地方。相信我,讓那些噴子見鬼去吧。

不過,要帶著警惕的眼光去辨別那些噴子。你知道,有時(shí)候有些人可能看起來像是個(gè)噴子,但其實(shí)不是。要考慮到這個(gè),要知道你是把代碼發(fā)布給全世界。要記住并不是所有人都講你的母語(yǔ)。

想象一下你想給一個(gè)用俄語(yǔ)寫的repo做貢獻(xiàn)。但是你不懂俄語(yǔ)。于是你Google Translate“嘿這里有個(gè)什么時(shí)候?qū)崿F(xiàn)這個(gè)的時(shí)間表)”。然后比方說Translate返回的俄語(yǔ)意思變成“這個(gè)什么時(shí)候能完成。”乍一眼看過去你可能會(huì)覺得“嘿這個(gè)家伙有什么問題啊”,后來你才意識(shí)到在互聯(lián)網(wǎng)上意思的傳達(dá)做得不是那么好,經(jīng)過翻譯后就更加了。

要小心這個(gè),有時(shí)候他們不是情緒失控,只是不講你的語(yǔ)言。

除此以外,我的最好建議是對(duì)你的PR(pull request)要有牢靠的CI(持續(xù)集成),要回答問題,要有PR模板。在代碼庫(kù)上你會(huì)遇到一堆的問題和PR,如果你想管理好這些的話,有一些基本規(guī)則是必要的。我的建議:

  • 要求重現(xiàn)案例或者失敗的測(cè)試用例
  • 要求提供bug發(fā)生的情況

某些一次性的bug意思哈沒有時(shí)間找出來的。讓用戶向你證明這個(gè)bug是存在的,并且讓你能夠方便地識(shí)別出來,這樣你就有時(shí)間去解決問題了。

此外,在CONTRIBUTING.md的某個(gè)地方指出大家應(yīng)該在處理PR前在issue里面跟你先討論一下想法是值得的。全世界最悲哀的事情莫過于有人非常努力地處理一個(gè)永遠(yuǎn)也不會(huì)得到接受的PR。

說到接受PR,本節(jié)中我想告誡你的最后一件事是你不必去做別人要求你的東西。因?yàn)榍谟脩粑揖屠速M(fèi)了很多力氣去做個(gè)API出來。

大多數(shù)時(shí)候,一些人要求一樣?xùn)|西只是為了解決他們自己的一個(gè)孤立的問題,但是那個(gè)問題對(duì)于廣大的社區(qū)是沒有價(jià)值的。要警惕對(duì)你的API的任何修改,因?yàn)槟切┯兄鴺O端需求的人會(huì)把你的API搞砸的。要做對(duì)核心庫(kù)是對(duì)的東西,而不是幫一些搞滑翔機(jī)遙控系統(tǒng)的家伙去解決問題。

哦我撒謊了,還有一件事。要恰當(dāng)?shù)厥褂谜Z(yǔ)義版本控制。

求求你了。否則的話每個(gè)人都會(huì)失去理智的。還有推送標(biāo)簽。還要寫版本說明。詳細(xì)的版本說明。隨著你的庫(kù)的不斷演進(jìn),讓投入到里面的人知道發(fā)生了什么是非常重要的。

要透明、清晰、有信息量。否決事情要有寬限期。如果別人投資了你的庫(kù)而你的修改讓他們的應(yīng)用出問題的話,他們是不會(huì)高興的。用富有同情心的方式更新你的庫(kù)。

結(jié)論

到了現(xiàn)在,你大概已經(jīng)意識(shí)到我不僅做OSS很糟糕,而且寫東西也是。但是有人要我寫,于是我就寫了。我希望這篇流水賬能夠幫助一些希望發(fā)布自己的開源項(xiàng)目的人,讓他們能節(jié)省一些時(shí)間,以及避免破壞到他們的心情。

這里面有很多的坑,但是如果你每一樣都能照顧到的話,你的日子就會(huì)比我更加好過,成功的機(jī)會(huì)也會(huì)更大。

最后,我還有一個(gè)建議。除非你真的想做這個(gè),否則的話不要做。不要覺得這是你必須做的。不做這個(gè)你也能找到工作。不做這個(gè)你也能成為一名好的開發(fā)者。我從中獲益良多,也非常享受做這個(gè),但是我永遠(yuǎn)也沒法把免費(fèi)花在那些庫(kù)上面的時(shí)間給要回來了,我本來可以用來跟家人待在一起或者追求我的愛好或者做任何可以給我?guī)硎杖氲氖虑椤W鲞@個(gè)因?yàn)槟阆胱觥H绻銓?duì)自己開發(fā)的東西沒有激情的話,你可能是不會(huì)成功的。

責(zé)任編輯:未麗燕 來源: 36氪編譯
相關(guān)推薦

2015-06-24 10:01:47

2019-12-17 15:10:21

Python字符串代碼

2010-01-04 09:40:12

雙i7服務(wù)器主板

2010-11-17 15:55:31

VMware虛擬機(jī)

2021-01-14 07:46:08

Windows 7微軟操作系統(tǒng)

2021-11-11 12:05:17

Python代碼項(xiàng)目

2019-07-22 06:33:55

R語(yǔ)言編程函數(shù)

2021-12-14 10:55:14

Python元素數(shù)據(jù)

2017-07-21 11:12:51

跳線裝機(jī)技巧

2018-01-25 09:15:16

機(jī)房機(jī)柜走線

2012-12-10 18:53:03

開源JBoss

2019-01-07 16:35:58

微軟開源Java

2013-12-25 13:26:15

開源開源專訪谷歌

2018-01-08 15:07:15

java項(xiàng)目后臺(tái)

2019-01-22 15:37:01

GitHub代碼開發(fā)者

2015-11-05 12:02:10

2021-02-20 17:36:30

Google開源項(xiàng)目漏洞

2022-05-16 15:37:32

開源軟件

2023-02-08 16:56:07

2014-05-29 23:18:31

開源開源價(jià)值
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 亚洲精品一区二区三区在线 | 国产a级毛毛片 | 日本a视频 | 在线一级片 | av在线免费不卡 | 欧美一区二区在线观看 | 精品国产一区二区三区久久久蜜月 | 午夜天堂 | av性色全交蜜桃成熟时 | 激情一区二区三区 | 久久伦理中文字幕 | 国产精品成人一区二区三区 | 亚洲黄色av | www.日韩在线 | 国产精品乱码一区二区三区 | 亚洲成人在线视频播放 | 久久婷婷国产麻豆91 | 日日夜夜天天干 | 国产乱码精品一区二区三区五月婷 | 九九精品在线 | 9久久精品 | 欧美日韩精品一区二区天天拍 | 伊人网一区 | 先锋资源吧 | 欧美毛片免费观看 | 欧美一区二区三区的 | 一道本一区二区 | 精品视频一区二区三区在线观看 | 国产精品99久久久久久大便 | 日本精品视频一区二区 | 97伦理电影网 | 狠狠操天天操 | 欧美视频成人 | 懂色中文一区二区在线播放 | 91麻豆精品国产91久久久久久 | 亚洲精品中文字幕在线观看 | 亚洲 欧美 日韩 在线 | 欧美在线视频一区二区 | 久久国产一区 | 日韩欧美在线观看视频 | 久热国产精品视频 |