1. 程式人生 > 其它 >怎樣做好一個開源專案

怎樣做好一個開源專案

溝通創造價值,分享帶來快樂。這裡是程式設計師閱讀時間,每天和你分享讀書心得,歡迎您每天和我一起精進。

作者:十三

解讀:張飛洪

現在的很多程式設計師基本上可以說是面向GitHub程式設計,遇到新專案要啟動就會到GitHub上一頓猛烈搜尋,然後採用拿來主義,這對那些想要做開源專案,甚至通過開源來收割韭菜的人來說,開源就是一個非常好的機會。

十三從2017年二月份開始開源之旅,差不多和他的部落格之路同時開啟。根據他個人的體會,開源的辛酸和挫敗從一開始就伴隨著他,中間有好多次想打退堂鼓。原因很簡單,不要以為自己開源了,就會有人看,你要堅信就算你真的是拿出你的家底出來,可能還是有99.99%的人聽都沒聽過,更別提去關注和了解你。

三個階段

十三提到他做開源的三個心理階段:

第一階段:要不要做?

總是在猶豫到底要不要做開源,我為什麼要做開源,能和自己的預期一樣嗎?

第二階段:能堅持嗎?

不知道要做什麼,堅持不了怎麼辦?沒有人關注怎麼辦?最後十三是這麼想的:“我不怕千萬人阻擋,只怕自己投降”。

第三階段:如何做好?

既然下定了決心,那麼就要開始思考怎麼做了,這個也是本篇要談的重點。

如何做好開源?

  • 前期規劃

既然開源是一份需要持續投入的工作,那麼開頭的規劃就非常重要了。十三幫我們羅列了他的做法,比如說:

  1. 要做什麼專案?
  2. 要選什麼題材?
  3. 什麼型別?
  4. 一年內大概有幾個版本?
  5. 最終的形態是什麼樣的?
  6. 這個專案是為了解決什麼而出現的?

這些一定要想清楚,好的開源專案有以下幾個標準:

  1. 訪問量
  2. star數量
  3. folk數量
  4. clone數量
  5. issue數量

明確以上的指標,你的開源之旅就可以開啟了。

  • 邁出第一步

第一個專案主要使用spring和spring mvc加mybatis框架整合實踐專案ssm-demo,這些框架都是大部分公司的常用框架,稍微修改以下就提交到開源倉庫了,所以開源好像也不難。這裡開源的並不是底層框架性的基礎架構,而是基於知名科技進行業務整合。這種方式確實對一般3-5年的程式設計師都不是問題。

  • 升級迭代

接下來就和我們平時開發一樣,按照最小功能清單進行版本迭代。如此這般,堅持了三年,中間因為spring boot的出現,進行了底層框架的替換。包括常用的後臺攻略心跳,資訊釋出系統,部落格系統,商城系統,以及由此衍生出的各種專案。

每次升級都會在部落格裡面進行宣講,讓你的關注者有所期待,能瞭解你的動態和決心,這是和讀者互動的重要視窗。

  • 雙贏心態

從整合自己手頭的專案開始,通過文件編寫既能梳理自己的知識,加深理解,也能幫助那些需要的朋友,這裡難能可貴的是利他心裡,只有利他才能得到他人的幫助,開源的本質其實就是分享。

設身處地去想一下,你去開源專案網站上搜索專案時,是不是為了解決自己目前所面對的問題呢?如果你搜到了一個開源專案,但是程式碼不全,文件不完整,下載之後根本用不了,那麼這種專案你還會使用或者分享給其他人嗎?所以我們如果做開源專案,那麼這個專案一定要能用,要幫助別人解決當下的問題。我認為這是衡量一個開源專案最基本的標準,也是非常現實的一個標準。

十三基於spring boot技術棧為主的新風商城專案,因為程式碼和相關的文件非常齊全,幫助了很多的開發者快速掌握spring boot,並使用spring boot技術棧去開發一個大型的商城專案。而且專案幫助了很多在校大學生完成畢業設計這個難題,也幫助了很多的Java求職者找到了工作。

  • 文件+示例

好的開源如果缺失文件,對讀者是很不友好的,所以成功的開源都是以程式設計師為中心,想對方之所想,反過來思考,我們閱讀開源專案的時候,也會希望對方如果有配套的文件就更好了。

有了文件再加持示例和Demo,整個體驗就會是立體的,你要儘可能把開源當作產品來打磨,否則很難獲得成長,所以開源真的不容易,需要持續投入時間和精力。

失敗的示範:

  1. 當你進入他的倉庫時一時想不通這個專案是幹嘛的,或者他能夠幫助你幹什麼。
  2. 專案文件雖然有,但是就幾句話,或者只有初始化專案時的預設文件,還沒什麼排版。
  3. 寫好程式碼並且開源出去就會有人來關注,來看你。

良好的示範:

生活中我們都知道第一印象的作用,我們自己做的開源專案也是這樣,當別人開啟我們的倉庫,那一瞬間就可以看到詳細的文件和恰到好處的圖片,他可能才會進一步的去了解和研究這個專案,而不是直接點選關閉按鈕與我們擦肩而過。

所以總結來說,就是要明白專案基礎資訊展示的影響力。

具體操作十三介紹了以下幾種方式,概況來講就是:

  1. 一句話介紹我們的專案
  2. 專案的特性和優點
  3. 專案所使用的技術棧以及合適的圖片
  • 降低預期

認清自己,並且降低自己的心理預期,這也是一個很真誠的建議。我們並不是開源世界的大佬,也不是流量很大的牛人,在開源專案釋出出去的一段時間,不要急功近利,不要給自己設立一些難以實現的目標,這樣只會給自己壓力,而且徒增煩惱。

開源是為了分享和交流,分享者一定要放寬心,如果沒有很好的成績,我們就繼續努力,我能做的就是不斷的進化,不斷地進步。

我很相信那句話,酒香不怕巷子深。

可能你會覺得我這個人有點傻乎乎的,傻是傻了點啊,但是不痛苦,也沒壓力,輕裝上陣,跑得快。

關鍵點總結

以上就是十三通過個人經歷的分享,另外他也給我們分享了開源專案給他帶來的收穫:

  • 擺脫由學生身份轉變後的一個糾結狀態;
  • 認識了很多志趣相投的朋友;
  • 經常受到各種公司的面試邀約,人也自信了一點;
  • 接收資訊的渠道增加了,接收到的資訊更多了,對自身的進步有很大的積極作用;
  • 在機緣巧合之下,也開啟了副業,寫起了專欄,寫起了書;
  • 最重要的是我發現了一個更大的世界,活得不再閉塞。

十三的GitHub:https://github.com/zhenfeng13