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

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

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

1. 我還不足夠優秀

2. 我沒有足夠的是時間

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

 

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

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

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

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

 

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

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產業中重要的一部分。

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章