VS11嘗鮮之掛起和繼續(xù)功能
開發(fā)人員都希望能夠埋頭工作在一個(gè)具體的任務(wù)上,在這過程中***不要受到其他人的打擾,這樣可以很好地保持思維的連貫性。很不幸,在實(shí)際開發(fā)過程中,開發(fā)人員面臨的是一個(gè)日趨趨碎片化的工作時(shí)間安排和日益密集的并行多線程工作任務(wù)場(chǎng)景,設(shè)想一下,當(dāng)你正在十分起勁地完成某個(gè)功能點(diǎn)的時(shí)候,項(xiàng)目經(jīng)理跑過對(duì)你說:不好了,版本A里發(fā)現(xiàn)了一個(gè)一類BUG,系統(tǒng)測(cè)試部門意見很大,如果不立即修復(fù)的話,他們要把版本退回來。大多數(shù)公司的開發(fā)人員是抵擋不住這樣巨大的壓力,只好放下手上的工作,切換到版本A的代碼環(huán)境里,緊急修復(fù)BUG去了。如果修復(fù)工作很順利的話,那么幾個(gè)小時(shí)候后開發(fā)人員切換到原來的實(shí)現(xiàn)功能點(diǎn)的開發(fā)環(huán)境就需要重新打開項(xiàng)目環(huán)境里相關(guān)的代碼文件,定位到文件里代碼的具體位置,重新設(shè)置調(diào)試的斷點(diǎn)等,又時(shí)候根據(jù)個(gè)人習(xí)慣還需要設(shè)置窗口的位置、大小等,簡(jiǎn)單點(diǎn)的環(huán)境需要5分鐘左右,復(fù)雜的環(huán)境,可能需要10-20分鐘的時(shí)間完成,很不幸如果遇到一個(gè)復(fù)雜的BUG,花上一兩天的功夫來修復(fù)也不是不可能的,對(duì)于開發(fā)人員來說,回憶兩天前某個(gè)功能點(diǎn)的開發(fā)環(huán)境并恢復(fù)到當(dāng)初一模一樣的設(shè)置,是破費(fèi)周折的一件事,當(dāng)然也需要更長(zhǎng)的時(shí)間。
安裝VS11后我們發(fā)現(xiàn)新的TeamExplorer界面中多出了一個(gè)Pending Changes功能區(qū):
經(jīng)過一番嘗試后驚喜地發(fā)現(xiàn),這正是為了解決開發(fā)人員經(jīng)常切換工作任務(wù)環(huán)境而來的,在VS11中被稱作Suspend(掛起)和Resume(繼續(xù))功能。
下面通過一個(gè)具體的例子來看看VS11的這個(gè)掛起和繼續(xù)功能是如何幫助我們提高效率的:
步驟1:作為一個(gè)開發(fā)人員,目前正著手實(shí)現(xiàn)某個(gè)需求功能點(diǎn),打開了好幾個(gè)代碼文件,并且在調(diào)試過程中設(shè)置了斷點(diǎn):
步驟2:這時(shí)候有一個(gè)緊急的BUG需要修復(fù),我們需要把當(dāng)前的工作保存(掛起)以便以后重新使用,在VS11的TeamExplorer里在正在工作的任務(wù)功能區(qū)(In Progress Work Items & Changes)中可以看到當(dāng)前正在進(jìn)行的工作,上方有一個(gè)Suspend & Shelve鏈接,點(diǎn)擊后輸入把當(dāng)前工作掛起的理由。
點(diǎn)擊Suspend按鈕對(duì)當(dāng)前工作進(jìn)行掛起,可以發(fā)現(xiàn)打開的文件都自動(dòng)被關(guān)閉,在正在工作的任務(wù)功能區(qū)(In Progress Work Items & Changes)中任務(wù)61已經(jīng)消失,TeamExplorer中出了一個(gè)新的功能區(qū):正在掛起或擱置的工作(Suspended &Shelved Work),任務(wù)61在這里出現(xiàn)了。
步驟3:把要修復(fù)的Bug 81通過拖拽或者根據(jù)ID直接加入到正在工作的任務(wù)功能區(qū)(In Progress Work Items & Changes),進(jìn)行修復(fù)工作。
修復(fù)完成后在正在工作的任務(wù)功能區(qū)(In Progress Work Items & Changes)點(diǎn)擊Finish,按Yes對(duì)提交進(jìn)行確認(rèn),確認(rèn)后Bug81從正在工作的任務(wù)功能區(qū)中消失,在正在掛起或擱置的工作功能區(qū)中出現(xiàn)繼續(xù)(Resume)鏈接。
步驟4:點(diǎn)擊繼續(xù)(Resume)鏈接,把被掛起的任務(wù)61重新載入到工作環(huán)境中來,我們發(fā)現(xiàn)任務(wù)61重新出現(xiàn)在正在工作的任務(wù)功能區(qū)(In Progress Work Items & Changes),當(dāng)時(shí)打開的三個(gè)窗口被重新打開,回到當(dāng)時(shí)正在查看的源碼文件的位置,所設(shè)置的斷點(diǎn)也被恢復(fù)回來。
總結(jié):在VS11之前的Visual Studio版本里有擱置(Shelve)功能,能夠把本地的修改,在正式checkin到代碼庫前,保存到TFS服務(wù)器上,掛起(Suspend)/繼續(xù)(Resume)功能在此基礎(chǔ)上更進(jìn)一步,不僅能夠保存本地修改的內(nèi)容,還可以把打開的窗口、位置、斷點(diǎn)等信息保留下來,實(shí)現(xiàn)完整的工作任務(wù)環(huán)境切換功能,對(duì)于廣大開發(fā)人員來說,不啻是一個(gè)福音。