2009-09-18 26 views
2

我最近開始研究一些我認爲與我的興趣相關的開源項目。最低限度你需要爲一個開源項目工作

在這個初始階段,我遇到了一些我不熟悉的術語/東西,比如配置,工具鏈,binutils等,我同意這取決於你正在使用的項目類型。

現在我的問題是,在開始工作之前,開發者是否應該知道一些裸露的需求?

任何幫助/參考將不勝感激。

編輯:

我見過的GNU配置和大部分項目我已經看到了構建系統。 如果有人困擾它,「The GNU configure and build system」是一個很好的開始。

+0

咖啡因。很多和咖啡因。 ......但我認爲這適用於所有的編程。 :) – Powerlord 2009-09-18 14:42:48

回答

12

如果它是已有的,那麼您需要閱讀他們的開發文檔(如果有的話),學習如何使用他們的版本控制系統,以及構建代碼並運行它的必要工具。

如果你有這一切,代碼/語言的知識,那麼你只需要熱情和一些空閒時間:)

+2

一些開源項目有開發人員論壇或郵件列表,您可以參加提問。作爲一種常見禮節,請確保您已閱讀所有文檔,並在提出問題之前自行解決問題。 – DMKing 2009-09-18 14:46:07

+0

即使無法滿足​​代碼/語言/構建系統知識要求,也始終關注測試,本地化和文檔的幫助。 – Dmitry 2009-09-18 17:15:47

+0

你也想學習他們的編碼(格式)風格。如果您只使用自己的代碼並發現其他代碼格式化方式很糟糕,這可能是一個難題。 – hippietrail 2012-12-12 05:46:14

1

我認爲,完全取決於項目。最全面建立軟件項目將具體說明:

  • 什麼語言(S)他們寫在
  • 哪些開發環境(如果有的話),他們成立了
  • 你需要什麼樣的工具來構建/編譯/運行項目與測試軟件

你在工作

  • 測試數據?你確定他們沒有提供這些信息嗎?

  • 4

    我不會將它們定義爲裸露的需求,因爲它看起來您正在尋找。如果你是一名程序員,你已經擁有(希望!)自學習和解決問題的特性,可能首先讓你成爲程序員。

    你永遠不會真的知道'一切',並且可能會在你到處學習新的東西。哎呀,我得到了我目前的工作,甚至從來沒有聽過「模型 - 視圖 - 控制器」這個詞,但很快就明白了這個概念。

    您的示例工具鏈和binutils不是複雜的概念,簡單的wiki文章應該足夠了。

    0

    如您所說,它取決於項目。

    你必須知道如何使用語言,你必須熟悉他們使用的源代碼控制系統(通常是顛覆)。你必須能夠建立(通常是Ant,通常是Maven)。

    2

    我建議下載所有的源代碼,並確保您可以自己構建它作爲第一步。

    在嘗試進行任何更改之前,請確保您熟悉整體設計和文檔,以確保您在第一次更改時不會無意中破壞任何內容!

    正在使用的術語可能取決於正在使用的技術,例如用C++編寫並在Linux上運行的開放源代碼項目可能與在Windows上運行的C#/ .NET應用程序生成大不相同。

    2

    這取決於你將參與多少參與。如果您只想提供一項功能,只需獲取構建項目的工具,編輯器即可更改文件並獲得足夠的文檔閱讀量,以便爲您的功能找到注入點。如果你能找到幫助你入門的人,那會很容易。

    如果您致力於該項目,我建議學習構建工具,項目歷史和目標。此外,當前作者如何嘗試解決這些問題,他們對該項目的看法將有所幫助。

    1

    我會說,能夠理解所有的架構,工具和技術,無論你正在從事什麼項目是必須的。

    然而,然後,你試圖使這個通用的問題適用於任何開源項目。你有沒有回答你自己呢?

    我同意取決於 項目的您在

    +0

    所有架構?,嘗試從頭到尾或內核理解Apache或PHP – 2009-09-18 14:53:58

    1

    工作類型這要看你什麼資格作爲該項目的「工作」。

    這裏的大多數答案都表明你正在編碼(並且你的問題暗示在那個方向上),但是你可以做一些事情來爲項目做出貢獻 - 比如測試和文檔 - 可以不用瞭解程序的寫法。

    現在,對於它的編碼方面 - 如果它是一個較小的項目,我會試圖找出其他貢獻者的動機和項目的宏偉計劃/目標。和任何團隊一樣,即使你有良好的打算,進入並試圖採取與其他人計劃完全不同的方向,可能會導致各種問題。

    (然後有技術意見,每個人都去說......源頭控制,建立系統,工程建築,使用工具包等)

    相關問題