每個程序員都或多或少接觸過Github,至少是據說過吧。而Github最大的好處是在於程序員能夠不用付出任何費用,能夠在上面參考、借鑑甚至是照搬其餘人貢獻的項目,由於這一切都是開源的。另外,任何一個Github用戶也能夠在上面對本身感興趣的項目作出貢獻。所謂貢獻,就是對已有的代碼進行更正、優化、開發等操做,讓項目發展得愈來愈棒。並且,Github的Star機制讓項目的受歡迎程度獲得很好的展現。若是您去Github上搜索一個Vue的後臺管理模板,您極可能會選擇幾萬Star的Vue-Element-Admin(就像您去挑選晚餐地點,通常會去大衆點評上選評價足夠高的餐廳)。千萬別小看Star這樣相似點讚的機制,這些Star的背後是大多數程序員的承認,Github Star數量可比朋友圈的點贊數量要有技術含量得多。我不是在吹捧那些點贊數多的項目,我只是在強調一種增長技術影響力的方式:打造一個上千Star的Github項目。Github做爲世界上最大的開源項目管理中心,可讓任何人有機會實現這個目標。前端
另外,做者只是一個普通人,是一點一滴嘗試了不少辦法、作出了不少努力才收穫了上千Star,並無不少大佬那樣更出色的項目。做者將從本身的角度給你們介紹本身積累的經驗教訓,從項目定位、產品開發、推廣渠道等方面來說。若是大佬們有更多更優秀的做品和經驗,歡迎隨時交流。vue
Crawlab是做者近期在開發的Github項目,是一個專一於爬蟲的管理平臺。這個項目從今年3月份上線以來,到如今總共收到了大約1.1k個Github Stars(以下圖)。git
最初Crawlab是基於Celery的分佈式爬蟲管理平臺,後來因爲穩定性、性能等考慮,在v0.3.0版本中將Python Celery改成了Golang,穩定性和性能都獲得了極大的提高。Crawlab不只支持主流的爬蟲框架,例如Scrapy,還支持Python、NodeJS、Go、Java、PHP等多種編程語言以及多種爬蟲框架。Crawlab的目的是讓爬蟲工程師以最輕鬆的方式來管理和運行他們開發的爬蟲。Crawlab自上線以來,一直受到爬蟲愛好者們和開發者們的好評,很多使用者還表示會用 Crawlab 搭建公司的爬蟲平臺。在文末有關於Crawlab的往期文章,想要了解更多Crawlab的讀者能夠去看一下。程序員
Github: https://github.com/tikazyq/crawlabgithub
任何一個產品,都是爲須要的人服務的。這個受衆能夠是您本身,也能夠是您的朋友,也能夠是徹底不認識的陌生人。此外,一個優秀的產品必須解決用戶的問題,或者說是痛點。就像雪中送炭那樣,恰當的時間出現了恰當的解決辦法,別人纔會絕不猶豫的使用這個東西。分佈式爬蟲工具PySpider(13.5k stars)爲何那麼受歡迎,就是由於它解決了那些須要抓取大量網站的爬蟲開發工程師的管理困難的痛點。Web框架Flask(46k stars)由於其解決了Web開發上手困難的問題(相比於Django、Tornado這樣的傳統框架),受到了Web開發者的喜好,在Github上佔據一席之地。基於Vue Element的管理後臺框架 Vue-Element-Admin(39k stars)讓前端開發不用從零開始搭建管理後臺,開箱即用,成爲Vue開發者的香餑餑。如何尋找到用戶的痛點是咱們能打造一個優秀產品或項目的首要問題。算法
您可能會納悶,我周圍沒有感受到有痛點的用戶。若是您這麼以爲,您必定是沒有注意觀察。在工做中咱們會處理成千上萬的問題,包括一些技術問題或非技術問題。而這些問題的產生,必定是有沒有知足到的需求致使的,而這正是可能的出發點。編程
例如,做者的開源爬蟲管理平臺Crawlab就是在思考一個工做問題時誕生的。做者所在的部門有上百個爬蟲,其中包括了Selenium爬蟲和其餘類型的爬蟲。咱們當時的爬蟲管理方式和實現方式都有很是多的侷限性,致使了擴展性不高、排查異常困難等問題。咱們有一個Web UI界面,可是僅僅侷限於業務,沒有專一於爬蟲自己。做者當時思考,是否是隻有咱們公司才遇到這個問題,仍是這個問題是一個廣泛問題,幾乎每一個須要爬蟲的公司都會遇到。爲了驗證這個假設,做者花了半個月的時間作了一個最小可行性產品(MVP),Crawlab v0.1版本,只有最基本的執行爬蟲腳本的功能。結果,初版發佈後陸陸續續收到正面反饋,也有很多改進建議。第一天的Star數就達到了30,後面兩天漲到了100。這驗證了個人假設,爬蟲管理困難這個問題是廣泛存在的,你們都以爲Crawlab是個不錯的idea,願意來嘗試。這纔開始讓做者更有動力不斷完善這個產品。因此,從身邊的問題出發是個很好的開始。flask
知識就是力量,這句話很正確。在開發產品的過程當中咱們不只須要瞭解自身產品,還須要瞭解本身的客戶,更須要了解本身產品的市場及競爭對手。咱們須要不斷完善更新本身的知識庫,以在後續的開發、推廣產品過程當中做出最優的選擇。擴大知識圈的渠道有不少,掘金就是一個很不錯的渠道,上面不只有各類優質的技術文章,更有掘金小冊,能夠幫助讀者快速瞭解一項技術。除了掘金之外,還有其餘不少優秀的技術網站,包括SegmentFault、GitChat、V2ex等等。相信各位讀者及大佬也有本身獲取知識的渠道,能夠加做者微信tikazyq1分享交流下。segmentfault
以本身舉例,在開發Crawlab以前,我已是掘金的重度閱讀者,並且還購買了韋世東寫的掘金小冊《Python 實戰:用 Scrapyd 打造我的化的爬蟲部署管理控制檯》,在小冊中不只瞭解了爬蟲部署管理平臺的原理和基礎知識,還了解到了市場上已存在的爬蟲管理平臺Gerapy。這爲後來我開發Crawlab積累了大量的寶貴經驗。我又瞭解了市面上全部的爬蟲平臺,無一例外是基於Scrapyd的,所以我在想萬一有想要管理非scrapy爬蟲的呢,他們會使用什麼工具來管理。後面我又作了些研究,發現Crawlab纔是他們解決該問題的方法。所以,花一些錢購買知識是很是值得的,我在獲取知識的同時幫助了我尋找痛點。微信
您可能會認爲本小節是在講如何開發產品,但不是。本小節將講如何在開發產品中花最少的時間幹最正確的事情。用戶滿意了,增長Star數是天然而然的事情。
咱們不可能在第一時間作到一步到位。所以,不斷完善產品來知足用戶需求變得尤其重要。《精益創業》中的做者定義了最小可行性產品(Minimal Viable Product,MVP),也就是以最低成本儘量展示核心概念的產品策略。由於咱們的時間很寶貴(對於常常須要加班的朋友來講,更是如此),花費大量時間在完善各類沒必要要的功能上會是極爲浪費的行爲。咱們沒有必要花時間開發那些用戶認爲不重要的功能。如何作到不浪費時間,只開發用戶喜好的功能呢?
直接詢問用戶是最爲直接也是最有效的方式。我在發佈完Crawlab初版的時候成立了一個微信羣,並在推廣的時候邀請用戶加入,所以積累了一部分實際用戶與潛在用戶。我在開發一個新功能前我會詢問羣裏的朋友,他們是否喜好這樣一個功能,若是開發這樣的功能他們是否會使用。我詢問羣友是否都在用Crawlab,不少人都回答感興趣可是沒有。這顯然是個使人失望的答案,但我並無喪失信心。我接着問了爲何,結果他們都認爲Crawlab雖然不錯,但部署太麻煩了。而後我在羣裏問了他們關於Docker的意見,羣友一致認爲若是有Docker會很是棒。而如今,Docker變成了部署Crawlab的首選項,幾乎每個用戶都是用的Docker來部署Crawlab。
另一個有效的詢問用戶的方式是問卷調查。當Crawlab的Golang版本v0.3.0發佈後,我在羣裏發放了問卷調查,邀請用戶回答他們認爲最重要的功能,答案以下圖。統計後發現,任務監控和可配置爬蟲是最爲重要的兩個功能。所以,我會在接下來的開發過程當中優先考慮開發這兩個功能。
如今的大公司都會在網站或App中作埋點上報統計用戶行爲數據。這是也是很是有效的瞭解用戶偏好的工具,並且這種方法還排除了用戶偏見(問卷中被調查者可能心口不一)。在Crawlab中,嵌入了一小段JS代碼,讓用戶行爲數據獲得統計,上傳到第三方統計工具百度統計上面。下圖是用戶用得最多的行爲。
從該報表能夠看到,用戶主要在爬蟲頁面和任務頁面來回切換標籤,我可能還不知道它是哪些標籤,但我確定會在這兩個頁面上下更多功夫,來優化Crawlab。固然,這一切的用戶數據收集都是通過用戶贊成的,用戶若是在首次加載選擇不一樣意的話,數據將不會上傳(有些框架都不會詢問用戶的意願,它們會直接上傳統計數據)。
其餘完善產品的工具例如A/B測試做者不會講了,由於這要求更多的資源和流量,Crawlab尚未這樣雄厚的資源。感興趣的能夠本身去百度。
若是沒有人瞭解您的產品,您的產品再優秀也只能被涼在一邊,無人問津,沾染灰塵。所以,推廣您的產品也是增長Github Star數的很是重要的途徑。下面我將介紹一些經常使用的產品推廣的方式,包括一些經常使用的有效渠道,以及如何查看後臺數據來監控渠道有效性。
這是我認爲最有效的渠道了。在推廣Crawlab的實踐中,我發如今掘金上寫文章是一個很是重要的推廣產品的方式。下圖是用戶經過各類渠道(微信羣、朋友圈、掘金天然流量)接觸到技術文章方式。
將您的文章展現給更多用戶有助於提升您產品的曝光度,並且若是用戶對您產品感到滿意的話,會點擊您嵌入到文章中的導航到Github項目地址的連接,而後給您項目Star。我每次在掘金上寫完文章以後,我都會將文章的連接發到各個相關的微信羣裏,感興趣的羣友會點擊連接到文章裏,從而更有可能到Github上給項目點Star。同理,我也會發布到朋友圈或其餘渠道。若是文章讀者不會第一時間Star,不要緊,他在瞭解到您項目以後極可能會在後面的曝光過程給您Star。在市場營銷中,這就叫再營銷(Remarketing)。千萬不要以爲寫文章是一件沒有用的事情,相反,它將幫助您更早地收穫上千Star項目。
固然,咱們不只僅有掘金這一個渠道,咱們還有不少其餘選擇。下面列出了我可以知道的推廣渠道。
渠道 | 簡介 |
---|---|
掘金 | 偏前端的技術社區 |
V2ex | 技術論壇 |
GitChat | 技術知識分享平臺 |
微信公衆號 | 不用過多介紹了 |
SegmentFault | 技術問答、技術博客網站 |
知乎 | 知識問答網站 |
CSDN | IT技術社區 |
開源中國 | 開源技術交流社區 |
簡書 | 博客網站 |
其餘 | 讀者能夠微信我tikazyq1添加 |
您應該按期去Github上查看您的流量來源,看看哪些渠道是有用的。具體地址是: 主頁 -> Insights -> Traffic。Crawlab最近30天的Traffic以下圖。
能夠看到,Github內部、掘金以及V2ex是Crawlab的三大流量來源。上圖中8月14號的流量高峯是由於我在當天發了一篇文章《如何快速搭建實用的爬蟲管理平臺》。
固然,要發佈這麼多文章這麼多平臺不是一件容易的事情。做者和另一些朋友打算基於爬蟲的方式,寫一個自動發佈文章的工具,名字叫ArtiPub(意思爲Article Publisher),Github爲 https://github.com/crawlab-te... 。如今框架搭建好了,準備不斷開發。歡迎你們隨時關注。
光是有流量還不行,您還須要對讓本身的README顯得更加具備吸引力。下列是幾個增長吸引力的內容,建議您都該考慮加入到您的項目主頁中。
以上幾種方式均可以讓您的Github首頁顯得更加專業。您須要清晰地闡述您的項目的安裝方式,以及中文介紹,這將有利於讓您的讀者更加容易上手您的產品。產品截圖是很是有效的展現您產品的方式,人都是視覺動物,他們會更傾向於有截圖的產品(Airbnb就作的很不錯,他們在房屋截圖中用了大光圈照片)。若是您可以加上Logo之類的就更棒了。
下圖是Crawlab的首頁,雖然不完美,但對於增長吸引力來講頗有效。
項目管理是一個可選項,但對於推動和監控項目進度來講是很是有效的。能夠用酷炫的項目管理工具,例如Teambition、禪道或Trello,也能夠用簡單的Excel。我在Crawlab中就是用的Excel。下圖是早期Crawlab項目管理的電子表格。
如何進行項目管理,這裏我就不詳細講了,由於我也不是專業項目管理經理,也沒有PMP證書。後期若是有需求的話我能夠在另外一篇文章中專門介紹項目管理。
本篇文章主要從本身項目Crawlab的角度出發,介紹瞭如何打造一個上千Star的Github項目的方法。其中包括尋找痛點、完善產品、產品推廣和項目管理。相信每個得到了上千Star的項目的做者都有本身的方法論。我看了老鄉大佬CrossoverJie的相關文章《1K star+ 的項目是如何煉成的?》,得到了不少靈感,其中不少理念與本篇文章是類似的。無論如何,都祝願讀者能從本篇文章中收穫知識,祝您能早日收穫本身的上千Star項目。已經收穫的,也能夠分享下您的經驗。
但願本篇文章對您的工做和學習有所幫助,有任何疑問,請加做者微信 tikazyq1註明Crawlab或者ArtiPub,做者會將您拉羣,或者在底部留言提問,做者將盡力回答。謝謝!