當前位置:編程學習大全網 - 源碼下載 - 如何做壹個真正牛的開源項目

如何做壹個真正牛的開源項目

近年來,越來越多的開發者選擇將自己的產品以開源形式發布,有時的結果是——妳滿懷誠意地開源,卻無人問津。盡管妳的產品做得相當好,但是僅把產品的源代碼公布出來,這還不算開源,因為其他用戶可能無從下手。沒有用戶,久而久之,妳的滿腔熱情就會熄滅。 那麽如何才能讓開源項目為更多人所知,成為壹個真正牛X的開源項目呢?除了項目自身優秀外,妳還需要註意以下事項。 壹、有壹個真正有用的README 即使妳為妳的開源項目制作了壹個很好的網站,但是壹些潛在用戶很可能會首先通過閱讀README文件來了解這個項目。因此,妳要確保在README中提供盡可能全面的信息: 1. 依賴、安裝信息 盡可能寫清楚依賴、安裝信息,最好能夠讓用戶通過復制粘貼相關代碼來添加依賴。比如這樣。 2. 項目成熟度狀態 不至於讓用戶在生產環境中用了幾個月後才發現妳的項目才處於Alpha階段。 3. 詳細說明項目支持的語言、運行環境和工具的版本 不至於讓用戶花費大量的時間去摸索妳的項目的兼容性。 4. 明確所使用的許可證 這個許可證需要是流行的、用戶都知道的,如果妳自己創造壹個或使用壹個陌生的(比如WTFPL),那麽沒有用戶敢於在自己的產品中使用妳的開源項目的。妳可以選擇比較友好的Apache Public License 2.0或Eclipse Public License等。需要註意的是壹些許可證(比如MIT)也是比較流行的,但是沒有提供任何專利保護。妳也可以采用APL2/GPLv2雙許可,讓用戶挑選適合他們的。 二、為妳的項目寫壹個文檔 寫文檔並不容易,且比較費時,但是對於用戶來說,文檔是了解壹個項目最便捷、最省時的方式,還可以讓用戶相信妳不會輕易放棄這個項目。 在文檔中,把妳的項目可以幫助用戶完成的事情放在首位,這是用戶決定是否使用這個項目的關鍵。此外,妳要讓用戶相信做這個項目的是個人,而不是壹個會產生代碼的機器人。 三、項目可以很容易地升級 隨著項目中bug的修復和壹些功能的改進,妳需要發布另壹個版本。需要註意的是: 1. 向後兼容 不要因為不向後兼容,而讓用戶重寫大量代碼。這樣會讓用戶憤怒,繼而拋棄妳的項目。當然,妳也不必像OpenJDK那樣兼容15年前的產品。 2. 更新日誌 有壹個清晰明確的更新日誌,需要包含:該版本發生了什麽變化?會破壞用戶現有項目的代碼嗎?等等。比如Twitter的做法: 每修復壹個bug,就在更新日誌中寫上壹個簡短的條目每添加壹個功能,就簡要描述壹下並附上壹些示例代碼每改變壹個API,就需要在日誌中用粗體明確指出如果妳有多個分支,就需要為每個分支都寫壹份更新日誌。 3. 版本標簽 為妳的項目的每壹個版本打上壹個標簽,比如v1.0.0-alpha1、v1.0.0、v1.1.2,可以讓妳的用戶很清晰地分辨出項目的版本。 4. 發布公告 項目發布後,接下來就需要為這個事件寫壹篇博文,或直接將公告發布到項目的郵件列表中。 在公告中需要說明這個項目有什麽用,是否向後兼容,並給出更新日誌的鏈接。 5. 項目狀態標簽 有些項目很長時間壹直使用相同的版本號,比如1.1.0,而項目壹直在改進。如果這是壹個開發版本,妳也需要通過標簽來說明項目所處的開發階段。比如: 1.1.0.pre11.1.0-alpha11.1.0-SNAPSHOT總之,妳要確保項目有壹個嚴格的版本命名規劃。 四、使用GitHub 在GitHub上,妳可以很容易地做下面的事情: 發布妳的項目瀏覽和搜索代碼專註於項目issues參與貢獻,合並用戶的貢獻五、確保有壹個為用戶提供支持的地方 如果妳的項目達到壹定的普及程度,妳就會不斷收到用戶的提問。妳需要有壹個收集和回答用戶提問的地方,比如論壇、郵件列表等。只要有壹個交流的地方,用戶也可以彼此提供幫助。久而久之,就會形成壹個很不錯的社區。 六、項目傳遞 不排除這種情況——妳可能會對項目維護失去興趣,或者妳換了壹個新工作不再使用當前的項目了。妳可以在郵件列表上公布,讓其他開發者接管妳的項目。在Github上項目所有權轉移會更容易,尤其是在別人為妳的項目引入了新功能後。 無論如何,不要讓項目死掉。 七、總結 總之,在妳打算發布開源產品時,請確保它有: 清晰的依賴/安裝說明至少有壹個簡短的文檔/指南庫中包含更改日誌和相關標簽壹些關於支持語言、運行環境、工具版本、項目成熟度的信息郵件列表,供用戶提問、相互幫助八、最後 總之,要想讓妳的開源項目“發揚光大”,首先應該讓它對用戶更友好。除了項目文檔外,其他事情花費不了多長時間。 另外,將項目開源出來容易,長時間維護就難了,因此,妳還需要具備堅毅的精神和打持久戰的準備。

  • 上一篇:如何分辨壹個微信小遊戲是使用什麽引擎開發的?
  • 下一篇:幸運符系統源代碼
  • copyright 2024編程學習大全網