开发人员都希望能够埋头工作在一个具体的任务上,在这过程中***不要受到其他人的打扰,这样可以很好地保持思维的连贯性。很不幸,在实际开发过程中,开发人员面临的是一个日趋趋碎片化的工作时间安排和日益密集的并行多线程工作任务场景,设想一下,当你正在十分起劲地完成某个功能点的时候,项目经理跑过对你说:不好了,版本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)功能在此基础上更进一步,不仅能够保存本地修改的内容,还可以把打开的窗口、位置、断点等信息保留下来,实现完整的工作任务环境切换功能,对于广大开发人员来说,不啻是一个福音。