1.需求分析
1.需求描述
用户可以通过使用VS Code Remote Development相关功能,是用本机上的vscode编辑器在远程的linux主机上上编辑文件并实现对代码的调试。其中,主要的需求一下几条:
1.使用vscode与远程服务器连接,并能同远程服务器之间实现数据传输
2.用户在本地使用vscode的对文本进行编辑时,本地执行的操作能通过vscode传输至远程主机,并在远程主机上执行对应操作,在远程主机的对应操作结束后,远程主机上的vscode返回的各类消息能够顺利返回本机的vscode并正确显示。
3.本地主机能够远程调用vscode中的各类插件,实现远程调用代码调试等插件拓展功能。
2.用例提取
系统:vscode远程开发系统
使用者:用户
抽象用例:1.编辑文件 2.调试代码
高层用例:
1.编辑文件
用例起始边界(TUCBW):用户使用打开vscode并启动远程开发功能。
用例结束边界(TUCEW):用户获得远程主机中文件编辑的结果。
2.调试代码
用例起始边界(TUCBW):用户使用打开vscode,对指定的远程文件使用调试命令
用例结束边界(TUCEW):用户在本地计算机中得到远程调试返回的结果。
得到的用例图如下:
3.拓展用例:
1.编辑文本
用户 | 系统 |
TUCBW:启动远程开发功能 | 告诉用户是否已经成功连接远程主机 |
用户向本地vscode编辑器中编辑 | 将用户在本地编辑的内容与远程主机同步 |
TUCEW:用户获得结果 | 将远程主机中是否编辑成功返回给用户 |
2.启动调试:
用户 | 系统 |
TUCBW:启动远程开发功能 | 告诉用户是否已经成功连接远程主机 |
用户在本地执行对代码的执行与调试 | 系统获得用户在本地输入的命令,将命令传输至远程并在远程主机中执行命令 |
TUCEW:用户获得结果 | 系统将远程主机中执行的结果返回给用户 |
3.逆向工程
1.在vscode远程开发中,主要使用ssh远程连接,因此可以考虑使用ssh协议来实现对vscode远程开发中的连接需求
2.对于实现连接后实现文本编辑与插件的功能,通过查询相关资料,可以了解到Remote Development 插件包括客户端和服务器端两部分,客户端负责与用户交互,并将请求发送到远程服务器。服务器端在本地执行相关逻辑后将vs则返回结果给客户端。在服务端的实现上,应该考虑文件系统管理与插件调用功能的分离。可以通过实现相关协议使得服务器能够正确处理两类不同需求。
4.总结
通过对vscode-remote相关功能的分析,可以发现实现远程开发的过程中比较重要的一点是实现合理的通信协议以达到各类需求能够实现功能上的分离。