2006年11月12日

為什麼程序員不用版本控制工具?

版本控制 subversion svn

自從我到某資訊軟體公司做過一陣子程式工程師後 (過去式) ,我就一直在感慨為何國內的多數程序員不用版本控制工具 (Version control system) 。這個問題不久前得到了解答。


前幾天 (11/9) 我去參加微軟舉辦的「微軟應用平台架構優化」技術發表會,下午第二場議程正好介紹 Visual Studio Team System (介稱 VSTS) ,那時我第一時間想到「微軟現在才出這種工具啊」,接著靈光一閃,我想到國內程序員為何不用版本控制工具這個問題的答案了,答案是「因為微軟的 Visual Studio IDE 工具中沒有整合版本控制工具啊」。現在微軟終於整合了,以正規教育的內容和微軟的工具「同步化」程度來看,想來日後學校應該會開始教這些概念了。

或許有人還不太清楚版本控制工具 (Version control system) 和 Team System 之間有什麼關係。簡言之,版本控制工具是 Team System 的基礎系統, Team System 建構在版本控制工具所提供的文件版本管理及協作機制之上。近代軟體工程的主流,強調迭代式、往覆式開發,此一開發過程勢必帶來龐大的文件版本資訊管理作業,「沒有 CVS/SVN 這類版本控制工具,任何修改程式碼的動作都會增加程序員大腦記憶體的負擔,程序員將會浪費許多時間在搜尋與比對程式碼的工作之上。」(Programming with Subversion Quickstart - 安裝 Subversion 服務) 。事實上,版本控制工具能為程序員做的事,不僅止於此。

微軟其實有一套稱為 Visual Source Safe 的版本控制工具,但它的協作機制採互斥式、鎖定式 (即一人 checkout 某個 source file 後,其他人就不能再 checkout) ,對 Team-work 而言其實不好用,應付兩、三個人在同一間辦公室裡作業的情形還好,要應付一般 open source projects 那樣幾十個人散佈世界各地的情形就顯得綁手綁腳。而更重要的一點是,它並未整合在 Visual Studio 之中,所以國內多數程序員不會用是很合理也很正常的,因為學校沒教。所謂「役物,而不役於物」,被工具綁得牢牢的程序員,其思考格局大概也會被侷限吧。


Posted by shirock at 樂多Roodo! │23:16 │回應(5)引用(0)Programming
工具:編輯本文
Ads by Roodo! 

引用URL

http://cgi.blog.roodo.com/trackback/2465816
回應文章
Visual SourceSafe 出好久了,至少我 1999/2000 年的時候就有用了。而且的確也有整合到 Visual studio 裏面,我是用 VFP,那時候VFP 還在 Visual studio 裏面。
不過國內用的人真的很少,那時候微軟官方對這方面的資訊也很缺乏,我跟另一位同事幾乎是摸索著把 VSS 架起來,然後讓公司幾個人開始有版本控制的概念。
Posted by SpongeBob at 2007年01月23日 10:13
Visual SourceSafe 是舊玩意, VSTS 則是新玩意。

印象中, Visual Studio 標準版/教育版 中沒有 Visual SourceSafe ,所以學校學生沒機會學到。而且, Visual SourceSafe 的共用機制不方便,比不上 CVS/SVN 。

我以前在某公司時,公司內也有架 VSS server ,但根本沒人用,只是以前為了取得 CMMI level 2 做個樣子。我反而自己架 SVN + TotoriseSVN 管理自己負責的工作,用得很高興,連同事都找我學。
Posted by 遊手好閒的石頭成 at 2007年01月23日 12:13
看完您的內文,小弟心有戚戚焉!
以前在公司想推cvs卻被公司譏為沒事找事做。
Posted by 王明輝 at 2008年04月12日 23:19
SVN我們這裡也有用,不過老實講很多人只是把他當成備份工具,甚至還有人把自己的code蓋掉救不回來。

所以我還比較喜歡SourceSafe,雖然功能陽春了一點但是容易上手多了,而且假如不是要共同開發一個軟體也不見得SVN會比較好用(像我們AP跟firmware都是不同人獨立開發,不會共用code)

選用工具不能不考慮人性的弱點,還有教育訓練的問題...
Posted by godspeedlee at 2008年10月30日 14:21
把自己的code蓋掉救不回來?這件事很有趣,因為 SVN 的設計概念就是「凡走過必留下痕跡」,這個原則,它比 CVS 執行的更徹底。

我到目前為止,還沒有碰過追不回來的文件。

至於教育訓練的事,VSS, CVS, SVN 都不可避免,我就不評斷優劣了。
Posted by 遊手好閒的石頭成 at 2008年11月6日 02:48