我們的團(tuán)隊(duì)一直埋怨說我們的代碼規(guī)模太大,結(jié)構(gòu)太復(fù)雜,維護(hù)難度大而成本高。
最明顯的一個(gè)弊病,就是在clearcase里面打開一個(gè)文件的version tree,密密麻麻,橫七豎八,我們戲稱為"蜘蛛網(wǎng)"。
然而昨天一位出差在外的同事,在維護(hù)公司另外一個(gè)產(chǎn)品的時(shí)候,有了驚喜發(fā)現(xiàn):
我們的代碼規(guī)模比起來還是差得遠(yuǎn)!
有圖為證:
我的評(píng)價(jià)只有一個(gè)字:
暈!
PS:
解釋一下,有些朋友沒有用過版本控制軟件的version tree,可能不大明白。
這個(gè)是version tree,是一個(gè)文件(注意,只是一個(gè)文件)的版本和分支歷史,一般的版本控制軟件都會(huì)提供類似的視圖。
圖上藍(lán)色直線條的是這個(gè)文件的不同分支和這個(gè)這個(gè)分支下的不同版本,紅色的線條是code merge,就是從一個(gè)分支的某個(gè)版本merge 代碼到另外一個(gè)分支上時(shí)為了表示這種merge關(guān)系而增加一種表示方式。
從圖上看,這個(gè)文件的分支過百了,版本應(yīng)該過千,紅色的merge線在某些地方已經(jīng)要凝成實(shí)體了。這表明在這些版本之間有非常頻繁的code merge。
再補(bǔ)充一下:
這個(gè)圖片里面有些地方紅線密集程度有些不大對(duì)勁,某些分支幾乎每個(gè)版本修改都有被merge。正常開發(fā)中不應(yīng)該是這樣的,通常都只會(huì)是某個(gè)或某幾個(gè)版本被merge。
猜測(cè)出現(xiàn)這個(gè)情況的可能,有一種解釋就是可能在開發(fā)時(shí)使用了某些自動(dòng)merge的工具,當(dāng)該分支每出現(xiàn)一個(gè)新版本時(shí)就自動(dòng)merge到某個(gè)目標(biāo)分支,以保證兩個(gè)分支代碼的高度一致。當(dāng)然這個(gè)無法證實(shí),只是我的一個(gè)猜測(cè)。