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