精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

把一個庫開源,你該做些什么

開發 項目管理
把一個庫開源非常簡單,僅需幾秒鐘。你所需要做的僅僅是把公共倉庫托管在網上嗎?不!事實上,如果你對非常酷的并且可以公開使用的庫悉心照料的話,這樣做對每個人都是件更好的事情。來看下這些是怎么做到的。

把一個庫[1]開源非常簡單,僅需幾秒鐘。你所需要做的僅僅是把公共倉庫(public repository) 托管 (hosted) 在網上(GitHub, Bitbucket,等等)嗎?不!事實上,如果你對非常酷的并且可以公開使用的庫悉心照料的話[2],這樣做對每個人都是件更好的事情。來看下這些是怎么做到的。

README的編寫

README文件在你的項目中占據首要地位。你的項目必須包含它!這個文件必須包含庫的名字和一個關于它(簡短的)描述。把描述這一章節當作是電梯游說 (elevator pitch,在乘電梯的30秒內清晰準確地向客戶解釋清楚解決方案)。

然后是編寫使用章節。盡可能詳細地用文字、代碼片段、截圖或者GIF格式的圖片,來描述如何使用你的庫。這個就是你項目的文檔, 你的庫很多時候也同樣如此, 這將會是你唯一提供的文檔。

先寫使用指南這部分并不是一個隨意的選擇。README文件應該能吸引讀者(blow your reader's mind),這樣他們就會使用你的庫并為它做出貢獻(或許不會)。

第三小節必須寫安裝方法。這個小節以*用戶*的角度說明怎樣快速安裝你的庫。如果有多種安裝方式,首先介紹你認為最好的方式,然后才是(介紹)其他的。

你可以添加一個依賴章節,例如,依賴X的Y版本(Depends on X version Y) 。這個章節是可選的,可以不寫。

第四個必須編寫的小節是貢獻。盡管它可以使用一個CONTRIBUTING 文件代替。說明怎樣折騰你的庫(how to hack your library),怎樣報告bugs,或者怎樣提交特性請求(submit feature requests)。這方面介紹一定要詳細。說明規則,讓收到的請求合并中避免評論每一行[3],指引貢獻者使用恰當的工具(Point contributors to the right tools ),比如linters 或者 compilers。

你還必須添加一個測試章節。說明怎樣安裝測試套件,怎樣運行功能測試(functional tests),以及需要安裝的工具。

如果你使用第三方的東西,或者打算列出貢獻者(當然這個也可以寫在作者章節),那就添加一個信用(Credits)章節。這個章節是可選的,可以不寫。

最后還要記住,添加一個許可證章節!

模板如下(Markdown 語法):

  1. project-x     <-------- 一級標題 (項目名字)  
  2. =========  
  3.  
  4. project-x is a better way to achieve this and that, by leveraging the new API,  
  5. blablabla.  
  6. project-x用更好的方式實現某某功能,通過使用高效的新API,此處省略N個字。  
  7.  
  8. ## Usage(使用)     <-------- 二級標題  
  9. ...  
  10.  
  11. ## Installation(安裝)  
  12. ...  
  13.  
  14. ## Requirements(依賴)  
  15. ...  
  16.  
  17. ## Contributing(貢獻)  
  18.  
  19. See CONTRIBUTING file.  
  20. 查看 CONTRIBUTING 文件。  
  21.  
  22. ## Running the Tests(執行測試)  
  23. ...  
  24.  
  25. ## Credits(信用)  
  26. ...  
  27.  
  28. ## License(許可證)  
  29.  
  30. project-x is released under the MIT License. See the bundled LICENSE file for   
  31. details.  
  32. project-x 依據 MIT許可證發布。詳細請看捆綁的 LICENSE 文件。 

正如你所看到的, 我在模板里介紹了兩個文件: LICENSE(許可證)和CONTRIBUTING(貢獻指南)。貢獻這一小節的內容用一個文件CONTRIBUTING代替了。LICENSE(許可證)這個文件里包含了你項目選擇的許可證,但你應該選用哪個許可證呢?

許可證

我不想把所有的許可證都一一對比,你可以訪問tl;drLegal這個網站,它用易懂的話(simple words)向你介紹實用的(useful)開源許可證相關信息。

我傾向于使用 MIT許可證,因為它非常自由(liberal)。我這里的建議是參考下你的社區,選擇最恰當的一個。比如說,在Symfony2 (一個PHP框架)社區,大多數相關的項目或者bundles 都是以MIT許可證發布的。而Java 的項目經常以Apache許可證2.0(Apache License 2.0)發布的。

根據最近的報道(reports),大多數 GitHub上的項目沒有一個開源許可證。這是不好的(bad)!你必須得有許可證,即使是啤酒軟件許可證(Beerware license)。

正如Hacker News所提到的,精心(carefully)選擇你的許可證。并且,不要用你自己做的許可證或者僅僅聲明這個項目屬于公共領域 (Public domain,簡單來說作品已屬于全人類)。公共領域在國際上的確不是準確定義的概念,意味著不同國家會有不同的理解。

即使你現在有一個文檔完善的庫和一個許可證,還是沒有“征服世界”(dominate the world)[4]。下面,我給出一個概覽,介紹在開源項目中我認為重要的東西。

寫自動化測試(Write Tests & Automate)

我們可以通過開源項目寫優美的代碼,因為這里沒有截止期限,也沒有“客戶”。記住,你項目展示了你能夠做什么。作為一個開發者,你的庫就是你的名片。

寫大量的測試!如果沒有提供一個測試套件,怎么去期望別人能為你的庫做出貢獻呢?因此, 寫測試, 和使用 Travis CI。 添加一個 .travis.yml 文件,描述怎么樣運行你的測試。這也是另一種方式寫如何運行測試的文檔。

在你的README文件里也添加一個狀態圖片(status image)。

留意一下(Take a look at)在線工具,例如PHP和JavaScript使用Scrutinizer , 或者 Puppet Linter。盡量使其自動化。

#p#

標準化(Be Standard)

在你的庫中使用恰當的工具(right tools)是非常重要的。再看一下你的社區,然后選擇大家常用(tend to use)的工具。在用PHP寫的程序里,大家都用 Composer 作為管理依賴關系的工具(dependency manager)。不要浪費時間去用PEAR或者其他工具,就用Composer。如果是一個Node.js庫,在npm上注冊它。Ruby 的開發者,請把你的庫作為gem發布(distribute your library as a gem)。C#的開發者,請使用NuGet。

另一個例子,在Symfony2里,在Resources/doc 里添加文檔是一個好的做法(good practice)。這是個慣例。不要重復出現你的文檔,而是在你的README文件里添加一個快速跳到文檔的鏈接。

管理問題(Issues)和版本發布(Releases)

GitHubCodePlex,或者其他你喜歡的,他們都提供了追蹤問題(issue tracker)的工具,請使用它!

如果你使用GitHub,不要浪費時間在Wiki上。我從來沒有發現一個適當的工作流程(decent workflow)。用README文件作為你的文檔,或者萬一(in case)文檔量很大(extensive documentation)的時候使用Read The Docs來做托管。使用 GitHub Issues 來管理里程碑,并用標簽對問題進行分類。

還有,嘗試盡快回復所有的問題…但be careful, and manage your time。對人友好,花時間幫助新來的人。非常值得去學習如何維護一個成功的開源項目。

另一個建議是,定期地打上版本標簽來進行發布(to release often by tagging versions periodically)。談起版本, 請關注(follow) Semantic Versioning Specification。

然后,用CHANGELOG(更改日志)這個文件來幫助用戶識別出你做出的更改。如果你不向后兼容,寫一個UPGRADE(升級)文件介紹說明如何升級。

你需要反饋!

開源大量項目最主要的原因是,可以從用戶的反饋中學到很多東西。所以你需要反饋,我需要反饋,每個人都需要反饋!在Twitter,Hacker News等等上分享你的項目。讓全世界都知道!人們必須知道你的項目并不是因為它很出色,令人難忘,而是因為人們可以評論它。

使用 GitHub pages 為你的項目創建主頁,如果你愿意還可以買個域名,

還記得"征服世界"的計劃嗎?你要實現這個目標幾乎需要到的,我們永遠不知道。

雇人(Hire People)

一旦你"征服世界",招收別人(enroll new people)[5]來幫助你非常重要這是非常棒的體驗。這樣會給你更多的時間來搞其他開源項目(也可以說是征服另一個世界的計劃) :-)

總而言之

讓一個庫開源不僅僅是發布源代碼。你還需要再做一些事情來讓別人更容易更愉快地使用它。為項目寫文檔展示了你的教學能力,這樣就可以找到恰當的詞來表達你的想法。當然,還說明了你在用心地做這件事。

不要忘記在你的庫里面添加測試,如果你在工作中不方便,回家再做。還有別忘了許可證,別找借口!

開源項目真的非常酷,但是要避免非我發明癥(Not Invented Here (NIH) Syndrome)。盡可能地做貢獻,而不是再開創一個已有的開源項目,重復造輪子。

TL;DR

你的庫或者項目:

  • 必須有一個README文件,內容包括名字,描述還有以下章節:使用方法,安裝指南,貢獻規范,如何測試和許可證;
  • 必須有一個顯眼的許可證(MUST have a license that is visible);
  • 必須能測試(MUST be tested);
  • 必須標準化或者符合你社區的慣例;

你:

  • 需要反饋;
  • 必須待人友善;
  • 應該招人(enroll people)。

順便說一下:如果你發現排版錯誤和錯別字。請派生(fork)和修改它。非常感謝!本文以Creative Commons Attribution-ShareAlike 3.0 Unported License許可證發表。

譯注:

  1. I use “project” as a synonym of “library”,My blog post focuses on libraries as Open Source projects, rather than “projects” like products (applications). 原作者的開源項目主要是庫,所以這篇文章對其他類型的開源項目同樣適用。

  2. 原文:add some love to your new shiny library you just made publicly available.

    • love = take care of
    • shiny = well, shiny is… shiny, something which is cool, and beautiful
  3. 原文:Explain the rules to avoid commenting every single line in Pull Requests you receive.

  4. it's a joke, 這是個玩笑。

  5. 作者原話:enroll = hire (more or less), but it's not because of the previous sentence. You don't hire people “for real” (like a company would do I mean) 因此我把 enroll 譯作 招收

原文地址: On Open Sourcing Libraries

譯文鏈接:http://funwo.tk/2013-08-06-on-open-sourcing-libraries-cn.html

責任編輯:林師授 來源: 快樂窩
相關推薦

2018-06-11 23:27:49

2015-07-15 21:22:57

軟件架構師架構師

2015-04-28 15:37:23

2021-03-08 11:05:53

編程開發軟件

2015-10-20 14:59:02

WAN架構IT混合WAN

2014-06-24 13:17:50

實施CRM

2011-05-04 16:54:37

vSphere

2012-07-30 09:40:52

Lua

2009-04-17 16:11:59

程序員職場合格

2024-04-10 08:00:00

2011-05-18 13:54:30

DBA

2022-04-29 08:00:06

Linux目錄網絡

2020-04-10 10:15:29

算法開源Github

2015-09-16 10:35:33

創業創業想法

2024-05-28 07:06:44

2023-10-10 08:22:12

Tesseract庫開源

2013-11-01 10:23:37

Web程序

2020-11-19 16:48:47

數據庫開源開發

2013-08-08 10:27:03

云計算

2021-03-17 10:16:39

樹莓派音樂系統Linux
點贊
收藏

51CTO技術棧公眾號

久久久久久久久久久91| 欧美日韩视频在线第一区| 成人自拍网站| 日韩 欧美 综合| 国产99久久精品一区二区300| 欧美性猛交xxxx富婆弯腰| 欧美一区二区三区四区夜夜大片 | 91精品无人成人www| 日本中文字幕在线看| 国产自产高清不卡| 久久影视电视剧免费网站清宫辞电视 | 老司机午夜性大片| 伊人影院在线视频| av中文一区二区三区| 国产精品久久久久久久av大片| 91动漫免费网站| 日韩一级特黄| 亚洲国产三级在线| 色阁综合av| 精品乱子伦一区二区| 亚洲国内欧美| 在线观看日韩欧美| 折磨小男生性器羞耻的故事| 免费成人美女女| 一区二区在线观看免费 | 免费久久久久久久久| 在线观看91av| 免费成人在线视频网站| 日本a级在线| 粉嫩一区二区三区性色av| 2019亚洲日韩新视频| 日韩一区二区三区四区视频| 高清日韩欧美| 欧美高清性hdvideosex| 怡红院av亚洲一区二区三区h| 三级理论午夜在线观看| 国产综合色在线| 日韩av观看网址| 国产一级做a爰片在线看免费| 国产一区二区欧美| 精品精品欲导航| 天堂一区在线观看| 国产探花视频在线观看| 国产精品成人一区二区三区夜夜夜| 风间由美一区二区三区| 国产又粗又猛视频免费| 性久久久久久| 久久久久久亚洲精品不卡| 亚洲高潮女人毛茸茸| 麻豆国产一区二区三区四区| 色屁屁一区二区| www.亚洲视频.com| 91伦理视频在线观看| 久久综合色之久久综合| 粉嫩av免费一区二区三区| 国产伦精品一区二区三区视频痴汉| 国产亚洲精品久久久久婷婷瑜伽| 欧美刺激性大交免费视频| 东京热无码av男人的天堂| 亚洲制服欧美另类| 日韩av在线精品| 无码任你躁久久久久久老妇| 精品免费av一区二区三区| 岛国av一区二区在线在线观看| 性高湖久久久久久久久aaaaa| 黄色成人影院| 国产精品大尺度| 亚洲欧美日韩不卡| 黄色小网站在线观看| 国产精品国产三级国产普通话三级 | 国产精品第5页| 宅男噜噜噜66国产日韩在线观看| 久久久久久久影院| 国产在线综合网| 黄色成人在线网址| 97国产在线观看| 国产在线欧美在线| 一本一本久久| 国产成人午夜视频网址| 天天天天天天天干| 免费在线观看成人| 成人国产亚洲精品a区天堂华泰| 中文字幕欧美人妻精品| 麻豆精品新av中文字幕| 国产一区视频在线| 国产日韩精品suv| 国产伦精品一区二区三区免费迷| 91亚洲人电影| 午夜精品久久久久久久91蜜桃| 国产精品99久久久久久似苏梦涵| 亚洲xxxx在线| 涩涩视频免费看| 久久中文娱乐网| 翔田千里亚洲一二三区| 国产网友自拍视频导航网站在线观看 | 狠狠色香婷婷久久亚洲精品| 黄色一级二级三级| 欧美一区二区三区婷婷| 欧美一区二区三区喷汁尤物| 亚洲黄色小说在线观看| 网友自拍区视频精品| 国产亚洲精品久久| 我要看一级黄色录像| 欧美日本免费| 国产97在线|亚洲| 国产精品国产三级国产aⅴ| 国产成人午夜精品5599| 久久久综合香蕉尹人综合网| 自拍视频在线| 一区二区三区蜜桃| 日本wwww视频| 国产精品一区二区三区四区在线观看| 欧美精品一区二| 欧美熟妇精品一区二区蜜桃视频| 国产精品欧美三级在线观看| 久久伊人精品视频| 亚洲精品男人的天堂| 久久99精品国产.久久久久久 | 国产精品免费精品自在线观看 | 日韩欧美一区三区| 香蕉久久久久久| 亚洲美女av在线播放| 黄色片子在线观看| 久久久成人网| 成人一区二区三区四区| 成人精品福利| 亚洲成av人**亚洲成av**| 一路向西2在线观看| 第一区第二区在线| 色老头一区二区三区| 成人免费a视频| 国产成人综合亚洲91猫咪| 日韩av电影在线观看| 久久香蕉一区| 在线播放一区二区三区| 右手影院亚洲欧美| 欧美 亚欧 日韩视频在线| 国产精品免费视频xxxx| 三级做a全过程在线观看| 一区二区三区不卡在线观看| 超碰av在线免费观看| 国产精品高潮呻吟久久久久| 久久精品成人欧美大片| 波多野结衣大片| 91免费国产在线观看| 国产精品av免费观看| 激情久久一区二区| 亚洲欧美资源在线| 在线观看亚洲欧美| 99久久婷婷国产精品综合| 日本黄色a视频| 国外成人福利视频| 色诱女教师一区二区三区| 国产女主播喷水视频在线观看| 福利电影一区二区| 免费网站在线观看视频| 欧美成人福利| 深夜福利亚洲导航| 中文字幕一区二区人妻| 欧美国产禁国产网站cc| 人妻无码视频一区二区三区 | 亚洲国产精品va在线| 麻豆成人在线视频| 丁香五精品蜜臀久久久久99网站| 黄色片免费在线观看视频| 激情不卡一区二区三区视频在线| 久久精品99久久久香蕉| 91麻豆成人精品国产免费网站| 欧美韩日一区二区三区四区| 国产欧美高清在线| 欧美日韩大片免费观看| 国产91av在线| 国产九色在线| 欧美亚州韩日在线看免费版国语版| 欧美bbbbb性bbbbb视频| 久久99伊人| 日韩理论片在线观看| 久久久久久久性潮| 欧美成年人视频| 亚洲精选一区二区三区| 午夜精品一区二区三区三上悠亚 | 国产主播在线观看| 99精品在线免费| 日韩av在线综合| 亚洲国产精品嫩草影院久久av| 欧美中文字幕在线播放| 青青草手机在线| 欧美性生交片4| 欧洲美女女同性互添| 国产精品123| 免费观看亚洲视频| 看全色黄大色大片免费久久久| 国产91|九色| av电影在线观看网址| 日韩一级片网址| 免费在线不卡视频| 亚洲美女免费视频| 自拍偷拍亚洲天堂| 国产成人精品一区二| www.xxx亚洲| 91久久视频| 国产又爽又黄ai换脸| 亚洲+变态+欧美+另类+精品| 91精品久久久久久久久久久久久| 国产美女高潮在线| 久久福利视频网| 国产爆初菊在线观看免费视频网站| 日韩精品一区二区三区视频播放| 五月婷婷丁香在线| 黑人巨大精品欧美一区二区免费| www.超碰在线观看| 亚洲国产精品精华液ab| 国产福利在线观看视频| 国产综合色视频| www欧美激情| 久久福利精品| 久久国产精品视频在线观看| 亚洲一级淫片| 亚洲精品高清视频| 国产精品密蕾丝视频下载| 国产精品一区二区三区在线| 日本一区影院| 91精品国产综合久久久久久蜜臀| 欧美一区国产| 欧美在线一级视频| 男女羞羞在线观看| 久久久噜噜噜久久中文字免| 日韩特级毛片| 欧美日本在线视频中文字字幕| av网站在线免费观看| 一区国产精品视频| 青青视频在线观| 亚洲精品一二区| 五月婷婷深深爱| 亚洲国产精品久久久久久| 亚洲黄色在线播放| 欧美成人女星排名| 丰满人妻一区二区| 欧美mv和日韩mv国产网站| jizz中国女人| 欧美一级二级在线观看| 国产深喉视频一区二区| 在线不卡欧美精品一区二区三区| 亚洲天堂手机在线| 欧美日韩成人一区| 国产又大又黄的视频| 欧美日本乱大交xxxxx| 91久久久久国产一区二区| 欧美日韩国产中文| 国产精品毛片一区二区在线看舒淇 | 欧美国产视频在线| 国产毛片欧美毛片久久久| 久久精品综合网| 黄色片网站免费| 中文文精品字幕一区二区| 91成人精品一区二区| 一色屋精品亚洲香蕉网站| 激情高潮到大叫狂喷水| 最新欧美精品一区二区三区| 国产成人久久久久| 亚洲一区二区三区中文字幕 | 国产成人免费观看| 国产精品对白久久久久粗| 久久精品日产第一区二区三区| 美女久久久久| 亚洲欧洲精品一区二区| 这里只有精品在线| 中文字幕无码精品亚洲资源网久久| 国产亚洲激情| 日本特黄a级片| 国产高清精品网站| 免费的av网站| 欧美极品少妇xxxxⅹ高跟鞋| 一区二区三区影视| 亚洲电影激情视频网站| 免费无码国产精品| 欧美美女bb生活片| 东京干手机福利视频| 亚洲人在线视频| 黄网页在线观看| 国产91精品久久久久久| 久久亚洲国产精品尤物| 成人在线观看91| 欧美视频免费| 欧美一级视频免费看| 免费成人性网站| 蜜臀视频在线观看| 中文字幕久久午夜不卡| 久久久久久免费观看| 在线免费一区三区| 亚洲va欧美va| 国产亚洲精品久久久久久| 亚洲电影视频在线| 国产精品电影在线观看| 国产精品调教| 午夜精品一区二区在线观看| 欧美精品日本| 手机看片一级片| 97久久精品人人澡人人爽| 中国毛片直接看| 色94色欧美sute亚洲13| 高h调教冰块play男男双性文| 在线观看国产精品91| 18video性欧美19sex高清| 国产在线日韩在线| 日韩av黄色在线| 免费网站在线观看视频 | 精品人妻伦一二三区久| 国产精品国产三级国产aⅴ无密码| 国产精品9191| 欧美一区二区观看视频| 91在线免费看| 日本sm极度另类视频| 1769国产精品视频| 在线不卡视频一区二区| 视频一区在线视频| 日韩综合第一页| 亚洲精品日日夜夜| 中文字幕一区二区在线视频| 日韩精品在线视频美女| 99热99re6国产在线播放| 亚洲一区二区三区sesese| 久久大综合网| 欧美日韩大尺度| 久久久综合视频| 国产精品suv一区| 日韩成人在线视频| 国产高清自产拍av在线| www.成人三级视频| 国产精品v欧美精品v日本精品动漫| 在线观看免费的av| 欧美经典一区二区| 中文字幕+乱码+中文字幕明步| 亚洲男人的天堂在线| 欧美freesex黑人又粗又大| 国产精品一区二区三区在线| 激情视频一区二区三区| 免费啪视频在线观看| 一区二区三区在线视频播放 | 亚洲欧美精品中文字幕在线| 国产社区精品视频| 久久艳妇乳肉豪妇荡乳av| 99精品国产福利在线观看免费 | 国产91|九色| 亚洲男人都懂第一日本| 国产男女无遮挡| 久久久精品人体av艺术| 精品人妻无码一区二区性色| 亚洲乱码av中文一区二区| 涩涩视频网站在线观看| 欧美另类网站| 日韩福利电影在线| 日本不卡一二区| 日韩区在线观看| 久久电影网站| 蜜桃免费一区二区三区| 久久一区欧美| 亚洲色图欧美色| 91精品福利在线一区二区三区 | 欧美在线视频在线播放完整版免费观看 | 日韩一区二区免费电影| 日本孕妇大胆孕交无码| 久久精品人人做人人爽电影| 三级久久三级久久| 麻豆一区在线观看| 日韩网站在线看片你懂的| 国产99在线| 日本一区二区视频| 国产综合色在线视频区| 国产一二三四在线| 亚洲精品综合精品自拍| 激情久久99| av网站手机在线观看| 久久久久九九视频| 国产精品视频一区二区三区,| 久久久久久久久久久av| 小说区图片区色综合区| 日韩在线一区视频| 午夜精品影院在线观看| aaa在线观看| 国产精品免费一区二区三区在线观看| 欧美亚洲一区| 性生交大片免费全黄| 亚洲国内精品在线| www.国产精品| 亚洲熟妇av日韩熟妇在线 | 日韩av女优在线观看| 亚洲视频日韩精品| 国产精品视频一区二区三区综合| 三上悠亚久久精品| 中文字幕亚洲成人| 亚州av在线播放| 亚洲在线第一页| 视频精品一区二区| 久久精品国产亚洲av麻豆色欲| 在线观看视频99| 日韩极品在线| 波多野结衣在线免费观看| 色噜噜狠狠成人中文综合| 三级资源在线|