2011年11月9日 星期三

軟體開發必須做的事之一:版本控管

從事軟體開發一段時間,待過幾家公司,也做過政府大型專案、一般企業專案和產品及網站服務
個人覺得,在整個軟體開發過程中
有一些是最基本、必須要做的項目

不過,詢問過一些業界的同學
並不是每家公司都有做到的
以今天要講版本控管來說,就有一些軟體公司是不做版本控管的

所以我將我自己的經驗中,覺得不錯的項目memo下來
希望能對台灣軟體業的提升,有一些小小的幫助(雖然這個blog目前流量很小,看到的人不多,哈)

好了,開始進入分享主題
你有使用版本控管嗎?

我自己個人認為,不管是一人開發或是多人開發團隊
只要有寫code,都必須針對source code做版本控管
因為使用版本控管有幾個好處:

凡寫過必留下記錄:
你是不是有遇過這樣的問題,
原本程式跑的好好的,
一大堆人改過之後,忽然原本可以work的功能卻出現問題了,
是不是很想說「是誰?到底是誰改的?」,
要是你有做版本控管的話,
誰改過哪些程式可是都有記錄的,
嘿嘿!想賴都賴不掉。
我只能說,工程師要為自己寫的code負責啊,
要把程式丟到版本庫之前,請先測試一下,
不然出包的時候,丟臉的可是自己。


可隨時回到某一個版本:
好啦,有人會說,這個專案的程式,只有我一個人在改,
出包的話,一定是我的問題,幹嘛還要記錄誰改的?
嗯,那你總會有程式出問題後,想回到上星期還沒改過前的版本的時候吧,
別說沒有,是工程師都會想要有一台時光機的(對呀,我想回到過去,不想唸這一科系啦,又賺不了什麼錢)
有了版本控管,可是隨時回到你曾經commit過的任何一個版本,
也可以比對某一版本和現在版本的差異,以方便你找出改了哪些code。

上面的兩點,是我用版本控管最常用的兩件事
其實用版本控管不只這些好處
比方說:建立branching也是很棒的機制,但是這一篇我就不講了
免得講太多,你聽得霧煞煞,就不想用版本控管了。

至於哪個版本控管軟體可以推薦的
如果貴公司現在還沒使用版本控管,那麼我建議使用分散式的版本控管軟體
例如:git、mercurial
不過第一次用的人,學習曲線是會比較陡一點,但是很值得。

下次來講 issue tracking

沒有留言:

張貼留言