程序員思想——"螻蟻之穴潰,千里之堤",版本控制的重要性

版本控制:?是一種思想,因?yàn)槊恳粋€(gè)問題不可能在一次解決中找到完美的答案,即寫項(xiàng)目的時(shí)候不可能做到一次性把代碼寫的不需要后期修改那樣子優(yōu)雅和完善,所以就需要對每一次自己思路和代碼進(jìn)行保留(而每一次提交或修改都看作是一個(gè)版本,所以稱之為版本控制)。

為什么要用版本控制?

很多剛?cè)胄械某绦騿T會(huì)覺得使用版本控制很麻煩,影響自己的工作效率。實(shí)際上沒有使用版本控制,項(xiàng)目全盤崩潰的時(shí)候,你之前的工作就是白忙活了

假設(shè)一個(gè)幾百人的團(tuán)隊(duì),共同去完成一個(gè)軟件。每個(gè)人都在修改、添加、刪除著自己本地硬盤上的代碼,當(dāng)他們把這些代碼匯總起來時(shí),麻煩出現(xiàn)了。到底誰改了哪些文件,具體是文件里的哪部分被改動(dòng)過?A的修改會(huì)不會(huì)把B的修改覆蓋掉?匯總的工作變得很危險(xiǎn),需要非常小心,一旦出錯(cuò)后果不堪設(shè)想。顯然此時(shí),效率將會(huì)是無比的低下,如果某個(gè)地方出錯(cuò),可能整個(gè)匯總工作就要重來一遍。而有了版本控制系統(tǒng),我們可以瀏覽所有開發(fā)的歷史紀(jì)錄,掌握團(tuán)隊(duì)的開發(fā)進(jìn)度,而且作任何修改都不再害怕,因?yàn)槟憧梢暂p易的復(fù)原回之前正常的版本。"開發(fā)永遠(yuǎn)是個(gè)過程,而不是結(jié)果"

千里之堤,以螻蟻之血潰;百尺之室,以突隙之煙焚。——《韓非子.喻老》

為了更好的解釋版本控制的思想和用處,先模擬個(gè)人開發(fā)的場景進(jìn)行分析:

publicclassprocessData{//上司讓你寫一個(gè)處理數(shù)據(jù)的類,只給了你這么多代碼}//接下來你根據(jù)他給你的代碼,添加了一個(gè)返回參數(shù)和的方法function1publicclassprocessData{publicintfunction1(inta,intb){//System.out.println("這里返回參數(shù)的和");return(a + b); }}//后期你覺得這個(gè)代碼要修改,將返回和改成返回積publicclassprocessData{publicintfunction1(inta,intb){ System.out.println("這里返回參數(shù)的積");return(a * b); }}

顯然以上場景中,在第三組代碼中,要將返回和改成返回積的時(shí)候,可以在第二組代碼上進(jìn)行修改,并且在第二組代碼上修改的難度以及工作量也不是很大;也可以在第一組代碼上進(jìn)行修改。但是在第二組代碼上進(jìn)行修改之所以難度和工作量不大,是因?yàn)檫@里的代碼比較少,就一個(gè)求積和求和之間的轉(zhuǎn)換,但是如果說在開發(fā)過程中,為了實(shí)現(xiàn)一個(gè)功能,在原有的基礎(chǔ)上進(jìn)行實(shí)現(xiàn)此功能的代碼的添加,但是添加之后發(fā)現(xiàn)這些所添加的代碼 不可用或者說大部分都要修改的話,在現(xiàn)有的基礎(chǔ)上去修改是非常麻煩的,而且會(huì)造成代碼的可讀性下降(改了改去到最后自己都被自己改的迷迷糊糊,這樣子的代碼別人看上去也肯定是沒有條理得)。

團(tuán)隊(duì)開發(fā)的場景:

對于一個(gè)文檔在團(tuán)隊(duì)內(nèi)做出的修改之后,其記錄形式就如下圖(這樣子也可以避免在實(shí)際開發(fā)過程中因?yàn)楹芏嗳送瑫r(shí)修改一個(gè)文檔而造成的,因多人修改而造成的數(shù)據(jù)或者其他等等問題)

版本控制工具:?用于實(shí)現(xiàn)版本控制這一思想的工具;這種控制工具大致分為集中式版本控制工具(CVS ;SVN?;VSS)和分布式版本控制工具(Git and so on)。

如果你還沒有使用的話,建議馬上為你的軟件開發(fā)項(xiàng)目建立版本控制。接下來是幾點(diǎn)使用版本控制系統(tǒng)的建議:

1.將所有東西都放進(jìn)版本控制系統(tǒng)

2.頻繁且適當(dāng)大小的遞交

3.良好的遞交信息

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容