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