自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

構(gòu)建成功的開源項目的重要建議

開源
使用這些步驟來為你的第一個或接下來的項目打下堅實的基礎(chǔ)。

開源 是一個蓬勃發(fā)展且有益的生態(tài)系統(tǒng),它通過分散模式和社區(qū)貢獻(xiàn)開發(fā)的軟件,公開解決社區(qū)和行業(yè)問題。

隨著這個生態(tài)系統(tǒng)的爆炸式發(fā)展,許多開發(fā)者想要參與并且構(gòu)建新的開源項目。問題是:如何成功實現(xiàn)這一目標(biāo)呢?

這篇文章將會揭秘開源項目的生命周期與結(jié)構(gòu)。給你一個對開源項目內(nèi)部運(yùn)作的概述,并根據(jù)我個人的經(jīng)驗,向你展示如何構(gòu)建一個成功和可持續(xù)發(fā)展的項目。

對開源的簡單概述

開源促進(jìn)會Open Source Initiative(OSI)提供了對“開源Open Source”的正式、詳細(xì)的定義,但是維基百科提供了一個很好的總結(jié):

開源軟件是指根據(jù)許可證發(fā)布的計算機(jī)軟件,版權(quán)持有人授予用戶使用、研究、更改和向任何人、為了任何目的分發(fā)軟件和它的源代碼的權(quán)利。

開源軟件通常在網(wǎng)絡(luò)上有公開的代碼,它由多人合作或一人開發(fā)。這就需要與來自不同地區(qū)、不同文化和不同技術(shù)背景的人合作,而且往往是遠(yuǎn)程合作。

開源項目的構(gòu)成

就像人類的身體,一個開源項目由多個結(jié)構(gòu)組成,這些結(jié)構(gòu)構(gòu)成了整個系統(tǒng)。我認(rèn)為它們是兩個分支:人員(微觀)和文檔(宏觀)。

分支一:人員

通常,一個開源項目包括以下人群:

  • 創(chuàng)建者:創(chuàng)建項目的人
  • 維護(hù)者:積極管理整個項目的人
  • 貢獻(xiàn)者:為項目做貢獻(xiàn)的人(像你一樣的人?。?/li>
  • 用戶:使用這個項目的人,包括開發(fā)者和非技術(shù)客戶
  • 工作組:將貢獻(xiàn)者分成特定領(lǐng)域的小組,專注于圍繞特定主題領(lǐng)域(如文檔、指引、測試、DevOps、代碼審查、性能、研究等)的集合。
  • 贊助人:為項目提供資金支持的人

當(dāng)你準(zhǔn)備構(gòu)建一個新項目時,你需要考慮以上列表中的每一個群組。你對他們每個人有什么計劃?

  • 對于維護(hù)者,請確定任用維護(hù)者的標(biāo)準(zhǔn)。通常,積極的貢獻(xiàn)者就是最適合的維護(hù)者。
  • 對于用戶和貢獻(xiàn)者,你需要準(zhǔn)備可靠的文檔、引導(dǎo)流程和他們使用你的項目取得成功所需的一切。
  • 對于工作組,請確定你是否需要它們,以及你的項目將來如何有邏輯地拆分。
  • 最后,對于贊助人,你必須提供足夠的數(shù)據(jù)和有關(guān)你項目的信息,以便他們選擇贊助你。

你不必在你項目的起始階段解決上面所有問題。然而,在早期階段思考它們是很明智的,這樣你就能打下正確的基礎(chǔ),確保未來的擴(kuò)建項目能夠站穩(wěn)腳跟并取得成功。

分支二:文檔

開源項目通常包括下列文檔,通常為純文本或 markdown 格式:

  • 許可證(License): 這份法律文件解釋了如何以及在何種程度上可以自由使用、修改和共享本項目。OSI 網(wǎng)站上有 OSI 認(rèn)可的許可證列表。如果沒有明確的許可證,你的項目在法律上就不是開源的!
  • 行為準(zhǔn)則:該文件概述了任何決定以任何方式參與項目的人的規(guī)則、規(guī)范、可接受做法和責(zé)任(包括當(dāng)有人違反任何規(guī)則時會發(fā)生什么)。貢獻(xiàn)者公約 是一個很好的示例,它是開源的(采用知識共享許可協(xié)議)。
  • 自述文件(README):這個文件向新用戶介紹你的項目。在很多 Git 托管網(wǎng)站上,比如 GitLab、GitHub 和 Codeberg,自述文件會顯示在倉庫的初始文件列表下。這里通常會提供文檔,以及其他必要文檔的鏈接。
  • 文檔(Documentation):這是一個包含所有本項目文件資源的文件或目錄,包括指南、API 參考、教程等。
  • 貢獻(xiàn)指南(Contributing):包含一份說明如何為項目做出貢獻(xiàn)的文件,包括安裝指南、配置等。
  • 安全(Security):包括一個解釋如何提交漏洞報告或安全問題的文件。

此外,一個項目通常有用于議題、支持和協(xié)作的網(wǎng)頁。

大致包括:

  • 議題或錯誤報告:用戶可以報告錯誤的地方。該頁面還為開發(fā)人員提供了一個地方,讓他們可以分配自己的任務(wù)來修復(fù)一個或多個錯誤。
  • 拉取或合并請求:提供功能增強(qiáng)建議和錯誤解決方案的地方。這些補(bǔ)丁可以由任何人創(chuàng)建,由維護(hù)者審核,然后合并到項目代碼中。
  • 討論:維護(hù)者、貢獻(xiàn)者和用戶討論開源項目的地方。它可以是一個專門的網(wǎng)站,也可以是協(xié)作編碼網(wǎng)站中的一個論壇。

大多數(shù)項目還通過在線聊天的形式為社區(qū)成員之間的對話和互動提供交流渠道。

許可證

許可證 也許是創(chuàng)建開源項前需要考慮的最簡單但也是最重要的標(biāo)準(zhǔn)。許可證定義了允許使用、修改和共享項目源代碼和其他組件的條款和條件。

許可證包含大量的法律術(shù)語,很多人并不完全理解。我使用 choosealicense.com,它可以幫助你根據(jù)你的目標(biāo)社區(qū)、你從使用你的代碼的人那里獲得補(bǔ)丁的愿望,或者你允許別人使用你的代碼而不分享他們對你的代碼所做的改進(jìn)來選擇許可證。

圖片由: (Bolaji Ayodeji, CC BY-SA 4.0)圖片由: (Bolaji Ayodeji, CC BY-SA 4.0)

這為何時使用 MIT 許可或 GNU GPLv3 許可提供了指導(dǎo)。它還建議為社區(qū)做出貢獻(xiàn)的人們使用該社區(qū)所偏好的許可證。該圖表還指出,還有更多許可證可供選擇。網(wǎng)站 choosealicense.com 有一個基于文本的版本,可以鏈接到更詳細(xì)的信息。

創(chuàng)建一個開源項目的 13 個階段

現(xiàn)在是關(guān)鍵問題:如何開始開源軟件項目?

以下是我所認(rèn)為的開源項目的各個階段。

  1. 集思廣益,撰寫提綱,妥善記錄。
  2. 開始根據(jù)你的想法進(jìn)行開發(fā)。這通常包括確定要使用的正確工具和技術(shù)棧、編寫一些代碼、對代碼進(jìn)行版本控制、調(diào)試、喝點咖啡、在 StackOverflow 上閑逛、使用其他開源項目、睡覺、構(gòu)建一些東西來解決確定的問題 —— 或者只是為了好玩!
  3. 在本地測試項目,根據(jù)需要編寫一些單元測試和集成測試,根據(jù)需要設(shè)置 CI/CD 管道,創(chuàng)建一個暫存分支(在合并到主分支之前測試代碼的測試分支),并完成部署項目所需的其他工作。
  4. 編寫 良好有效的文檔。這應(yīng)該包括你的項目是做什么的,為什么它是有用的,如何開始使用它(使用、安裝、配置、貢獻(xiàn)),以及人們在哪里可以得到支持。
  5. 確保記錄所有你希望使用的代碼約定。使用諸如 代碼檢查工具Linter、代碼格式化工具、Git 鉤子和 注釋規(guī)范化工具Commitizen
  6. 選擇合適的許可證并創(chuàng)建自述文件。
  7. 在互聯(lián)網(wǎng)上發(fā)布項目(可能最初是一個私有的資源庫,在這一步將其公開)。
  8. 建立發(fā)布和記錄更新日志的流程(你可以使用 Changesets 等工具)。
  9. 向全世界推廣項目!你可以在社交媒體上發(fā)帖、創(chuàng)辦新聞簡訊、私下與朋友分享、進(jìn)行產(chǎn)品發(fā)布、現(xiàn)場直播或其他任何你知道的傳統(tǒng)營銷策略。
  10. 使用任何可用的融資平臺尋求資金支持,如 Open Collective、GitHub Sponsors、Patreon、Buy me a Coffee、LiberaPay 等。當(dāng)你在這些平臺上創(chuàng)建賬戶時,請在項目文檔和網(wǎng)站中添加相關(guān)鏈接。
  11. 圍繞你的項目建立一個社區(qū)。
  12. 在必要時,考慮引入工作組,將項目管理分成合理的部分。
  13. 不斷實施新理念,維持項目背后的資源和人員。

隨著項目的進(jìn)展,對項目的不同部分進(jìn)行評估非常重要。這將為你提供可用于評估和未來發(fā)展戰(zhàn)略的數(shù)據(jù)。

現(xiàn)在開始一個項目吧!

我希望這篇文章能幫助你推進(jìn)你一直在考慮的項目。

你可以將其用作指南,并在構(gòu)建你的一流開源軟件項目時填補(bǔ)我遺漏的任何空白。

責(zé)任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2014-04-14 09:58:18

開源項目

2019-06-22 15:01:19

云遷移公共云應(yīng)用程序

2014-12-11 17:47:23

混合云私有云

2017-11-07 11:36:57

開源項目代碼

2014-11-13 11:18:27

云項目云消費(fèi)者云問題

2015-12-08 09:13:05

開發(fā)維護(hù)Java項目

2022-08-12 13:18:12

IT企業(yè)運(yùn)營

2020-03-02 10:33:39

云遷移公共云云計算

2021-02-09 10:50:25

數(shù)字化轉(zhuǎn)型IT數(shù)據(jù)

2021-05-17 10:51:21

云計算DevOps自動化

2016-10-27 14:02:56

大數(shù)據(jù)數(shù)據(jù)庫

2016-10-26 14:40:28

大數(shù)據(jù)基礎(chǔ)設(shè)施架構(gòu)

2009-09-24 09:12:22

開源商業(yè)模式Intel

2011-07-26 10:44:32

開發(fā)項目

2015-06-26 11:47:07

物聯(lián)網(wǎng)

2020-12-15 18:58:39

谷歌打分項目

2021-09-10 10:21:03

開源項目LinuxNginx

2024-01-03 17:39:23

云計算混合云

2013-08-14 14:36:07

開源項目

2022-07-27 14:47:01

開源項目
點贊
收藏

51CTO技術(shù)棧公眾號