以VS Code Remote Development相关功能为例,选择一个用例进行需求分析和逆向工程
https://code.visualstudio.com/
https://github.com/microsoft/vscode
Remote Development 介绍
Remote Development是VS Code上的一款插件,它允许开发者将容器、远程计算机或 Windows Subsystem for Linux (WSL) 作为完整的开发环境。具体来说,Remote Development包含下面三种扩展
- Remote-SSH:通过 SSH 方式连接到远程计算机,并在 VS Code 中进行开发工作
- Remote-Containers:在 Docker 容器中启动开发环境,并在 VS Code 中进行编码、调试等工作
- WSL:在 Windows Subsystem for Linux (WSL) 中使用 VS Code,获得Linux的开发体验
下面以SSH功能为例进行需求分析和逆向工程
需求分析
功能需求:
- 允许用户通过 SSH连接到远程计算机或虚拟机
- 在本地打开远程文件夹并在本地编辑器中进行编辑,提供本地和远程之间的文件同步和自动更新机制
- 允许开发人员在远程主机上运行和调试任务
非功能需求
- 使用SSH加密协议来连接远程服务器,并通过密码或SSH密钥对进行身份验证
- 需要保证远程连接的稳定性和快速响应,以提高开发效率
- 需提供用户友好界面,方便用户使用和操作
- 需要具有良好的可扩展性,以支持不同远程联接协议和环境
逆向工程
所谓逆向工程就是分析已有软件,并从中发现有关结构、功能和原理的信息
为了实现以上需求,推测Remote Development使用了以下技术
- SSH连接:VS Code Remote Development通过SSH客户端和服务器之间建立安全、加密的连接
- 命令行转发:VS Code将命令行操作转发到远程服务器上执行。例如,在本地编辑器中运行代码时,VS Code将代码文件传输到远程服务器上,然后在远程服务器上运行编译器并调试程序
- 文件共享:本地VS Code与远程计算机之间建立文件同步通道;监听本地文件系统的变化,将更改上传到远程环境;接收远程文件的变更,同步到本地编辑器
作者:309