Visual Studio Code 前些日子发了个新版( https://code.visualstudio.com/updates/v1_43#_remote-development ),其中我最喜欢的更新就是 Remote Development 支持 macOS & Windows 作为主机了。好像很少有人注意这个功能,所以和大家分享一下。
简单来说通过 Remote Development 套件,你可以把实际的开发运行环境(比如 Webpack, MySQL,Docker )放到一台远程的机器上,本地只用运行编辑器就可以了。可以很明显降低系统资源。
举我自己的例子,日常会写点网站前后端代码。在本机运行整套开发环境时需要跑一个 Docker for macOS,里面还运行着数据库、各种构建和测试命令啥的,内存占用经常飙到几个 GB 。我的 13 寸 MacBook Pro 压力颇大,经常跑起来连浏览器的 DevTools 都打不开。
现在呢,我把整套开发环境都放到了家里的一台台式机上,代码和运行环境都在上面。MacBook Pro 上的 VS Code 通过 SSH 连到台式机上进行日常开发。这样 MacBook Pro 只用跑 VS Code 和 Chrome 就可以了,再也不用担心风扇呼呼响了。
通过几天的实践,我发现使用这种开发模式还有两个额外好处:
无缝的加班体验:如果你有多台开发机(比如公司一台家里一台),可能会遇到公司的代码写了一半需要回家。这时如果开发环境是运行在第三台机器上的话,回家之后就可以无缝接着写代码了!代码分支、各种依赖版本和数据库里的数据内容都是一模一样的。
甚至想买 MacBook Air 和 Surface 了:因为开发环境占用的资源极少,所以轻薄本也可以作为生产力工具了。
“飞机上想写代码怎么办?”...
1
ybw 2020-03-22 15:01:16 +08:00 via Android 21
个人不是很喜欢在飞机上写代码。
|
2
remon 2020-03-22 15:06:40 +08:00 via Android
code-server,或者等 vscode 团队完善 Web 功能,只需要 chrome 和网络
|
4
luin OP @remon 本来特别想试试 code-server,这样就能买个 iPad Pro 写代码了!后来想想发现跑不了 DevTools...
|
5
cabing 2020-03-22 15:14:06 +08:00
mark 下。我尝试下。
|
6
nightwitch 2020-03-22 15:14:40 +08:00 1
以前用的时候,遇到跳板就歇菜了。现在不知道能不能。
|
7
SuperAllen 2020-03-22 15:21:04 +08:00 via Android
mark 一下,有机会尝试
|
8
genesislive 2020-03-22 15:21:53 +08:00 via iPhone
家里的台式机,还需要公网 IP ?
|
9
felix021 2020-03-22 15:26:05 +08:00
一直在用 vscode 的 sftp 插件,自动同步改动到远程,配好了感觉也差不了太多
|
10
luin OP @genesislive 对,没有的话也可以考虑租一台服务器。
|
11
zhidian 2020-03-22 15:45:57 +08:00
希望有 connect to remote docker container 的功能
|
12
rayhy 2020-03-22 15:52:14 +08:00
延迟怎么办啊,需要自己的机器和服务器连接非常稳定吧?内网当然没问题,就是不知道 VPS 这种咋样了。
|
13
tigerstudent 2020-03-22 15:54:17 +08:00
@rayhy 写个代码还要担心卡帧吗。。只有读取和保存的时候通网就好了,延迟高点也无所谓啊
|
14
mrgeneral 2020-03-22 15:54:20 +08:00
最近我也再看这块的,但是还不准备全部迁移,目前在代码分析、debug 这块还比不上 ide,大点的项目还是得走本地 docker 的老路子。公司的乞丐版 pro,是真不行。
docker + git 本身是能解决多设备开发环境迁移问题的,但是受限于机器性能使得实际体验不太好,VS Code 也只是一种折衷。 |
16
nicevar 2020-03-22 16:02:19 +08:00
直接在 vps 上弄了个 code-server,直接浏览器打开,用起来更舒服
|
17
seanxx 2020-03-22 16:09:54 +08:00
不可控,外接因素太多,给你关个插排你就只能干瞪眼了
|
18
a852695 2020-03-22 16:14:04 +08:00
在我厂基本上都有 dev 开发机的,可以 vsc 连接过去,但是现在弄了个跳板机,貌似嗝屁了,跳板机每次都要输入新密码,有什么好办法可以跳过吗
|
19
nutting 2020-03-22 16:14:04 +08:00
vscode 啥时候写 java 也很爽就好了
|
20
luin OP @rayhy 不太用担心延迟,写代码时 VS Code 有 buffer 所以即使延迟高体验也不会有影响。不会像 SSH 到服务器上用 Vim 那样一卡一卡的
|
21
lix7 2020-03-22 16:14:48 +08:00
一个跳板机全都玩完...云开发这种东西还是得网络策略足够好。而且基本上用了 vscode 这个,工具链也就都被绑死在这上边了。
|
22
aydd2004 2020-03-22 16:15:58 +08:00 via iPad
好吧 家里的 Mac mini 可以派上大用场了
|
24
nightan 2020-03-22 16:19:33 +08:00
vscode 确实很好用,只是它的 python 插件的缩进判定比 pycharm 还差一截……pycharm 自动对齐缩进程度太好用
但是……但是……我很喜欢 vscode 的各种高亮主题和字体效果,用起来比 pycharm 舒服很多很多……远程插件也是,现在代码都跑在公司开发环境的开发机上,总要家里一套虚拟环境,公司电脑一套虚拟环境,拿 Onedrive 去同步…… 虽然没有 pycharm 那种智能的缩进,但我还有游标卡尺!(逃 |
25
agagega 2020-03-22 16:20:01 +08:00 via iPhone
快登陆 iPad 吧,GitHub 上呼声也挺高了
|
26
luin OP @agagega 可以试试 code-server,和新的 iPad Pro 键盘结合得应该还不错。就是 iPad 调试网页估计不太方便了
|
27
cabing 2020-03-22 16:49:16 +08:00
ssh 只能登录到公司的跳板机。需要扫描二维码。
这个怎么破。 |
28
cabing 2020-03-22 16:55:17 +08:00
一直用 intellij 系列的 IDE,vscode 不太熟悉。
|
29
tourist2018 2020-03-22 17:01:38 +08:00
有跳板机无解 这个只能公司运维把连接这块做了 如果弄好了网络 vscode 真心好用
|
30
feYAN7 2020-03-22 17:35:15 +08:00
mark 一下,等我配了黑苹果再来试一下
|
31
nnqijiu 2020-03-22 17:37:24 +08:00
这个得内网穿透才能远程吧?没公网 IP 就是鸡肋
|
32
cabing 2020-03-22 17:39:13 +08:00
@tourist2018 是有点无解:)
|
33
wweir 2020-03-22 17:51:09 +08:00 via Android
我已经把开发环境完全搬到了阿里云上,一个月十几块钱即可享受如此无缝的开发体验,值!
唯一不爽的是,我的 MacBook Pro 的性能真是浪费了。 PS:zram 搭配 zstd 算法,真是解决内存不足的好帮手,性能比 swap 好太多了 |
34
jessun1990 2020-03-22 18:19:53 +08:00 1
我的方案是:上班的台式机不关机,只关屏幕。
通过 https://github.com/sshuttle/sshuttle 这个项目,把 ssh 远程连接转成 vpn 。这样就可以在自己家里的电脑上实现了内网环境。 由于开发都是用 neovim 编辑器,所以远程开发不是事儿。 |
35
Nadao 2020-03-22 18:31:13 +08:00
和直接远程桌面到台式机上做有什么分别?
|
36
visitant 2020-03-22 18:45:58 +08:00
|
37
stevenhawking 2020-03-22 18:50:17 +08:00
量子写代码, 也许可以离线同步
|
38
HoganTR 2020-03-22 19:04:08 +08:00 via Android
以前也很长时间用这种方式进行开发,用着是真的香。不过有时就会莫名连不了(🤯)...放弃了
|
39
chempotato 2020-03-22 19:09:39 +08:00
@wweir 买的什么配置的服务器?
|
40
wweir 2020-03-22 19:13:57 +08:00 via Android
@chempotato 1c1g20g 的竞价实例,性能还算靠谱,就内存差点
|
41
aydd2004 2020-03-22 19:15:36 +08:00
已经用上了 分分钟搞定 微软果真牛叉
期待再出个 xcode 的替代品 |
42
1069401249 2020-03-22 19:31:41 +08:00
把笔记本的工作目录远程挂载到台式机也可以吧
|
43
outtime 2020-03-22 19:38:13 +08:00
一直在用 coding 的 cloud studio
|
44
luckyrayyy 2020-03-22 19:42:36 +08:00
coding 的那个还挺好用,比我想象的要快很多。
|
45
loading 2020-03-22 19:43:22 +08:00 via Android 1
|
46
bigShrimp8577 2020-03-22 19:58:26 +08:00 1
@Nadao 同问,还有前端怎么办,这个代码是同步了,难道要开放 ip 到外网访问?
|
47
masquerader 2020-03-22 21:41:34 +08:00
这个好像有点炒冷饭了啊,远程开发 19 年中时就支持了。
|
48
yafoo 2020-03-22 21:45:21 +08:00 via Android
@outtime
@luckyrayyy coding 那个你们用着怎么样?以前老版的功能不多,但是很稳定,升级新版编辑器后,官方提供的服务一天只能用 3 个小时。连接自己服务器,连接总是中断,简直把我搞崩溃了,断连接断的没法用。 |
49
yEhwG10ZJa83067x 2020-03-22 22:09:27 +08:00
家里的台式机万一出点问题,连不上去不是很麻烦吗
|
50
Newyorkcity 2020-03-22 22:24:17 +08:00
能问下你的阿里云什么配置么?有好的开发体验的话 2G 内存的学生机不够用吧
|
51
donnior 2020-03-22 22:25:09 +08:00
我有一台机器在阿里云上,用 vscode 的 remote 工作,配合 port forward ;个人觉得很 nice
|
52
greenhat233 2020-03-22 22:26:38 +08:00 via Android
写点小东西还可以,项目就比较吃力了,生产力还是 ide
|
53
luin OP @masquerader 最近支持的 macOS 和 Windows 作为 host,之前只有 Linux 。不过 Insiders 确实前两个月时就能用了。
|
54
luin OP @Newyorkcity 我的主机是 2015 年中的 iMac,8GB 内存。也确实想租阿里云的,不过发现 8GB 的机型还有些小贵,不如把 iMac 利用起来了
|
55
mageemeng 2020-03-22 23:04:32 +08:00
「无缝的加班体验」到底是优点还是缺点
|
57
chiu 2020-03-22 23:34:48 +08:00 via Android
使用过一段时间,个人主要 C/C++项目,组里只有我一人使用 vscode
1. 项目稍大的话,远程查找跳转等功能和本地体验有差距; 2. 上周同事问我,服务器上进程 microsoftvscode 是什么,CPU 占用 100%了...... |
59
lix7 2020-03-22 23:46:18 +08:00
@visitant 跳板机的目的就是隔开网络区域,一个 ProxyCommand 又给干穿了就违背跳板机的初衷了吧。至少我司是明确规定禁止私自打通各个区域的,一般能通的都默认通,不能通的打通就是违规。
|
61
Rorysky 2020-03-23 00:10:28 +08:00
不太明白,这样还要再搞一台性能强劲的服务器? 除非公司行为,我觉得个人不适合维护两套设备
|
62
UnknownR 2020-03-23 00:23:53 +08:00
登录 ipad 是真的期待,还有 12 寸 mac 是死的真惨,生不逢时,要是能出新版就好了,现在远程类的 app 这么多
|
63
Chingim 2020-03-23 00:47:05 +08:00 via Android 1
前端开发劝退,这样一来 devserver 跑在远端,服务器还要开一堆端口,而且服务器带宽还要够大,不然一堆为未压缩的资源+source map,能把你耐心磨没
|
64
Chingim 2020-03-23 00:51:39 +08:00 via Android
我觉得用几个月再出来安利比较好,才几天的体验,很多坑都没遇到
|
65
hallDrawnel 2020-03-23 01:16:39 +08:00
现在在我厂新来的人基本就是用这个,很爽,公司专门配了支持的云开发机镜像。
|
67
falcon05 2020-03-23 06:07:19 +08:00 via iPhone
去年体验过一阵,对跑服务端的网络和性能要求比较高,如果经常移动办公,需要适应不同环境的网络,不太稳定,放弃了。
|
68
imycc 2020-03-23 06:41:03 +08:00
已经用了一年了,win10 + vscode remote + 本地虚拟机。
公司有办公网 vpn,把虚拟机的网络模式设置为桥接直接,不需要端口代理就可以直接访问虚拟机的端口(否则多套开发环境一个个做映射到主机,要累死) 用 vim 编程有四五年了,一直眼馋 vscode 但是没有合适的方案,remote development 出来之后就逐步切换过去了。可惜 vsocde 的 vim 模式支持并不完善,很多之前配置的快捷键要迁移过来也很麻烦(还要考虑冲突),感觉重新适应 vscode 的快捷键了。 |
69
coderEOS 2020-03-23 07:05:09 +08:00 via Android
不错一会试下,之前都是用自己写的 scp 的脚本
|
70
secsilm 2020-03-23 08:07:49 +08:00 via Android
|
72
janxin 2020-03-23 08:23:47 +08:00
问题来了,远程机器怎么来
|
73
WildCat 2020-03-23 08:37:22 +08:00
|
74
LokiSharp 2020-03-23 08:52:55 +08:00
我觉得还是 IDEA 自带的远程功能用起来顺手点。。。
|
75
mshadow 2020-03-23 09:12:29 +08:00
已经习惯 JB 全家桶了,我还是老老实实把主力开发机配置弄高一点吧。。
|
76
coderEOS 2020-03-23 09:56:34 +08:00
试了下,秀的一批,速度真的快。直接安装**Remote - ssh**就行了
但是还是有一点不满足需求,因为本地会连一些设备,全在远程上搞,本地没环境,一些东西就用不了。 |
77
CommandZi 2020-03-23 10:10:07 +08:00
如果远程机器用 Windows,本地用 MacBook Air,那么 control + F\B\A\E\N\P,这些快捷键都有效吗?
|
78
collery 2020-03-23 10:15:31 +08:00
感觉需要公网比较麻烦,网络的稳定性是个大问题。
另外一般公司开发,基本环境用公司的就行了。感觉用处不是很大。当然,我是写后端的。。。 |
79
azkaban 2020-03-23 10:38:49 +08:00
32 内存,啥东西都开一堆,毫无感觉
|
80
SPACELAN 2020-03-23 10:42:59 +08:00
我司已经基于这功能在内推广云 IDE 了[手动狗头]
|
81
justin2018 2020-03-23 10:49:05 +08:00
跟 JetBrains 家的 有啥区别
目前用 JetBrains 在~ |
85
Tonni 2020-03-23 13:13:02 +08:00
很早之前就在期待了,beta 的时候就一直在用,很好用。
|
87
wazon 2020-03-23 13:56:22 +08:00
单论 Python 的话,与 Jupyter Notebook / Lab 这种纯网页的 IDE 相比,有什么值得一提的优缺点?
|
88
xuanloe 2020-03-23 14:24:13 +08:00
我 WebStorm 远程都是
GoodSync 通过 SSH 同步代码(双向拉取最新更新代码) frp 远程桌面 或者 本地接口 (一般远程桌面) 一直没找到前端比较好的远程方案 |
89
sbilly 2020-03-23 15:12:47 +08:00
1.4 以后的 vscode 已经支持跑在 web 上,直接用浏览器
|
92
coolcoffee 2020-03-23 16:29:47 +08:00
@justin2018
@xuanloe JetBrains 家的应该只是文件同步吧,运算量还是在本地的。 vscode 会要求在远端安装对应的环境依赖,例如 golang 项目就需要在服务端安装一堆依赖,不然就算终端能跑,智能提示也显示不出来。 |
93
justin2018 2020-03-23 16:32:24 +08:00
@coolcoffee 原来如此 下午已经在体验中了 还在摸索在 😁
|
94
huamiao 2020-03-23 16:34:53 +08:00
|
95
l1nyanm1ng 2020-03-23 17:08:24 +08:00
我配置了一下午,发现转发端口后 react 并没有因为修改文件而实时刷新啊,是不是还要做什么配置
|
96
kylix 2020-03-23 17:25:25 +08:00
去年试过一次,远程机器 linux 虚拟机,4G 内存,一下子就耗光了,没兴趣了~~
C++ |
97
mifly 2020-03-23 17:26:18 +08:00 via Android
使用 x11 forwarding 可以达到类似的效果
用台机装 linux,性能强大,linux 开通 x11-forwarding,在笔记本上用 mobaxterm 登录台机的 linux,然后直接执行 idea 的启动脚本,就可以在笔记本使用台机资源来开发了 |
98
l1nyanm1ng 2020-03-23 17:50:15 +08:00
@l1nyanm1ng 自己贴个条,原来是自己忘了开启 file watch 了,算了,我的丐中丐云服务器一下子也被榨干了,瞬间索然无味了,还是老老实实用本地开发了
|
99
stevenkang 2020-03-23 18:19:34 +08:00
云开发目前最麻烦的就是网络延迟吧,同城电信公网 IP,远程都会有时候很卡。
之前体验过云网吧,那个延迟真的超级低,不知道是啥技术。 延迟低的情况下,云开发真是超级爽。 (另外淘宝上几十块钱买个远程开关机模块,电脑也不用一直开着了)。 (再另外,家里面电信送的盒子搭建 MySQL,测试用的数据库也有了)。 |
100
oska874 2020-03-23 18:23:12 +08:00
对 c/c++ 不友好,函数跳转无解。
|