Star 雖好矢劲,可不要貪杯哦。
兩年前在做 Annual Review 訂下一年的目標(biāo)時甸各,想著寫一個開源框架垛贤。去年訂下今年的目標(biāo)時,仍然繼續(xù)著這樣的想法趣倾。今年又要制定下一年的目標(biāo)聘惦,2333~~。
不久前儒恋,在 GitHub Ranking 上看到自己的 star 數(shù)(star 不是設(shè)計用于做“點贊”的善绎,而是用來收藏的)時,發(fā)現(xiàn)已經(jīng)快 20000 了诫尽。然后把自己的項目過了一遍禀酱,發(fā)現(xiàn)沒有一個比較好的代表性框架,要么是應(yīng)用箱锐,要么是電子書比勉。
前 8 個項目里,除了 Growth 應(yīng)用以外驹止,其他的都是電子書內(nèi)容——六本電子書加起來的 star 數(shù)有 10619,果然是騙 star 的观蜗。我只能盡力地去想想:為什么事情會變成這樣了臊恋?
從創(chuàng)建開源框架說起
創(chuàng)建開源框架和創(chuàng)建創(chuàng)建開源項目是不一樣的,前者你服務(wù)于開發(fā)者墓捻,后者你服務(wù)于用戶抖仅。
兩年前在做 Annual Review 的時候,想著未來的一年里可以做一個開源框架試試砖第。那時剛畢業(yè)不久撤卢,對開源世界的各種游戲規(guī)則不是很了解:開源并不是將代碼提交上去,然后就會一下子火起來梧兼。雖然我們可以在短期內(nèi)賺上一些眼球放吩,但是真正要將它采用到項目上的人不多。
當(dāng)時羽杰,我遇到的最主要的問題是:想?yún)⑴c到項目的人并沒有遇到足夠的能力渡紫。你還需要花費大量的時間去教他們到推,鼓勵 GitHub 新手并不是一件容易的事。有時我需要在接受他的 PR 后惕澎,再修改他的代碼莉测。并且人們提交 PR 可能是出于不同的原因。
然后唧喉,知道了開源世界還有一個游戲規(guī)則是:誰的影響力大捣卤,誰就能產(chǎn)生更廣泛的影響。如 Virtual Dom 并不是 Facebook 首創(chuàng)的八孝,但是卻因為 FB 火的董朝; 松本行弘在寫下 mruby 的 README 時(印象中是這個項目),star 數(shù)就已經(jīng)過 1k 了唆阿。這種例子數(shù)不勝數(shù)益涧,要么是在推廣上花了力氣,要么個人驯鳖、公司有著更大的影響力闲询。
一年前,稍微改變了下策略:暫時以培養(yǎng)人為主浅辙,同時想著做一個合適的開源框架——只是在今年看來扭弧,前端領(lǐng)域已經(jīng)沒有合適的地方可以造輪子了。
在 GitHub 上有一個很常見的問題是记舆,大多部分項目的維護者就是發(fā)起人——如果這個發(fā)起人發(fā)生意外了鸽捻,那么這個項目怎么辦。如果這是一個很火的項目泽腮,它就存在著巨大的風(fēng)險御蒲;同時這可能也說明了,缺乏一套合理的機制诊赊。
你的開源項目不僅僅需要一個使用文檔厚满,還需要一個相關(guān)設(shè)計思想的文檔、路線圖碧磅、未來計劃等等碘箍。
去年年底寫總結(jié)的時候,想到可以 RePractise 文章為基礎(chǔ)來培養(yǎng)人鲸郊,于是就有了 Growth 的三個項目:
- 應(yīng)用:Growth
- 電子書:《Growth:全棧增長工程師指南》
- 電子書:《Growth:全棧增長工程師實戰(zhàn)》
如今 Growth 已經(jīng)有了過萬的用戶丰榴,每天活躍的用戶數(shù)也接近 300 了。第一步看上去很成功秆撮,但是下一步怎么走呢四濒?
下一個開源項目
后來我開始在思索一個問題,創(chuàng)建一個開源框架是必須的嗎?
在編寫 Growth 電子書的時候峻黍,我發(fā)現(xiàn)一個好的軟件工程實踐遠遠比一個易上手的框架重要多了复隆。框架本身是易變的東西姆涩,過去你在用 Backbone挽拂,現(xiàn)在你在用 React.js;過去你在用 Angular.js骨饿,現(xiàn)在你在用 Vue亏栈。會不會使用某個框架,并不是區(qū)分你是不是一個有經(jīng)驗的開發(fā)者的標(biāo)準(zhǔn)宏赘。
一直將焦點關(guān)注于學(xué)習(xí)不同的框架的使用是有問題的绒北,一個在校生可以輕松地比你了解某個框架的原理——你白天在工作,而他整天在學(xué)習(xí)察署。這時你很容易就失去競爭力了闷游,你需要從框架之外了解更深層次的東西。一個好的框架并不能讓你寫出一段好的代碼贴汪。
如果中國人的思想不覺悟脐往,即使治好了他們的病,也只是做毫無意義扳埂。
這算是我為自己在 GitHub 下的 Markdown 的自辯吧——誰讓我一直有寫作的沖動呢业簿。
不過我仍然還有一些想法,只是還沒有抽出足夠的時間去思考這樣的事阳懂。
GNU/Linux 的桌面梅尤。這是幾年前的一個想法了,當(dāng)時 GNU/Linux 的那些操作系統(tǒng)上都沒有一個好玩的桌面岩调,不過感覺這個坑太深了巷燥,就沒有進行了。
家居智能中心号枕。我仍然對于大學(xué)學(xué)的知識有點念念不忘矾湃,雖然已經(jīng)寫了一本書,但是硬件還是相當(dāng)?shù)拇碳ざ槌巍Nㄒ坏膯栴}是:連房子都沒有,怎么做智能家居霉咨。
圖形框架蛙紫。這是我之前在做一個圖形界面的時候,發(fā)生沒有一個合適的框架可以滿足我的要求途戒。然后我就在想坑傅,還是自己做一個吧。
不過喷斋,最好的開源項目就是自己平時用的唁毒。于是蒜茴,我開始將寫各種工作來提自己使用——如現(xiàn)在在用的這篇微信編輯工具:mdpub。
最后浆西,我做了一個簡單的 HTML 5 動畫來記錄這一時刻粉私,作為這一個里程碑的記念:20k/。但愿明年的工資能趕上 star 數(shù)~