非編程天才參與開源項目的14種方式

fmms 12年前發布 | 7K 次閱讀 編程

        英文原文:14 Ways to Contribute to Open Source without Being a Programming Genius or a Rock Star

        如果你想參與到開源項目中去,卻又不知道從何入手,這里提供一些參考方法或許能給你提供一些幫助,哪怕你對你目前的技術還缺乏自信都不要緊。

        開源軟件已經改變了 IT,甚至整個世界,正是因為有了你們,樂于奉獻在開源事業中。不幸的是,很多人把參與到開源項目中想象成一個難以跨越的障礙一樣,因此而退縮。我通常聽到人們說他們很想參與到開源項目中來,但是因為以下的 3 個原因而打消了念頭。

        1. 我還不足夠優秀

        2. 我沒有足夠的是時間

        3. 我不知道什么樣的項目適合我

        尋求機會參與到開源項目中去,你應該知道的三個基本原則:

        1. 項目需要各種能力層次的專業人才。

        2. 哪怕是微不足道的貢獻也比沒有好。

        3. 從你正在使用的項目作為參與到開源的第一步

        我從開源項目中所觀察到最要命的想法是那些新人總認為要成為某種類型的天才程序員才 能參與到開源中去,其實根本就不是這回事。當然,某些項目中的成員看起來就像搖滾明星,沒錯,他們確確實實是一個極具天賦的程序員,然而,我們中的絕大部 分不是的。我們僅僅是那些只要把任務完成的人。有時我們做的付出的不需太多,有時我們需要花大把的時間,有時它就是編程,而有時它不是。

非編程天才參與開源項目的14種方式

        0. 加入郵件列表:對于大多數項目,郵件列表仍然是項目開發溝通主要的渠道。在一個規模比較大的項目中通 常有很多郵件列表可以選擇,例如:PostgreSQL 項目就有不少于 12 個面向用戶的郵件列表和 6 個面向開發者的。我建議你關注最主要的幾個面向用戶郵件列表以及核心的開發者列表。

        1. 關注博客:博客一般由核心開發者維護,通常博客中包含項在未來版本的一些信息。如何獲取這些信息呢?通常一個星級站點有包括來自很多相關項目的新聞或者博客詞條,如果有一個星級站點,如:http://plant.gnome.org 或者 http://planet.mysql.com ,那么你要做的僅僅是用 Google 搜索”planet <項目名>”。

        2. 加入到 IRC 頻道:許多開源項目都有專門的互聯網中繼聊天(IRC)頻道,用來為開發者和用戶討論開發問題。仔細查找項目站點中 IRC 頻道叫什么。

        3. 代碼診斷:Bug 通常很難報告出來,診斷快速處置 bug 有助于節省開發人員的時間。如果用戶提出報告:“當我操作 XX 功能時,系統無法工作”,你得花些時間解決這些問題。還是不是會重復出現?例如該類問題是否只是發生在某種瀏覽器不兼容?只在發行版有這樣的問題還是其它的原因。

        4. 關閉已修復的 bug:  通常 bug 在代碼庫中修復了,但是在問題追蹤系統中還沒更新。清理掉這些雜亂的東西雖然耗時,但是對整個項目來說是值得的。

        5. 測試 beta 版或者候選版本:任何項目設計用于運行在多個平臺時就有可能存在各種兼容性問題。當一個 beta 版或者候選版發布時,項目帶頭人希望能在不同的人和不同的平臺上得到測試反饋結果,你就可以是其中之一。

        6. 修復 bug:修復 bug 通常是貢獻者開始接觸代碼的地方,非常簡單,在問題追蹤系統中找到感興趣的 bug,把 bug 修復,如果合適的話為代碼的修復撰寫文檔。

        7. 寫測試:絕大多數項目都有測試套件用來測試代碼,很難想象測試套件中不能附加更多的測試在其上。使用測試覆蓋工具諸如基于c的 gcov、基于 Perl 的 Devel::Cover,用來標識源代碼沒法通過測試套件測試到的范圍,然后添加一個套件覆蓋它。

        8. 理性對待編譯警告:許多基于C項目的構建過程中經常會出現很多古怪的編譯警告,這些警告通常不是錯誤,但是看起來像,太多的警告讓編譯器聽起來就像在發假警報,仔細檢查代碼是否的確隱藏有 bug。

        9. 附上注釋:當你在深入研究代碼時,你可能發現有疑惑的地方,如果感到疑惑,這對你來是一個機會,比別人也可能碰到同樣的問題,給他們貼上注釋提交補丁。

        10. 創建例子:一般項目都沒有太多入門的例子,不管是 web API、普通程序庫、或者是 GUI 應用如 Gimp、還是命令行工具,比起長篇的文檔,一個恰當的例子能夠更清晰更快速解釋軟件的使用方式。

        11. 問題回答參與到社區最好的方式是幫助別人。回答問題,尤其是那些初次涉及的,這對于一個項目的成長很關鍵,即使你回答只是簡單地”RTFM”(read the fxxk manual),每個人都要行動起來,項目如果要變得強大起來的話每個人需要動員起來。

        12. 寫博客:如果你有博客,寫下你使用項目的一些經驗,記錄你碰到的問題及解決的方法。你可以通過兩種方式來提供幫助,一個是記住你身邊幫助過你的人,另一個是記錄下你將來可能會碰到的問題。

        13. 改進網站:很多程序員在圖形設計方面顯得非常糟糕,尤其是那些不能從設計部門得到幫助的項目網站。 如果你有網頁設計方面的技能,不妨改進下網站,網站作為項目的招牌,是值得花時間的。或許項目界面需要徹底改造,抑或僅僅是一個 logo,這些是社區缺乏的技能,如果我能提供一些圖形設計上的幫助,我會非常喜歡的。

        有太多的方式參與到開源項目中,哪怕是我們寫一個新產品的特性的歷史回顧。每個使用開源項目的人都可以把技術帶到社區和幫助開源成為 IT 產業中重要的一部分。

        英文原文:Andy Lester    編譯:伯樂在線 – 劉志軍

 本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!