如何向開源軟件貢獻自己的力量?
“我想向開源社區(qū)貢獻源碼,但是該怎么做呢?”我經(jīng)常看見很多很多學生在很多論壇里問這個問題。有很多種方式可以貢獻源碼,我列出了很多,希望能夠對你們有多幫助。
貢獻給現(xiàn)有的項目:
雖然你對于貢獻源碼感興趣,但并不是所有的開源產品都會接受你。每一個產品都有一些編碼和提交代碼的規(guī)范,而你需要遵循這些規(guī)范。
你感興趣的領域:首先選一個符合你的興趣或者使用了你喜歡的編程語言和技術的項目。不要僅僅根據(jù)開發(fā)語言來選擇你感興趣領域的項目。僅僅通過了解Java你不一定能勝任游戲項目的任務,你應該對它感興趣才行。
對項目進行了解:找到項目所在的網(wǎng)站,你可能會找到關于“如何參與項目”、“用戶手冊”等信息的鏈接。了解他們的指導方針,編碼標準和補丁的驗收標準。加入他們的開發(fā)和用戶郵件列表。下載源碼并且試著了解他們是怎樣實現(xiàn)的。
提交者:每一個項目都會有一個或者更多的提交者。他們負責提交代碼。你的代碼應該通過他們提交。很多項目可能會要求志愿者們把變更過的代碼發(fā)給提交者,有些項目可能要求發(fā)送代碼補丁到項目郵件列表。但最終你的代碼將通過提交者提交到項目的主分支中。
測試和文檔:編寫代碼并不是參與項目的唯一方式。你可以做測試和記錄bug。你可以幫助完善項目文檔。對信息進行本地化或者將幫助手冊翻譯成其他語言。
參與到新的項目中:
尋找一些想法一致的人群然后根據(jù)你的想法開啟一個新的項目。選擇你的許可證的條款和條件。很多人就是通過開發(fā)新的開源產品獲得了成功。
重復發(fā)明輪子:如果你沒有任何獨特的想法,那么你可以“重復發(fā)明輪子”。你可以嘗試做一些別人做過的東西,但一定要加入特有的功能。應該跟別人的軟件有一些獨特之處和差異,這樣才能讓別人使用你的軟件。很多人會倡導“不要重復發(fā)明輪子”,但是如果真是這樣,那么在每個行業(yè)領域內將只存在一見產品。這不是同一個問題,通過“重復發(fā)明輪子”,你可以學到很多。
陳舊的項目:從Sourceforge或者GitHub這樣的代碼托管網(wǎng)站尋找一些陳舊的或者閑置的項目。該項目的***一項活動可能是一年或兩年后。選擇一個這樣的項目,解決掉項目中的問題,然后賦予項目新的生命。
代碼移植:很多人可能會對代碼移植很感興趣。如果你是一個Java程序員,你發(fā)現(xiàn)了一些用Python或者Ruby語言開發(fā)的有趣的東西,那么把它們移植到Java語言來。將代碼從一項技術移植到另一項技術中。一個程序員不可能掌握所有的編程語言,移植好的項目真的會對你有很大幫助,而且很多人都會感激你的努力付出。
很多人有興趣,但僅僅只是興趣,很少有人會真正去做一些事情。一旦你開始做了,別人就會追隨你的步伐。