我是如何把github開源項目做到5300+ star的

前言

我開發(fā)的開源文檔工具在github上上升到了5300+的star ,受到了部分開發(fā)者的歡迎。于是便想寫與大家分享一下我在整個創(chuàng)作過程中所用到的技術(shù)以及相關(guān)技能登馒。

任務管理

無論是做自己規(guī)劃的產(chǎn)品功能式曲,還是做用戶反饋過來的bug,最終都需要把這些點細化成一個個單獨的小任務发笔,串聯(lián)執(zhí)行(畢竟自己是單個人力)盟萨。在這點上,我主要是利用團隊看板來實現(xiàn)我的任務管理了讨。團隊看板工具有好多捻激,搜索一下就好,我個人目前在用tower.im

看板上我新建五個清單前计,分別是“在做”胞谭、“要做-高優(yōu)先級”、“要做-低優(yōu)先級”男杈、“待定”丈屹、“遺留問題”,我這樣分類是有技巧的伶棒。首先旺垒,它有優(yōu)先級劃分,保證先做重要的事肤无。其次袖牙,它有狀態(tài)管理,方便我隨時中斷某個任務舅锄,過一段時間再回來繼續(xù)任務鞭达。同時,它也能應對新任務——比如說新需求進來皇忿,我先放在“待定”畴蹭,等有空了再分配到其他清單去。最后鳍烁,它還有“遺留問題”清單叨襟,可以讓我不在某個“疑難雜癥”上卡住太多時間,快速推進下一個任務幔荒。

本地開發(fā)

用Linux或者MAC會非常方便開發(fā)糊闽、搭建測試環(huán)境等,對開發(fā)者的方便是毋庸置疑的爹梁。但是電腦有時候需要玩游戲右犹,需要裝一些專業(yè)大型軟件。從兼容性和廣泛性的角度來考慮姚垃,我個人還是使用windows系統(tǒng)念链。在win上,我使用的是Vagrant + virtualbox這個組合。Vagrant是一套工具掂墓,幫助你快速在win系統(tǒng)上谦纱,利用virtualbox搭建起虛擬機,從而方便使用linux或者MAC(比如上架蘋果app的時候我需要MAC虛擬機)君编。關(guān)于這點跨嘉,可以參考我?guī)啄昵皩懙囊黄坛蹋篵log.star7th.com/2015/06/1538.html

代碼管理

我用git作為代碼版本管理工具,同時使用tortoisegit進行可視化操作吃嘿。
說一下我是怎么維護官網(wǎng)在線版showdoc和開源版showdoc的祠乃。我在自己的服務器安裝一個私有版的gogs作為私有g(shù)it管理平臺。功能開發(fā)好了唠椭,我再推送到github上去。官網(wǎng)版和開源版一開始是同一個倉庫里的不同分支忍饰。后面它們的差異(尤其是后端代碼的差異)越來越大贪嫂,所以我干脆把它們分成兩個不同的倉庫了。做開發(fā)的時候艾蓝,我一般是現(xiàn)在官網(wǎng)版上做開發(fā)以及測試驗證力崇,然后再用tortoisegit的代碼修改差異比較功能,把功能遷移到開源版去赢织。

說一下分支管理策略亮靴。我至少建立兩個分支——主分支和開發(fā)分支。新功能會在開發(fā)分支做于置,驗證好了再合并到主分支來茧吊。用開發(fā)分支的時候也有技巧。比如說八毯,一個大的功能可以基于開發(fā)分支再新開一個分支去做搓侄。例如我今天想做A功能,那就在A分支上操作话速。但是A功能遇到瓶頸了讶踪,這會兒我暫時沒精力去找bug,所以此時我可以再基于開發(fā)分支開啟B分支泊交,繼續(xù)做B功能乳讥。這很重要,因為在人力有限的情況下廓俭,我做什么事情都是串聯(lián)的云石,同一時刻只能做一件事。這樣的策略有利于保證自己隨時中斷研乒、隨時上手任務留晚,靈活地安排不同的時間去處理容易的或者棘手的問題。這個過程也需要配合上面說到的團隊看板使用。中斷前要記錄好進度错维,方便自己隨時恢復工作奖地。

shell自動化腳本

我為showdo寫了三個shell自動化腳本。其作用分別是自動化部署showdoc赋焕,自動生成api文檔到showdoc参歹,自動生成數(shù)據(jù)字典到showdoc。之所以選擇shell而不是其他腳本語言(如python)隆判,是因為shell基本可以運行在絕大部分linux上犬庇,部分運行到win上(需要安裝工具),兼容性超好侨嘀,依賴非常少臭挽。根據(jù)反饋,受到的好評比負面評論多得多咬腕。自動化腳本大大節(jié)省了使用者安裝環(huán)境的麻煩欢峰,降低了showdoc的使用門檻。showdoc大部分的用戶不是php開發(fā)者涨共,要他們安裝php環(huán)境還是挺折騰的纽帖。有了一鍵腳本,他們用得方便举反,我也省心懊直,不需要在解決新手反饋上花太多功夫。這個方法是具有普適性的火鼻,并且語言無關(guān)(因為一鍵腳本使用docker跑服務)室囊。是可以大量應用到開源項目中,非常有利于開源項目的代碼分發(fā)魁索。

順便強調(diào)一下波俄,做web應用開發(fā)的人,尤其需要克服一下對shell腳本的疏遠感蛾默。我以前以web開發(fā)為主的時候就會潛意識地疏遠shell懦铺。在騰訊的時候向另一個技術(shù)棧的同事請教了下,發(fā)現(xiàn)其實還是蠻簡單的支鸡。只是因為自己過去心理上的疏遠感導致自己沒想過要去寫shell冬念。跨過這個心理檻牧挣,就會擴展自身的能力邊界急前,寫起來跟其他語言沒有太多區(qū)別,僅僅是需要多搜索查詢下語法而已瀑构。

后端開發(fā)

可能是因為showdoc僅是一個小產(chǎn)品裆针,涉及到的后臺邏輯并不復雜刨摩,所以我在開發(fā)后端花的時間不多,基本上都是CRUD世吨,對數(shù)據(jù)庫進行增刪改查操作澡刹。需要多動點腦力的地方在于團隊管理功能,新建多幾張數(shù)據(jù)表聯(lián)合實現(xiàn)精細化權(quán)限控制耘婚。

showdoc后端主要采用的是國產(chǎn)框架thinkPHP罢浇。這個框架有好也有不好。不好的地方在于它的框架約定沐祷、生態(tài)共享比較一般嚷闭,好的地方在于它可以快速擼出一個東西來,而且兼容性還可以赖临。這是四年前我剛開發(fā)showdoc時的決定胞锰,后來也懶得換框架重寫了,所以沿用至今兢榨。技術(shù)是相對落后了一些嗅榕,但是也勝在兼容性好,可以兼容老的php環(huán)境和一些老的服務器色乾。這個還是挺重要的誊册,因為showdoc是開發(fā)輔助性質(zhì)的工具领突,協(xié)助寫文檔暖璧。兼容性越好就越容易被各種各樣的群體接受。個人覺得這一點比用各種先進技術(shù)要更實用一些君旦。當然了澎办,如果是現(xiàn)在新開發(fā)其他項目,我應該會使用laravel金砍,或者NodeJS寫的eggjs局蚀。

前端開發(fā)和UI

我在前端開發(fā)上花費的時間比后端開發(fā)時間多很多∷〕恚可能是因為這是個體驗型產(chǎn)品琅绅,需要把前端體驗做好。起步一個產(chǎn)品的前端頁面時候鹅巍,我建議一定要選好一個UI框架千扶。比如我選擇的是ElementUI做showdoc,而runapi則使用museUI(runapi是輔助showdoc用的一個在線api測試工具)骆捧。

showdoc用的編輯器是editor.md澎羞,是幾年前的產(chǎn)品。雖然說它代碼組織方式可能有點落后敛苇,且原作者似乎有放棄維護的趨勢妆绞。但我覺得它功能強大且簡潔美觀,所以我花了時間將它封裝成了vue組件,并且修改其源碼增加了安全性括饶。

項目拖拽和頁面排序我用的是vue組件vuedraggable株茶,還蠻好用的。以后有拖拽的需求我估計還是用它巷帝。

圖標設計方面忌卤,可以使用UI框架內(nèi)置的字體圖標,也可以用阿里媽媽的矢量圖標庫楞泼〕刍玻或者自己使用Iconion進行圖標設計。這里我強調(diào)一下Iconion堕阔。這個工具可以非常簡單快捷地使用一些預定的圖案和背景棍厂,組合成一個快速可用的產(chǎn)品圖標。showdc的產(chǎn)品圖標就是這樣制作的超陆,快速省時地做到媲美專業(yè)的效果牺弹。如果以后把產(chǎn)品做大了,可以考慮請設計師設計时呀。但在項目前期张漂,用Iconion就夠了。

在這里要提一下前端技能的重要性谨娜。雖然說UI框架以及相應的工具能夠幫助你節(jié)省很多時間航攒。但如果想做好一個產(chǎn)品的體驗,那么其涉及到的UI和交互可能超出框架自帶的范圍趴梢。因此自己必須學會使用原生css漠畜,會js交互,會封裝組件坞靶。而且憔狞,前端技能跟下面要說的app多端開發(fā)也有幫助。

app多端開發(fā)

關(guān)于移動app產(chǎn)品原型設計彰阴,我很建議使用“墨刀”來做簡單的原型規(guī)劃瘾敢。有了一個可視化的原型,真的能節(jié)省很多大腦時間尿这,讓你在開發(fā)階段的時候可以專注代碼簇抵,而不需要寫一下代碼,又回頭思考下一步做什么功能妻味,這樣的來回切換相當?shù)⒄`效率正压。

app開發(fā)我用的是uniapp,使用html5等前端技術(shù)把代碼封裝成手機本地app责球,包括安卓app焦履、蘋果app拓劝,甚至小程序。這種技術(shù)幾年前就有了嘉裤,但是性能一直不溫不火郑临。2019年的時候我看到了這塊發(fā)展得還是可以的。所以就產(chǎn)生了做showdoc app端的想法屑宠。不過由于showdoc重在pc web端厢洞,手機只是起到輔助作用,所以我沒有很精心去做典奉。大概把web版簡化一下躺翻,復用一些組件,重寫下前端卫玖,然后就上線了公你。順便說一下,我做得比較精細化的app是時光樹洞(blog.star7th.com/2019/09/2380.html) 假瞬,這款app的UI就花了點心思陕靠。

如果要讓我評價這種混合型app和原生app,我會說脱茉,肯定原生app最好剪芥。只是出于成本和人力的考慮,對一些展示型的琴许、交互體驗要求不那么高的產(chǎn)品税肪,可以采用這種h5技術(shù)處理。大家如果在驗證市場階段虚吟,可以采用類似技術(shù)快速做一個可用產(chǎn)品出來寸认。

此外說一下蘋果app上架的問題签财。我是利用虛擬機安裝了一個黑蘋果系統(tǒng)串慰,然后裝相應工具,把app上傳到蘋果商店去唱蒸。關(guān)于如何開通蘋果開發(fā)者賬號邦鲫,如何在虛擬機安裝蘋果系統(tǒng),這個你可以自行搜索神汹。

用戶反饋和社區(qū)運營

一開始庆捺,用戶反饋消耗了我不少精力。敢情自己成為一個客服了屁魏。后來我開始做了一些改變滔以,基本把自己從這些反饋中抽身出來了。

首先我分開了官網(wǎng)在線版和開源版的反饋氓拼,開源版的反饋統(tǒng)一到github(gitbug的使用門檻能過濾掉一些非常新的新手你画,避免新手問題)抵碟,在線版的反饋統(tǒng)一發(fā)郵箱。有功能或者bug要改坏匪,我先記在團隊看板拟逮。而對于一些常見問題,我整理好了文檔适滓,和一些固定的回復術(shù)語敦迄。另外我也開了三個qq群,供showdoc使用者自身交流凭迹。不過我要提的一點是罚屋,千萬別試圖回答qq群里提的每一個問題,會把人逼瘋的嗅绸。所以我更改了群公告沿后,改寫了群定位,將qq群定位為用戶自行交流的地方朽砰。讓熱心用戶去回答新手在使用showdoc時遇到的問題尖滚。而我則只需要很偶爾看一下。需要官方的支持還是讓用戶走github或者郵件通道瞧柔。

不過值得一提的是漆弄,我這種運營思路是不適合所有團隊的。我是人力有限造锅,效率優(yōu)先撼唾,所以過濾了很多不太必要的反饋。假如說有很足夠的人力哥蔚,我倒建議可以多花時間幫助用戶解決問題倒谷,既擴大用戶量,又提高產(chǎn)品口碑糙箍。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末渤愁,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子深夯,更是在濱河造成了極大的恐慌抖格,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件咕晋,死亡現(xiàn)場離奇詭異雹拄,居然都是意外死亡,警方通過查閱死者的電腦和手機掌呜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進店門滓玖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人质蕉,你說我怎么就攤上這事势篡∷鸾” “怎么了?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵殊霞,是天一觀的道長摧阅。 經(jīng)常有香客問我,道長绷蹲,這世上最難降的妖魔是什么棒卷? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮祝钢,結(jié)果婚禮上比规,老公的妹妹穿的比我還像新娘。我一直安慰自己拦英,他們只是感情好蜒什,可當我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著疤估,像睡著了一般灾常。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上铃拇,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天钞瀑,我揣著相機與錄音,去河邊找鬼慷荔。 笑死雕什,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的显晶。 我是一名探鬼主播贷岸,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼磷雇!你這毒婦竟也來了偿警?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤倦春,失蹤者是張志新(化名)和其女友劉穎户敬,沒想到半個月后落剪,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體睁本,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年忠怖,在試婚紗的時候發(fā)現(xiàn)自己被綠了呢堰。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡凡泣,死狀恐怖枉疼,靈堂內(nèi)的尸體忽然破棺而出皮假,到底是詐尸還是另有隱情,我是刑警寧澤骂维,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布惹资,位于F島的核電站,受9級特大地震影響航闺,放射性物質(zhì)發(fā)生泄漏褪测。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一潦刃、第九天 我趴在偏房一處隱蔽的房頂上張望侮措。 院中可真熱鬧,春花似錦乖杠、人聲如沸分扎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽畏吓。三九已至,卻和暖如春卫漫,著一層夾襖步出監(jiān)牢的瞬間庵佣,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工汛兜, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留巴粪,地道東北人。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓粥谬,卻偏偏與公主長得像肛根,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子漏策,可洞房花燭夜當晚...
    茶點故事閱讀 42,828評論 2 345

推薦閱讀更多精彩內(nèi)容