V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
luin
V2EX  ›  Visual Studio Code

体验了几天 VS Code 的远程开发套件,对于主力开发机是笔记本的同学真的是很好用

  •  2
     
  •   luin ·
    luin · 2020-03-22 14:55:40 +08:00 · 18744 次点击
    这是一个创建于 1709 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 就可以了,再也不用担心风扇呼呼响了。

    通过几天的实践,我发现使用这种开发模式还有两个额外好处:

    1. 无缝的加班体验:如果你有多台开发机(比如公司一台家里一台),可能会遇到公司的代码写了一半需要回家。这时如果开发环境是运行在第三台机器上的话,回家之后就可以无缝接着写代码了!代码分支、各种依赖版本和数据库里的数据内容都是一模一样的。

    2. 甚至想买 MacBook Air 和 Surface 了:因为开发环境占用的资源极少,所以轻薄本也可以作为生产力工具了。


    “飞机上想写代码怎么办?”...

    104 条回复    2020-03-27 20:28:29 +08:00
    1  2  
    ybw
        1
    ybw  
       2020-03-22 15:01:16 +08:00 via Android   ❤️ 21
    个人不是很喜欢在飞机上写代码。
    remon
        2
    remon  
       2020-03-22 15:06:40 +08:00 via Android
    code-server,或者等 vscode 团队完善 Web 功能,只需要 chrome 和网络
    luin
        3
    luin  
    OP
       2020-03-22 15:09:01 +08:00 via iPhone
    @ybw 我也是。没有 Stack Overflow 和没有编辑器对我的生产力影响是一样的。
    luin
        4
    luin  
    OP
       2020-03-22 15:11:17 +08:00 via iPhone
    @remon 本来特别想试试 code-server,这样就能买个 iPad Pro 写代码了!后来想想发现跑不了 DevTools...
    cabing
        5
    cabing  
       2020-03-22 15:14:06 +08:00
    mark 下。我尝试下。
    nightwitch
        6
    nightwitch  
       2020-03-22 15:14:40 +08:00   ❤️ 1
    以前用的时候,遇到跳板就歇菜了。现在不知道能不能。
    SuperAllen
        7
    SuperAllen  
       2020-03-22 15:21:04 +08:00 via Android
    mark 一下,有机会尝试
    genesislive
        8
    genesislive  
       2020-03-22 15:21:53 +08:00 via iPhone
    家里的台式机,还需要公网 IP ?
    felix021
        9
    felix021  
       2020-03-22 15:26:05 +08:00
    一直在用 vscode 的 sftp 插件,自动同步改动到远程,配好了感觉也差不了太多
    luin
        10
    luin  
    OP
       2020-03-22 15:31:54 +08:00
    @genesislive 对,没有的话也可以考虑租一台服务器。
    zhidian
        11
    zhidian  
       2020-03-22 15:45:57 +08:00
    希望有 connect to remote docker container 的功能
    rayhy
        12
    rayhy  
       2020-03-22 15:52:14 +08:00
    延迟怎么办啊,需要自己的机器和服务器连接非常稳定吧?内网当然没问题,就是不知道 VPS 这种咋样了。
    tigerstudent
        13
    tigerstudent  
       2020-03-22 15:54:17 +08:00
    @rayhy 写个代码还要担心卡帧吗。。只有读取和保存的时候通网就好了,延迟高点也无所谓啊
    mrgeneral
        14
    mrgeneral  
       2020-03-22 15:54:20 +08:00
    最近我也再看这块的,但是还不准备全部迁移,目前在代码分析、debug 这块还比不上 ide,大点的项目还是得走本地 docker 的老路子。公司的乞丐版 pro,是真不行。

    docker + git 本身是能解决多设备开发环境迁移问题的,但是受限于机器性能使得实际体验不太好,VS Code 也只是一种折衷。
    lysS
        15
    lysS  
       2020-03-22 15:57:32 +08:00
    @rayhy 整了台阿里云的学生机, ping 也就 40 左右; 唯一的不足好像提示变少了, 路径都是自己打全的
    nicevar
        16
    nicevar  
       2020-03-22 16:02:19 +08:00
    直接在 vps 上弄了个 code-server,直接浏览器打开,用起来更舒服
    seanxx
        17
    seanxx  
       2020-03-22 16:09:54 +08:00
    不可控,外接因素太多,给你关个插排你就只能干瞪眼了
    a852695
        18
    a852695  
       2020-03-22 16:14:04 +08:00
    在我厂基本上都有 dev 开发机的,可以 vsc 连接过去,但是现在弄了个跳板机,貌似嗝屁了,跳板机每次都要输入新密码,有什么好办法可以跳过吗
    nutting
        19
    nutting  
       2020-03-22 16:14:04 +08:00
    vscode 啥时候写 java 也很爽就好了
    luin
        20
    luin  
    OP
       2020-03-22 16:14:06 +08:00
    @rayhy 不太用担心延迟,写代码时 VS Code 有 buffer 所以即使延迟高体验也不会有影响。不会像 SSH 到服务器上用 Vim 那样一卡一卡的
    lix7
        21
    lix7  
       2020-03-22 16:14:48 +08:00
    一个跳板机全都玩完...云开发这种东西还是得网络策略足够好。而且基本上用了 vscode 这个,工具链也就都被绑死在这上边了。
    aydd2004
        22
    aydd2004  
       2020-03-22 16:15:58 +08:00 via iPad
    好吧 家里的 Mac mini 可以派上大用场了
    a852695
        23
    a852695  
       2020-03-22 16:16:07 +08:00
    @nutting 一直可以写,但是 debug 不成熟,还是用 Idea 老老实实吧
    nightan
        24
    nightan  
       2020-03-22 16:19:33 +08:00
    vscode 确实很好用,只是它的 python 插件的缩进判定比 pycharm 还差一截……pycharm 自动对齐缩进程度太好用
    但是……但是……我很喜欢 vscode 的各种高亮主题和字体效果,用起来比 pycharm 舒服很多很多……远程插件也是,现在代码都跑在公司开发环境的开发机上,总要家里一套虚拟环境,公司电脑一套虚拟环境,拿 Onedrive 去同步……
    虽然没有 pycharm 那种智能的缩进,但我还有游标卡尺!(逃
    agagega
        25
    agagega  
       2020-03-22 16:20:01 +08:00 via iPhone
    快登陆 iPad 吧,GitHub 上呼声也挺高了
    luin
        26
    luin  
    OP
       2020-03-22 16:40:16 +08:00
    @agagega 可以试试 code-server,和新的 iPad Pro 键盘结合得应该还不错。就是 iPad 调试网页估计不太方便了
    cabing
        27
    cabing  
       2020-03-22 16:49:16 +08:00
    ssh 只能登录到公司的跳板机。需要扫描二维码。
    这个怎么破。
    cabing
        28
    cabing  
       2020-03-22 16:55:17 +08:00
    一直用 intellij 系列的 IDE,vscode 不太熟悉。
    tourist2018
        29
    tourist2018  
       2020-03-22 17:01:38 +08:00
    有跳板机无解 这个只能公司运维把连接这块做了 如果弄好了网络 vscode 真心好用
    feYAN7
        30
    feYAN7  
       2020-03-22 17:35:15 +08:00
    mark 一下,等我配了黑苹果再来试一下
    nnqijiu
        31
    nnqijiu  
       2020-03-22 17:37:24 +08:00
    这个得内网穿透才能远程吧?没公网 IP 就是鸡肋
    cabing
        32
    cabing  
       2020-03-22 17:39:13 +08:00
    @tourist2018 是有点无解:)
    wweir
        33
    wweir  
       2020-03-22 17:51:09 +08:00 via Android
    我已经把开发环境完全搬到了阿里云上,一个月十几块钱即可享受如此无缝的开发体验,值!
    唯一不爽的是,我的 MacBook Pro 的性能真是浪费了。
    PS:zram 搭配 zstd 算法,真是解决内存不足的好帮手,性能比 swap 好太多了
    jessun1990
        34
    jessun1990  
       2020-03-22 18:19:53 +08:00   ❤️ 1
    我的方案是:上班的台式机不关机,只关屏幕。

    通过 https://github.com/sshuttle/sshuttle 这个项目,把 ssh 远程连接转成 vpn 。这样就可以在自己家里的电脑上实现了内网环境。

    由于开发都是用 neovim 编辑器,所以远程开发不是事儿。
    Nadao
        35
    Nadao  
       2020-03-22 18:31:13 +08:00
    和直接远程桌面到台式机上做有什么分别?
    visitant
        36
    visitant  
       2020-03-22 18:45:58 +08:00
    @a852695 @lix7 @tourist2018 有跳板机的话可以配置 ProxyCommand 啊
    @cabing 要扫二维码的好像就没办法了
    stevenhawking
        37
    stevenhawking  
       2020-03-22 18:50:17 +08:00
    量子写代码, 也许可以离线同步
    HoganTR
        38
    HoganTR  
       2020-03-22 19:04:08 +08:00 via Android
    以前也很长时间用这种方式进行开发,用着是真的香。不过有时就会莫名连不了(🤯)...放弃了
    chempotato
        39
    chempotato  
       2020-03-22 19:09:39 +08:00
    @wweir 买的什么配置的服务器?
    wweir
        40
    wweir  
       2020-03-22 19:13:57 +08:00 via Android
    @chempotato 1c1g20g 的竞价实例,性能还算靠谱,就内存差点
    aydd2004
        41
    aydd2004  
       2020-03-22 19:15:36 +08:00
    已经用上了 分分钟搞定 微软果真牛叉

    期待再出个 xcode 的替代品
    1069401249
        42
    1069401249  
       2020-03-22 19:31:41 +08:00
    把笔记本的工作目录远程挂载到台式机也可以吧
    outtime
        43
    outtime  
       2020-03-22 19:38:13 +08:00
    一直在用 coding 的 cloud studio
    luckyrayyy
        44
    luckyrayyy  
       2020-03-22 19:42:36 +08:00
    coding 的那个还挺好用,比我想象的要快很多。
    loading
        45
    loading  
       2020-03-22 19:43:22 +08:00 via Android   ❤️ 1
    @stevenhawking 量子态代码是不是就是,你运行,它就会 bug ?

    毕竟量子态就是不能观察,一观察就坍缩。
    bigShrimp8577
        46
    bigShrimp8577  
       2020-03-22 19:58:26 +08:00   ❤️ 1
    @Nadao 同问,还有前端怎么办,这个代码是同步了,难道要开放 ip 到外网访问?
    masquerader
        47
    masquerader  
       2020-03-22 21:41:34 +08:00
    这个好像有点炒冷饭了啊,远程开发 19 年中时就支持了。
    yafoo
        48
    yafoo  
       2020-03-22 21:45:21 +08:00 via Android
    @outtime
    @luckyrayyy coding 那个你们用着怎么样?以前老版的功能不多,但是很稳定,升级新版编辑器后,官方提供的服务一天只能用 3 个小时。连接自己服务器,连接总是中断,简直把我搞崩溃了,断连接断的没法用。
    yEhwG10ZJa83067x
        49
    yEhwG10ZJa83067x  
       2020-03-22 22:09:27 +08:00
    家里的台式机万一出点问题,连不上去不是很麻烦吗
    Newyorkcity
        50
    Newyorkcity  
       2020-03-22 22:24:17 +08:00
    能问下你的阿里云什么配置么?有好的开发体验的话 2G 内存的学生机不够用吧
    donnior
        51
    donnior  
       2020-03-22 22:25:09 +08:00
    我有一台机器在阿里云上,用 vscode 的 remote 工作,配合 port forward ;个人觉得很 nice
    greenhat233
        52
    greenhat233  
       2020-03-22 22:26:38 +08:00 via Android
    写点小东西还可以,项目就比较吃力了,生产力还是 ide
    luin
        53
    luin  
    OP
       2020-03-22 22:42:02 +08:00
    @masquerader 最近支持的 macOS 和 Windows 作为 host,之前只有 Linux 。不过 Insiders 确实前两个月时就能用了。
    luin
        54
    luin  
    OP
       2020-03-22 22:43:49 +08:00   ❤️ 1
    @Newyorkcity 我的主机是 2015 年中的 iMac,8GB 内存。也确实想租阿里云的,不过发现 8GB 的机型还有些小贵,不如把 iMac 利用起来了
    mageemeng
        55
    mageemeng  
       2020-03-22 23:04:32 +08:00
    「无缝的加班体验」到底是优点还是缺点
    cwr31
        56
    cwr31  
       2020-03-22 23:29:07 +08:00
    @luin 楼主啥时候有时间可以搞个攻略了
    chiu
        57
    chiu  
       2020-03-22 23:34:48 +08:00 via Android
    使用过一段时间,个人主要 C/C++项目,组里只有我一人使用 vscode
    1. 项目稍大的话,远程查找跳转等功能和本地体验有差距;
    2. 上周同事问我,服务器上进程 microsoftvscode 是什么,CPU 占用 100%了......
    luin
        58
    luin  
    OP
       2020-03-22 23:45:30 +08:00
    @cwr31 好啊!想听啥😁
    lix7
        59
    lix7  
       2020-03-22 23:46:18 +08:00
    @visitant 跳板机的目的就是隔开网络区域,一个 ProxyCommand 又给干穿了就违背跳板机的初衷了吧。至少我司是明确规定禁止私自打通各个区域的,一般能通的都默认通,不能通的打通就是违规。
    a852695
        60
    a852695  
       2020-03-22 23:59:04 +08:00
    @visitant 跳板机登录不是固定密码,是一个动态密码。。
    Rorysky
        61
    Rorysky  
       2020-03-23 00:10:28 +08:00
    不太明白,这样还要再搞一台性能强劲的服务器? 除非公司行为,我觉得个人不适合维护两套设备
    UnknownR
        62
    UnknownR  
       2020-03-23 00:23:53 +08:00
    登录 ipad 是真的期待,还有 12 寸 mac 是死的真惨,生不逢时,要是能出新版就好了,现在远程类的 app 这么多
    Chingim
        63
    Chingim  
       2020-03-23 00:47:05 +08:00 via Android   ❤️ 1
    前端开发劝退,这样一来 devserver 跑在远端,服务器还要开一堆端口,而且服务器带宽还要够大,不然一堆为未压缩的资源+source map,能把你耐心磨没
    Chingim
        64
    Chingim  
       2020-03-23 00:51:39 +08:00 via Android
    我觉得用几个月再出来安利比较好,才几天的体验,很多坑都没遇到
    hallDrawnel
        65
    hallDrawnel  
       2020-03-23 01:16:39 +08:00
    现在在我厂新来的人基本就是用这个,很爽,公司专门配了支持的云开发机镜像。
    visitant
        66
    visitant  
       2020-03-23 03:24:47 +08:00
    @a852695 用 ProxyCommand 和用跳板机登录到目标机器并没有什么区别。。
    falcon05
        67
    falcon05  
       2020-03-23 06:07:19 +08:00 via iPhone
    去年体验过一阵,对跑服务端的网络和性能要求比较高,如果经常移动办公,需要适应不同环境的网络,不太稳定,放弃了。
    imycc
        68
    imycc  
       2020-03-23 06:41:03 +08:00
    已经用了一年了,win10 + vscode remote + 本地虚拟机。

    公司有办公网 vpn,把虚拟机的网络模式设置为桥接直接,不需要端口代理就可以直接访问虚拟机的端口(否则多套开发环境一个个做映射到主机,要累死)

    用 vim 编程有四五年了,一直眼馋 vscode 但是没有合适的方案,remote development 出来之后就逐步切换过去了。可惜 vsocde 的 vim 模式支持并不完善,很多之前配置的快捷键要迁移过来也很麻烦(还要考虑冲突),感觉重新适应 vscode 的快捷键了。
    coderEOS
        69
    coderEOS  
       2020-03-23 07:05:09 +08:00 via Android
    不错一会试下,之前都是用自己写的 scp 的脚本
    secsilm
        70
    secsilm  
       2020-03-23 08:07:49 +08:00 via Android
    yazoox
        71
    yazoox  
       2020-03-23 08:11:28 +08:00 via Android
    @wweir 阿里云上配的啥机器?有什么特别需要的设置么?分享一下!
    janxin
        72
    janxin  
       2020-03-23 08:23:47 +08:00
    问题来了,远程机器怎么来
    LokiSharp
        74
    LokiSharp  
       2020-03-23 08:52:55 +08:00
    我觉得还是 IDEA 自带的远程功能用起来顺手点。。。
    mshadow
        75
    mshadow  
       2020-03-23 09:12:29 +08:00
    已经习惯 JB 全家桶了,我还是老老实实把主力开发机配置弄高一点吧。。
    coderEOS
        76
    coderEOS  
       2020-03-23 09:56:34 +08:00
    试了下,秀的一批,速度真的快。直接安装**Remote - ssh**就行了
    但是还是有一点不满足需求,因为本地会连一些设备,全在远程上搞,本地没环境,一些东西就用不了。
    CommandZi
        77
    CommandZi  
       2020-03-23 10:10:07 +08:00
    如果远程机器用 Windows,本地用 MacBook Air,那么 control + F\B\A\E\N\P,这些快捷键都有效吗?
    collery
        78
    collery  
       2020-03-23 10:15:31 +08:00
    感觉需要公网比较麻烦,网络的稳定性是个大问题。
    另外一般公司开发,基本环境用公司的就行了。感觉用处不是很大。当然,我是写后端的。。。
    azkaban
        79
    azkaban  
       2020-03-23 10:38:49 +08:00
    32 内存,啥东西都开一堆,毫无感觉
    SPACELAN
        80
    SPACELAN  
       2020-03-23 10:42:59 +08:00
    我司已经基于这功能在内推广云 IDE 了[手动狗头]
    justin2018
        81
    justin2018  
       2020-03-23 10:49:05 +08:00
    跟 JetBrains 家的 有啥区别
    目前用 JetBrains 在~
    luin
        82
    luin  
    OP
       2020-03-23 12:11:47 +08:00
    @azkaban 笔...笔记本吗?
    Lxxyx
        83
    Lxxyx  
       2020-03-23 12:15:58 +08:00 via iPhone
    @wweir 好奇是什么产品?我也想试试看。然后一个月十几块的机器配置咋样
    Lxxyx
        84
    Lxxyx  
       2020-03-23 12:16:34 +08:00 via iPhone   ❤️ 1
    @Lxxyx 看到了之前的回复,1c1g20g
    Tonni
        85
    Tonni  
       2020-03-23 13:13:02 +08:00
    很早之前就在期待了,beta 的时候就一直在用,很好用。
    rdZZZ
        86
    rdZZZ  
       2020-03-23 13:27:21 +08:00
    @ybw 又让你小子装了个大逼
    wazon
        87
    wazon  
       2020-03-23 13:56:22 +08:00
    单论 Python 的话,与 Jupyter Notebook / Lab 这种纯网页的 IDE 相比,有什么值得一提的优缺点?
    xuanloe
        88
    xuanloe  
       2020-03-23 14:24:13 +08:00
    我 WebStorm 远程都是
    GoodSync 通过 SSH 同步代码(双向拉取最新更新代码)
    frp 远程桌面 或者 本地接口 (一般远程桌面)
    一直没找到前端比较好的远程方案
    sbilly
        89
    sbilly  
       2020-03-23 15:12:47 +08:00
    1.4 以后的 vscode 已经支持跑在 web 上,直接用浏览器
    szanlin
        90
    szanlin  
       2020-03-23 15:39:49 +08:00
    @wweir 能分享下经验么
    wweir
        91
    wweir  
       2020-03-23 16:18:49 +08:00
    @szanlin 莫名其妙被举报了,就不分享了。在 ecs 里面找竞价实例里面的共享型,很多的
    coolcoffee
        92
    coolcoffee  
       2020-03-23 16:29:47 +08:00
    @justin2018
    @xuanloe

    JetBrains 家的应该只是文件同步吧,运算量还是在本地的。

    vscode 会要求在远端安装对应的环境依赖,例如 golang 项目就需要在服务端安装一堆依赖,不然就算终端能跑,智能提示也显示不出来。
    justin2018
        93
    justin2018  
       2020-03-23 16:32:24 +08:00
    @coolcoffee 原来如此 下午已经在体验中了 还在摸索在 😁
    huamiao
        94
    huamiao  
       2020-03-23 16:34:53 +08:00
    @a852695
    @cabing
    跳板机是这样的:一般来说,如果你的终端可以连接到目标服务器(比如 http 等端口,只是不能 ssh ),那么只要通过跳板机登录后在目标机器上再起一个 ssh server (不要用 22 端口)就可以了。如果啥端口都无法访问,那就歇菜吧。
    l1nyanm1ng
        95
    l1nyanm1ng  
       2020-03-23 17:08:24 +08:00
    我配置了一下午,发现转发端口后 react 并没有因为修改文件而实时刷新啊,是不是还要做什么配置
    kylix
        96
    kylix  
       2020-03-23 17:25:25 +08:00
    去年试过一次,远程机器 linux 虚拟机,4G 内存,一下子就耗光了,没兴趣了~~

    C++
    mifly
        97
    mifly  
       2020-03-23 17:26:18 +08:00 via Android
    使用 x11 forwarding 可以达到类似的效果
    用台机装 linux,性能强大,linux 开通 x11-forwarding,在笔记本上用 mobaxterm 登录台机的 linux,然后直接执行 idea 的启动脚本,就可以在笔记本使用台机资源来开发了
    l1nyanm1ng
        98
    l1nyanm1ng  
       2020-03-23 17:50:15 +08:00
    @l1nyanm1ng 自己贴个条,原来是自己忘了开启 file watch 了,算了,我的丐中丐云服务器一下子也被榨干了,瞬间索然无味了,还是老老实实用本地开发了
    stevenkang
        99
    stevenkang  
       2020-03-23 18:19:34 +08:00
    云开发目前最麻烦的就是网络延迟吧,同城电信公网 IP,远程都会有时候很卡。

    之前体验过云网吧,那个延迟真的超级低,不知道是啥技术。

    延迟低的情况下,云开发真是超级爽。

    (另外淘宝上几十块钱买个远程开关机模块,电脑也不用一直开着了)。

    (再另外,家里面电信送的盒子搭建 MySQL,测试用的数据库也有了)。
    oska874
        100
    oska874  
       2020-03-23 18:23:12 +08:00
    对 c/c++ 不友好,函数跳转无解。
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3043 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 14:37 · PVG 22:37 · LAX 06:37 · JFK 09:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.