第一章 認識開源項目
一、什么是開源項目
????開源項目是指公開可用的計算機源代碼,其特性允許任何人都可以查看、修改和分發(fā)開源代碼。開源項目的所有者不屬于任何組織或個人。在遵守開源協(xié)議的條件下,開源產品可通過修改代碼定制成屬于自己的個性化產品。
????因此,與單個公司或個人開發(fā)的軟件相比,開源軟件更便宜、更靈活。如今,開源軟件已被公司和個人用戶廣泛使用。
二、開源項目的意義
1、增加知名度和使用量: 開源項目可以讓更多人知道和使用,進而增加項目的知名度和使用量。
2、提高代碼質量:開源項目需要接受有可能來自全球的開發(fā)者審核和參與,這樣可以使得項目代碼得到更多高質量的反復審查和改進
3、快速修復和更新:開源項目可以在社區(qū)的幫助下,快速修復和更新代碼,更改未來開發(fā)計劃和方向。
4、提高合作和學習意愿: 開發(fā)者可以通過參與開源項目,結識更多開發(fā)者,從中學習和分享經驗。
5、可授權和可擴展性:開源項目可以允許其他開發(fā)者使用和拓展項目,由此可以進一步提高項目的質量和功能降低開發(fā)成本:開源項目可以讓開發(fā)者進一步學習和拓展,從而提高開發(fā)的效率,進一步降低開發(fā)成本。實現(xiàn)雙贏:他人使用你的項目降低開發(fā)成本,自己也能提高技術水平和知名度0
6、開源精神
三、閉源項目和開源項目的區(qū)別
1、所有者:閉源項目屬于特定的組織或企業(yè),而開源項目不屬于某個組織或企業(yè)。
2、是否收費:閉源項目在使用前需根據軟件規(guī)模和使用規(guī)模支付相應的費用,而開源項目是沒有許可或使用費。
3、源碼是否可見:閉源項目不能獲取源碼,而開源項目的源代碼是公開的。
4、是否可定制:閉源項目由于不能獲取源碼,如需定制需向項目所有公司提交申請,并支付一定費用,而開源項目可以自己定制自己的功能。
5、對開發(fā)和使得的支持:閉源項目一般是由軟件有屬組織或企業(yè)的專門支持團隊進行技術支持,因此響應速度、滿意度等由此團隊的規(guī)模和能力決定。而開源軟件主要以社區(qū)、論壇、郵件等方式進行支持,由于所有使用此開源項目的人都可以成為此項目的支持者,因此使用量越大的開源項目所得到支持越大,如流行的Spring框架和Vue框架等都有很多支持。
6、安全性:開源軟件有一個完整的社區(qū)來審查代碼,這使得錯誤很快被發(fā)現(xiàn)并改正。在閉源代碼中,軟件分銷商負責修復發(fā)現(xiàn)的錯誤。
四、開源項目的使用
1、合規(guī)性風險
????開源項目并不意味著此項目可以隨意使用,隨意使用可能一不注意就會侵權。比如使用某個開源框架開發(fā)閉源軟件,未獲得開源許可而在商業(yè)項目中使用開源軟件等。
????開源項目也有著作權,而且絕大多數的開源項目,開源代碼背后都有許可證。開源許可證是一種允許源代碼、藍圖或設計在定義的條款和條件下被使用、修改和/或共享的計算機軟件和其他產品的許可證。是一個在作者和使用者之間有法律效應和約束力的合同,類似于不可更改的制式合同,當你選用了開源項目/局部代碼則默認為簽署了這份合同。
????由于目前經過OSI認證的開源許可證共有近100種。因此在使用開源項目用做商用前,一次要了解此開源項目背后的許可類型,以規(guī)避法律風險。
2、漏洞風險
????任何軟件都不可避免存在漏洞,但一般開源項目修復漏洞后不會提醒使用者去修復,更不會主動幫使用者修復,因此需要使用者經常關注社區(qū),發(fā)現(xiàn)對應版本的補丁應及時修復。但大部分使用者不會去時常關注社區(qū),因此可能會使此漏洞長期存在。
五、開源項目如何盈利
1、獲取贊助
可以在項目官網或是社區(qū)設置贊助賬號,如微信或支付寶等,如Eclipse等
2、廣告
????在開源版本中綁定廣告,在下載或是使用前需要觀看或閱讀廣告
3、體驗版
????免費提供受限的體驗版本(社區(qū)版),可以通過支付一定的費用來獲取完整版本(企業(yè)版)。比如MySql、Idea等
4、書籍和周邊
? ? 可以圍繞開源項目出版書籍,如Vue、Spring等,可以出版教程,如果是游戲可以出版攻略和參數修改教程,如果是一個社區(qū)非?;钴S的項目,可以設計襯衫、馬克杯等小商品。
5、服務
????提供線上支持,對于此軟件使用上的問題和功能改進可以收取相應的費用,比如dcloud的有償問題解答。
6、軟件外包和服務
????可以接一些與此開源項目有關的外包項目,還可以接與此開源項目有關的培訓
7、眾籌和融資?
六、開源項目的組成
1、人員
通常,一個開源項目包括以下人群:
? 創(chuàng)建者:創(chuàng)建項目的人
? 維護者:積極管理整個項目的人。通常,積極的貢獻者就是最適合的維護者。
? 貢獻者:為項目做貢獻的人(像你一樣的人?。D阈枰獪蕚淇煽康奈臋n、引導流程和他們使用你的項目取得成功所需的一切。
? 用戶:使用這個項目的人,包括開發(fā)者和非技術客戶
? 工作組:將貢獻者分成特定領域的小組,專注于圍繞特定主題領域(如文檔、指引、測試、DevOps、代碼審查、性能、研究等)的集合。但是你需確定是否需要他們,以及你的項目將來如何有邏輯地拆分。
? 贊助人:為項目提供資金支持的人。你必須提供足夠的數據和有關你項目的信息,以便他們選擇贊助你。
????當然,你不必在你項目的起始階段解決上面所有問題。然而,在早期階段思考它們是很明智的,這樣你就能打下正確的基礎,確保未來的擴建項目能夠站穩(wěn)腳跟并取得成功。
2、軟件
????這是開源項目的核心成果,需要達到以下要求:
??符合主題:只開發(fā)與項目主題有關的功能,不應該包含此外的其它功能
??版本規(guī)則明確:使用此可以根據版本規(guī)則了解當前軟件的狀態(tài)
??維護不同的版本:一個軟件不會只有一個版本,隨著貢獻者代碼不的斷提交,軟件的版本也會不斷升級,但必須為使用舊版本的用戶提供必須的支持和補丁的更新。
??大版本不應有明顯Bug和漏洞,在發(fā)布版本之前應該提供內測、公測等版本。
3、文檔
????開源項目通常包括下列文檔,通常為純文本或 markdown 格式:
? 許可證(License
):這份法律文件解釋了如何以及在何種程度上可以自由使用、修改和共享本項目。每個源碼網站上有 相應的的許可證列表。如果沒有明確的許可證,你的項目在法律上就不是開源的!
? 行為準則:該文件概述了任何決定以任何方式參與項目的人的規(guī)則、規(guī)范、可接受做法和責任(包括當有人違反任何規(guī)則時會發(fā)生什么)。
? 自述文件(README
):這個文件向新用戶介紹你的項目。在很多 Git 托管網站上,比如 Gitee,自述文件會顯示在倉庫的初始文件列表下。這里通常會提供文檔,以及其他必要文檔的鏈接。
? 文檔(Documentation
):這是一個包含所有本項目文件資源的文件或目錄,包括指南、API 參考、教程等。
? 貢獻指南(Contributing
):包含一份說明如何為項目做出貢獻的文件,包括安裝指南、配置等。
? 安全(Security
):包括一個解釋如何提交漏洞報告或安全問題的文件。
4、官網和社區(qū)
????大致包括:
? 議題或錯誤報告:用戶可以報告錯誤的地方。該頁面還為開發(fā)人員提供了一個地方,讓他們可以分配自己的任務來修復一個或多個錯誤。
? 拉取或合并請求:提供功能增強建議和錯誤解決方案的地方。這些補丁可以由任何人創(chuàng)建,由維護者審核,然后合并到項目代碼中。
? 討論:維護者、貢獻者和用戶討論開源項目的地方。它可以是一個專門的網站,也可以是協(xié)作編碼網站中的一個論壇。
? 在線體驗:提供在線體驗版本,用戶可以通過有限功能的體驗大致了解此軟件的功能和結構
????許多項目還通過在線聊天的形式為社區(qū)成員之間的對話和互動提供交流渠道。
5、許可證
????opensource.com 也許是創(chuàng)建開源項前需要考慮的最簡單但也是最重要的標準。許可證定義了允許使用、修改和共享項目源代碼和其他組件的條款和條件。
七、開源項目的演示
1、演示地址
????地址:https://gitee.com/ossbar/

2、查看項目信息
????選擇第一個開源項目:“若依-RuoYi-AntDesign-AiDex Sharp 快速開發(fā)平臺”,點擊進入
3、獲得最新版本
????在右側點擊“克隆/下載”,在展開的菜單中點擊“下載ZIP”

4、查看自述文件內容(readme)
1)點擊頂部的“代碼”,返回代碼頁

2)向下滾動頁面

5、在線體驗
????在自述文件左側標簽中選擇“在線體驗”,點擊在線體驗地址可進入項目官網

6、系統(tǒng)文檔
在自述文件左側標簽中找到“系統(tǒng)在線文檔”,可通過右側提供的鏈接進入到對應的文檔

7、許可協(xié)議
????此項目使用的是"GPL-3.0"許可協(xié)議

8、許可證補充說明和貢獻參與方式
在自述文件左側標簽的最下方兩條分別定義了“許可補充說明”和“貢獻參與方式”

八、注冊Gitee賬號和創(chuàng)建倉庫
1、注冊賬號
1)在Gitee網站的右上角點擊“注冊”

2)在注冊頁面輸入賬號名、手機號、密碼,然后點擊“發(fā)送驗證碼”,

3)在發(fā)送驗證碼之前需輸入“機器驗證”,把上方的字母抄寫到下方的輸入框中,然后點擊“驗證”

4)當手機攬收到驗證碼后,在“驗證碼”輸入框中輸入接收到的驗證碼,然后勾選協(xié)議,點擊“立即注冊”,至此Gitee賬號注冊成功。

2、創(chuàng)建倉庫
1)在Gitee右側上方最后一個圖標上懸浮,在展開的菜單中點擊“設置”

2、在打開的設置頁的左側導航向下找到“倉庫空間信息”,點擊進入

3、在上方右側,點擊“新建倉庫”

4、輸入倉庫的名稱,路徑會自動生成(如果修改,路徑建議不要太長且只包含小字字母和“-”兩種符號),然后輸入倉庫介紹,最后點擊“創(chuàng)建”完成項目的創(chuàng)建

3、添加開發(fā)人員
1)在倉庫首頁上方的導航中點擊最后一個菜單“管理”

2)在“管理”頁面的左側點擊“倉庫成員管理”——“開發(fā)者”,在右側上方點擊“添加倉庫成員”,在展開的菜單中點擊“邀請用戶”

3)在此頁面中可以選擇合適的邀請方式。

4、基于其它項目創(chuàng)建自己的項目分支(克隆、Fork)
1)進入項目:https://gitee.com/ossbar/aidex-sharp
2)在右側點擊“Fork”

3)在彈出的對話框中選擇目標空間,點擊“確認”

4)此項目已經被克隆到自己的倉庫中
