IDEA
2021.3版本增加了云端开发的一系列功能。
所谓云端开发,就是指本地运行着一个轻客户端。所有的代码存储,代码编译,代码运行都是在远端。本地只是作一个展示和编辑作用。
而这个EAP版本,就直接明示了以后IDEA既能作为本地IDE,又能作为轻客户端连上云端,利用云端强大的处理力,加速代码编译,启动速度。
而这个云端,随便指定一台服务器,就可以自动化初始化好,极其方便。

安装好2021.3 EAP版本后,在欢迎界面就多出一个Remote Development选项:
IntelliJ IDEA 云端编码功能 - 图1
点Connect via SSH,就可以看到只要通过SSH方式就可以连上一个远端服务器作为计算资源。和所有的SSH一样,填入相应必要的验证方式,这里是采用RSA私钥的验证方式:
IntelliJ IDEA 云端编码功能 - 图2
点击Check Connection and Continue之后,后续所有的动作,都由IDEA自动完成。包括在服务器上装上远端的服务进程,初始化等事情。这个过程只能等一会。
IntelliJ IDEA 云端编码功能 - 图3
这个过程大概等了5分钟左右。看到成功连接上远程服务器之后,点开Project directory就可以看到服务器上的文件目录了,选择一个作为工作目录。
IntelliJ IDEA 云端编码功能 - 图4
这时应该服务器上的远端进行已经开启了,登上了服务器,查找了下idea的进程,可以发现远端服务器上启动着4个进程。
IntelliJ IDEA 云端编码功能 - 图5

连上上之后进入主界面,基本和本地的没有任何区别。只是在右下角多了一个即时的上行和下行的速度指标。和一个ping值。ping值是一个什么概念。ping值越低,就代表延时越低。下图可以看到,本地和服务器的延迟是22ms,这个ping值基本上是感受不到延迟的。
IntelliJ IDEA 云端编码功能 - 图6
接下来就感受下远端编译。
创建了一个springboot的web项目,当然创建的代码全部在远端上面,本地只不过作为编辑界面。
运行mvn clean package命令,要注意的是此时并不是在本地执行maven命令,已经是在远端了,前提是远端服务器已经装了maven,并配置好了系统path。
整个过程和本地并无太大差别,运行结果耗时如下,这还是包括从中央仓库上下载springboot相关依赖+编译打包的时间。甚至于觉得比本地要来的快速。
顺便说下,这里测试时,远端服务器的配置是8核64G内存。
IntelliJ IDEA 云端编码功能 - 图7
接下来在demo工程上加了一个controller。直接运行这个项目。
IntelliJ IDEA 云端编码功能 - 图8
IntelliJ IDEA 云端编码功能 - 图9
运行很快速。配置的端口号在8989。
如果往常要访问controller的话,就一定会访问 127.0.0.1:8989 了,但是这个运行也是在远端运行的。
查看远端的进程和端口号,确实服务器上开启了一个线程,端口号是8989
IntelliJ IDEA 云端编码功能 - 图10
接下来用服务器的公网地址进行访问,也是毫无问题。
IntelliJ IDEA 云端编码功能 - 图11
甚至于debug也和本地的一模一样,毫无违和感
IntelliJ IDEA 云端编码功能 - 图12
这基本上都可以不用在测试环境上部署了,本地直接起,相当于部署测试服务器了。用的还不是本地资源。
别的服务调用过来,本地直接可以debug了。还不用开remote debug。
测试环境部署流程还是需要的。这里只是为了说明,这种如同本地模式的debug的确比基于配置-Xrunjdwp的remote debug好了不止一点点。

总结

整个体验下来,可以这么说,操作模式完全和本地一模一样,但是计算和存储资源却是在远端。而且在体验的过程中,基本上没有感觉到卡顿的地方,如同本地般的丝滑流畅。
如果本地配置不高的,平时开几个IDEA窗口就开始卡的,完全就可以拿公司高性能的服务器作为远端。利用服务器的高性能作为计算资源。本地开个十几个轻客户端应该也不会有卡顿。不用换电脑,立马解决idea卡顿问题的神操作了。
因为这个版本只是一个EAP版本,官方文档也说了,可能在使用时中会有不稳定的异常出现。所以2021.3的正式版本,还是很期待的。