開源專案開發基本知識

2021-06-21 11:11:06 字數 1262 閱讀 2385

2.  開源社群的合作開發模式,很多開源的專案都會放在知名的開源社群,例如freedesktop,gnome,以方便全球程式設計師聯合開發,他們有一套自己的資源去協作所有人的工作:

1)maillist, 用於討論具體專案的開發,相當於是乙個郵件群,開發者經常會在裡面發自己的patch,所有的群成員都可以看到這個patch,並可以對其提出意見和建議,patch的作者可能會依據討論的結果重新寫patch,重發,重新討論,直到project maintainer認為patch ok了,他才會去merge這個patch(當然,也有可能根本沒人鳥你的patch,因為大家都很忙,沒空也沒義務去看或者merge你的patch,所以在開源社群混,很需要耐心)

2) bugzilla,用於report bug,所有人都有許可權在上面報bug,也可將patch放在上面,可以在下面comments。

3) project repo,一些社群有自己的專門code server,用於儲存專案,例如freedesktop,當然也可以使用一些免費通用的code server,例如github,gitorious等等。

3. **質量和安全

開源專案對**的質量和安全會要求比較高,所以自己提交的patch最好能follow 專案已經定下的**風格,並能用一些工具去檢查**中的常見技術和法律風險。

1) 對於**風格,一般包括**縮排風格和 函式變數命名規則, 以統一格式可以使得code看起來更加規範和美觀。

linux下常用的**縮排格式工具有indent和astyle,它們可以控制**如何縮排,空行,空格,設定comment格式等等,使用者可以直接指定某一中style,如k&r , linux indent style(可以參考我的博文: indent tool and k&r style), 一般可以在code repo裡面新增一些指令碼來檢查 code indent format。

函式和變數的命名也要符合一定的規則, 具體style有很多種,選擇一種,然後寫code時候都按照style來。

doxygen 文件,如果希望自己的code能很便捷的生成一些幫助文件的話,需要按照doxygen格式去新增**注釋,尤其是針對函式和變數的定義說明,方便讀者快速查詢函式 功能或者變數意義。       

2)對於**安全,

技術安全, 最好是能用一些工具(例如clocwork)做些基本的檢查,避免記憶體洩露或者基本的邏輯錯誤。

法律風險,如果有條件的話,可以對自己專案的code做個ip scan,檢查是否有從其他地方copy過來的code,堅持是否違反了 ip plan,如果是,就需要想辦法解決

4.  精通**管理工具,例如git

專案管理(1) 基本知識

1.什麼是專案 就是在特定的資源和要求的約束下,為了提供某項獨特產品 服務或成果所做的臨時性努力。特徵 目的性 時限性 唯一性 合作性2.什麼是專案管理 就是把各中知識 技能 手段和技術等應用於專案活動中,以達到專案的要求。3.專案經理 專案經理就是負責實現專案目標的人。需要掌握的知識領域包括 專案...

專案經驗 之執行緒基本知識

一 執行緒標識 每個執行緒有乙個執行緒id,執行緒id用pthread t型別表示,可移植作業系統一般不能把它作為整數處理。linux下的pthread,一般的實現是 程序id pid t pid pid t unsigned int 執行緒id pthread t tid pthread t un...

嵌入式開發基本知識

博文目錄 回到頂部 搜尋了一些有關於對嵌入式開發的一些基礎知識,分享給大家!答 當改變 mam 定時值時,必須先通過向 mamcr 寫入 0 來關閉 mam,然後將新值寫入 mamtim。最後,將需要的操作模式的對應值寫入mamcr,再次開啟mam。對於低於 20mhz 的系統時鐘,mamtim 設...