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

轉自:http://blog.jobbole.com/16792/mysql

若是你想參與到開源項目中去,卻又不知道從何入手,這裏提供一些參考方法或許能給你提供一些幫助,哪怕你對你目前的技術還缺少自信都沒關係。程序員

開源軟件已經改變了IT,甚至整個世界,正是由於有了大家,樂於奉獻在開源事業中。不幸的是,不少人把參與到開源項目中想象成一個難以跨越的障礙同樣,所以而退縮。我一般聽到人們說他們很想參與到開源項目中來,可是由於如下的3個緣由而打消了念頭。web

1. 我還不足夠優秀sql

2. 我沒有足夠的是時間編程

3. 我不知道什麼樣的項目適合我瀏覽器

 

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

1. 項目須要各類能力層次的專業人才。測試

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

3. 從你正在使用的項目做爲參與到開源的第一步命令行

 

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

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

1. 關注博客:博客通常由核心開發者維護,一般博客中包含項在將來版本的一些信息。如何獲取這些信息呢?一般一個星級站點有包括來自不少相關項目的新聞或者博客詞條,若是有一個星級站點,如:http://planet.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產業中重要的一部分。

相關文章
相關標籤/搜索