|
|
對(duì)于一個(gè)采用版本控制進(jìn)行軟件開發(fā)的多人開發(fā)團(tuán)隊(duì)而言,其一般的開發(fā)方式是:采用服務(wù)器/客戶端的形式,在上面分別安裝版本控制工具的服務(wù)器和客戶端版本,軟件放在服務(wù)器上為大家所共享,開發(fā)人員在客戶端從服務(wù)器上將軟件的相關(guān)部分下載到本地,進(jìn)行修改,改動(dòng)結(jié)果最終提交到服務(wù)器上。
|
|
1 軟件版本控制的主要功能和主要特點(diǎn)
|
|
版本控制的功能:跟蹤記錄整個(gè)軟件的開發(fā)過程,包括軟件本身和相關(guān)文檔(所帶來的結(jié)果是:可標(biāo)識(shí)不同階段的軟件及相關(guān)文檔,進(jìn)行差別分析;對(duì)軟件進(jìn)行可撤消的修改;便于匯總不同人員所做的修改),輔助協(xié)調(diào)和管理軟件開發(fā)團(tuán)隊(duì)。
|
|
|
我認(rèn)為,對(duì)于軟件的版本控制而言,其主要特點(diǎn)包括如下:
|
|
1.1 空間上集中統(tǒng)一管理
|
|
由于采用服務(wù)器/客戶端方式,盡管開發(fā)人員可以在自己的本地留有備份,但最終唯一有效的只有服務(wù)器端的那個(gè)原始拷貝。一定程度可以解決一致性問題、冗余問題。[1]
|
|
1.2 時(shí)間上全程跟蹤記錄
|
|
工具將會(huì)自動(dòng)記錄每個(gè)更改細(xì)節(jié),和不同時(shí)期的不同版本。一定程度可以解決冗余問題、事務(wù)性問題、并發(fā)性問題。[1]
|
|
1.3 操作權(quán)限控制
|
|
對(duì)于不同開發(fā)人員,對(duì)軟件的不同部分可以定義不同的訪問權(quán)限。一定程度可以解決安全性問題。[1]
|
|
1.4 自動(dòng)或半自動(dòng)
|
|
由于有工具輔助控制,可以減輕開發(fā)人員的負(fù)擔(dān),節(jié)省時(shí)間,同時(shí)降低人為錯(cuò)誤。像軟件整合這樣的工作,其工作量可以相對(duì)減輕。[1]
|
|
2 軟件版本控制評(píng)價(jià)標(biāo)準(zhǔn)
|
|
我認(rèn)為,對(duì)軟件進(jìn)行版本控制,衡量其效果的標(biāo)準(zhǔn),歸根結(jié)底有兩點(diǎn):效率和質(zhì)量。如果版本控制最終使軟件開發(fā)效率得到提高、使軟件質(zhì)量得到提升,那就是成功的,反之則是失敗的。效率的提高比較容易理解,質(zhì)量的提升則體現(xiàn)在:軟件的一致性、冗余程度等。需要指出的是,單就版本控制工具本身并不能保證這兩點(diǎn)。對(duì)工具不熟悉或錯(cuò)誤的使用,以及開發(fā)人員的不良習(xí)慣等都將導(dǎo)致失敗。有時(shí)可能反而降低效率。
|
|
3 幾個(gè)重要觀點(diǎn)
|
|
|
|
3.1 版本控制包括代碼和文檔
|
|
我認(rèn)為,廣義的版本控制也應(yīng)該包括和代碼相關(guān)的其他內(nèi)容,主要指文檔。雖然文檔的一致性問題并不像代碼那么突出,多人同時(shí)修改一個(gè)文檔的情況一般較為少見,但將文檔只留一個(gè)服務(wù)器拷貝,會(huì)便于集中管理,減少冗余,加上工具的全程跟蹤記錄,可以隨時(shí)查看不同時(shí)期文檔的內(nèi)容,相互比對(duì)。
|
|
3.2 版本控制管理應(yīng)該包括工具軟件的使用和人為規(guī)范的遵循
|
|
在版本控制中,人的因素更為重要,規(guī)范的行為可以避免很多意想不到的后果,和錯(cuò)誤使用工具所引起的問題。單純依賴工具,并不能取得良好效果。沒有版本控制的意識(shí)、對(duì)工具的使用不熟悉(一些功能不知道怎么用,一些功能使用錯(cuò)誤)、人為的不良習(xí)慣,都可能導(dǎo)致錯(cuò)誤。因此需要使用版本控制工具的開發(fā)人員具有自覺良好的意識(shí)和習(xí)慣,也需要一些相關(guān)的規(guī)范和制度的保證。
|
|
3.3 不能忽略版本控制管理員這一角色的重要性
|
|
可以不必單獨(dú)劃定一人來擔(dān)任這個(gè)角色,但如果沒有這一角色的存在,任何人都可以任意操作服務(wù)器上已納入版本控制的軟件以及版本控制工具的配置信息(比如用戶權(quán)限信息),或者說任何人都可以做管理員,則又會(huì)出現(xiàn)安全性問題。從某種程度上講,這和沒有版本控制下每臺(tái)機(jī)器上都有若干軟件版本的情況是等效的。
|
|
3.4 向版本控制過渡是一個(gè)循序漸進(jìn)的、持久的過程
|
|
對(duì)于一個(gè)團(tuán)隊(duì)而言,向版本控制過渡,需要有一個(gè)逐步轉(zhuǎn)變的過程。這包括:制訂一系列合理的循序漸進(jìn)的措施,使版本控制的意識(shí)逐步得到大家的認(rèn)可,使人員逐漸養(yǎng)成良好習(xí)慣(習(xí)慣于這種開發(fā)方式)。這是一個(gè)持久的過程,需要堅(jiān)持。
|