
1. 前言
今天分享一下如何發起并運營一個開源專案,平時我們開發用到的輪子大多都是開源的,可以說開源專案推動了IT行業的的發展,而這兩年是開源專案的爆發期,對于個人來說,開源專案也是開發者成長提升的途徑之一,今天就來分享一下如何范訓并運營一個開源專案,
2. 立項
凡是專案都需要創意,或者我們稱之為“點子”,來源有多個方面,
很多開源專案包括編程語言都誕生于解決特定問題的程序中,比如Java誕生于智能硬體平臺的研發程序中,所以你日常遇到的一些問題和你對這些問題的解決方案可以成為你創建開源專案的一個思路,這種情況下需要更多的創造性,同時還要規避一些法律風險,

你也可以對其它一些開源專案進行擴展和優化,有時候我們可以站在巨人的肩膀上,就像開源Git托管平臺Gitea誕生于Gogs,
更簡單的方式是你甚至可以整合腳手架,目前在Github上的整合腳手架非常多,甚至有些專案知名度還非常高,
當你有這個貧訓你就有范訓開源專案的先決條件了,
3. 開發
接下來就是開發了,最開始只有你自己貢獻全部的代碼,而且你可能需要做得更多,開發盡量遵循Git作業流,ISSUE功能要充分利用起來,用戶的咨詢建議和BUG反饋盡量通過ISSUE來處理,

通過吸收Pull Request也可以集思廣益,提升你專案的質量,Gitee和Github還提供了一些漏洞檢測和質量檢測功能,也能提高你的開發質量,
3.1 測驗
作為開源專案,一定要把好質量關,起碼的單元測驗要做,這樣其它開發者會更加信任你的專案,
3.2 開源協議
開源協議是開源專案的重要標識,這個是必須的步驟,目前開源協議有很多,選擇一款適合你的,一般情況下我選擇Apache 2.0,

協議除了放一個LICENSE檔案在專案的目錄中外,最好在每一個源代碼檔案的copyright頭中也宣告一下,比如胖哥的開源專案Payment Spring Boot中是這樣的:

3.3 其它配套設施
作為一個開源專案,專案說明README.md要有,用來對專案進行簡單的介紹,因為是原始碼開放,代碼注釋也非常重要,也有利于向別人講解你的思路和意圖,如果有精力構建一個專案主頁就可以讓你的專案更加高大上了,把檔案、圖文教程、CHANGELOG、Q&A、RoadMap分門別類放進去,也有利于用戶更加深入的了解學習你的開源專案,你可以看胖哥以往的相關文章有介紹的哦,
4. 發布
如果覺得你的專案已經達到可用的程度就可以公開發布了,源代碼國外肯定是放在Github上,國內選擇Gitee(碼云),根據你的喜好選擇一個主庫,兩者定期同步,另外要明確開發分支和正式分支,最好默認顯示最近的正式版本分支,
大致的發版步驟
版本一經發布不能進行更改,版本號建議語意化,參考下圖中Gitee的語意化說明,
Github和Gitee都提供了創建發行版的功能,以Gitee為例(Github同樣有類似的功能):

創建完畢后,你的專案就會生成一個發行版,用戶可以通過對應版本的發行版獲取對應版本的源代碼,查看描述,

在進行源代碼發行的同時,也建議部署對應的編譯版本到公用依賴庫,比如Java專案會發布的Maven中央倉庫,JavaScript專案會發布到NPM,Python專案PyPi,如果你有能力使用CI/CD的話(例如Github Action),可以讓整個發版流水線化,
記得發版的同時,要發布對應版本的更新資訊、檔案等配套設施,
5. 推廣
只要是產品就需要推廣,推廣是一個技識訓,而這往往不是技術人員的強項,你可以在目標人群的聚集地友好地宣講你的開源專案,例如一些開發者社區(開源中國),交流群等等,甚至是這幾年比較火的短視頻,每次發版可通過一些公共渠道進行公告,讓你的開源專案盡可能為人所知,但是請不要作弊,不要學某些人走捷徑,花錢去購買Star,
在推廣的程序中,要學會收集和分析用戶的意見,
6. 社區驅動
推廣的同時要進行社區建設,有利于拉升你開源專案的活躍度,同時也可以從中提煉專案的需求,甚至可以將社區活躍者提升為專案貢獻者,組建一個開源小團隊,
社區驅動是開源專案發展的重要動力,
6. 總結
如果你想做好開源,就要把開源專案當做產品來做,堅持、創新、協作、運營、服務一個都不能少,個人也會在專案的打磨中成長提升,對于開源更重要的是一種態度,無論專案涉及的技術是否高深,開源者都應該得到鼓勵和尊重,
關注公眾號:Felordcn 獲取更多資訊
個人博客:https://felord.cn
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/265263.html
標籤:Java
上一篇:springmvc核心流程及配置
