三庫(開發庫、受控庫、靜態庫)的概念和個人理解
記得第一次在國內的罈子裡看到三庫的討論的時候,登時就暈了……
三庫的概念被弄得挺嚴重,甚至被實現為物理上的多個庫……
這裡,首先貼一下三庫定義的原文、翻譯,然後再談談個人的理解……
==原文位置==
(中國國家標準也有三庫的定義。這裡就不再給出了。這裡給出的是CMMI的定義,若有其它國際上比較權威的定義,煩請熟悉的同志貼一下,謝!)
CMMI V1.0
=> level 2
=> Configuration Management
=> SG 1 Estabish Baselines
=> SP 1.2 Establish a Configuration Management System
=> Subpractices 2. Store and retrieve configuration items in the configuration management system.
==原文==
Examples of configuration management systems include the following:
Dynamic (or developer's) systems contain components currently being created or revised.
They are in the developer's workspace and are controlled by the developer.
Configuration items in a dynamic system are under version control.
Master (or controlled) systems contain current baselines and changes to them.
Configuration items in a master system are under full configuration management as described int ths process area.
Static systems contain archives of various baselines released for use.
Static systems are under full configuration management as described in this process area.
==翻譯==
CMMI V1.0
=> 第二級
=> 配置管理
=> SG 1 建立基線
=> SP 1.2 建立配置管理系統
=> 子實踐 2. 在配置管理系統中存取配置項
配置管理系統舉例如下:
動態(或開發者)系統,包含當前正在產生或修訂的元件。
它們在開發者的工作區,而且由開發者所控制。
屬於動態系統的配置項,在版本控制之下。
主(或受控)系統,包含當前的基線和基線的變更。
屬於主要系統的配置項,在本過程域所描述的完全的配置管理之下。
穩定的系統,包含已分發使用的各種基線的儲存檔。
穩定的系統,在本過程域所描述的完全的配置管理之下。
==個人理解==
首先,三庫僅僅是舉例,在實踐中,並不是一定要弄出三個庫來。
其次,三庫是邏輯上的概念,在實踐中,並不是要對應到物理上的三個庫。
根據定義,開發庫可以大致對映為開發工程師的個人工作空間,在開發工程師本機上,個人目錄下。當然,對於稍大的任務,也可以對映為儲存庫裡的一個任務分支。
而受控庫,則是開發工程師相互協作、交流最新工作成果的地方。大致上,可以對映為版本控制工具(svn/cvs/cc……)的repository(儲存庫)。這裡,可能有不同的分支/目錄做不同的用途,可能會打標籤、基線。
靜態庫,又稱基線庫,指的是那些重要的基線,這些基線標誌著專案的重要里程碑,或者這些基線被Release(釋出)給了“外界”。在比較簡單的版本控制工具裡,一般可以用特定標籤命名規範來把它們從其他標籤、基線中區別出來;在SVN中,可以設定一個特別的Tag目錄。而在比較複雜的版本控制工具裡,也可以用基線/標籤的某種屬性(質量級別)來表達。例如,當某條基線通過了系統測試後,就把它的質量級別promote(提升)到“通過系統測試”。
對於靜態庫,再補充一點:對於這些基線,我們通常不僅要記錄原始碼,最好也儲存一下編譯結果/安裝包。這樣將來用起來會比較方便。編譯結果/安裝包一般就不要放到版本控制工具裡去了,除非你受了商業宣傳的蠱惑…… 在合適的機器上建個共享目錄,設定合適的許可權,來儲存編譯結果/安裝包,一般就可以了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14780914/viewspace-409941/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ios靜態庫和動態庫iOS
- iOS 靜態庫開發iOS
- 動態庫和靜態庫的區別
- Linux下的共享庫(動態庫)和靜態庫Linux
- Linux 依賴動態庫 / 靜態庫的動態態庫 / 靜態庫Linux
- cmake:生成靜態庫和動態庫
- Windows靜態庫和動態庫的建立和使用Windows
- ios 開發中 動態庫 與靜態庫的區別iOS
- iOS動態庫和靜態庫的運用iOS
- Linux下的靜態庫、動態庫和動態載入庫Linux
- 靜態庫與動態庫
- android下java的靜態庫和動態庫AndroidJava
- iOS中的動態庫,靜態庫和framework介紹iOSFramework
- 簡述Linux下的靜態庫和動態庫Linux
- 深入理解C語言----動態庫 & 靜態庫 & 連結C語言
- iOS靜態庫SDK製作(包含第三方靜態庫)iOS
- 一、靜態庫和動態庫,Makefile專案管理專案管理
- 在Linux中建立靜態庫和動態庫Linux
- iOS 靜態庫 與私有庫iOS
- Linux共享庫、靜態庫、動態庫詳解Linux
- 動態連結庫和靜態連結庫的區別
- iOS 靜態庫詳解與開發iOS
- Linux靜態庫和動態庫學習總結Linux
- Linux環境下建立靜態庫和動態庫Linux
- linux下的靜態庫與動態庫Linux
- ios靜態庫與動態庫的區別iOS
- 靜態庫生成
- 動靜態庫
- CMake和靜態庫順序
- Android NDK祕籍--淺析靜態庫和動態庫Android
- Xcode新增Shell指令碼打包靜態庫和動態庫XCode指令碼
- iOS的Framework靜態庫iOSFramework
- Android NDK祕籍--編譯靜態庫、呼叫靜態庫Android編譯
- 動態連結庫與靜態連結庫
- 菜鳥教程——iOS動態庫與靜態庫iOS
- iOS 靜態庫(.a, .framework) 動態庫(.framework, dylib)iOSFramework
- 靜態庫和動態庫的製作以及Bundle資原始檔的使用
- C靜態庫的建立與使用--為什麼要引入靜態庫?