云 IDE 你了解多少

IDE(Intelligent Development Environment) 对于软件开发者来说,是一个非常重要的工具。好用的 IDE 可以大幅提高开发效率,减少不必要的重复工作。

就目前而言,本地的 IDE 可能依然是主流的选择。但是,在本地进行开发,也是有着诸多缺点,例如:

  • IDE 本身的资源消耗巨大(例如:GoLand 启动就需要 1.4G 内存)

  • 语言框架、库依赖占用大量的磁盘(20G ~ 40G 都很正常,涉及到多种语言开发的话,磁盘消耗往往会翻倍)

  • 涉及到云原生的话,又会很轻松地吃掉你大量的磁盘(40G+)

实际情况是,当在开发大型程序时,你的工作电脑至少需要 8核 16G 内存,并且磁盘空间至少 1T。磁盘最好是固态的,但为了经济考虑可以固态、机械硬盘各 500G。

对于注重研发效率、愿意给工程师提供高配笔记本的的公司也许不需要考虑这一点,但对于很多只给到以上基础配置(甚至都不如)的 Windows 笔记本的话,工作起来会感觉到很难受。

下面,我会介绍一些可以运行在远程的 IDE,本地只需要浏览器或者相应的客户端即可,可以极大地改善研发体验。

VSCode Server

VSCode 除了有桌面版,还提供了 CLI 版本(支持 Windows、Linux、MacOS),可以作为服务启动,用户通过浏览器来访问并使用。

打开官网下载地址,选择 CLI 版本,解压后能看到 code 命令。执行下面的命令会启动一个 Web 服务:

go 复制代码
code serve-web

你可以从终端输出中看到访问地址,例如:http://127.0.0.1:8000。对于在家庭网络、办公网络情况下,这种模式非常适合。但如果,你希望把开发环境暴露到公网,他还提供了隧道的方式,执行下面的命令,可以得到一个公网访问地址:

go 复制代码
code tunnel

根据提示打开服务地址后,需要使用 GitHub 或 Microsoft 账号登录,然后就可以访问了。

这种模式,适合个人使用,难以满足团队使用的需求,例如:

  • 无法为团队不同人员自动化地提供 IDE 实例

  • 没有用户认证,无法保证使用安全

  • 缺少实例资源(CUP、内存、硬盘等)控制

  • 没有提供容器镜像版本,只有二进制文件

OpenVSCode Server

OpenVSCode Server 是一个基于 VSCode 的开源 IDE,由 GitPod 团队维护。

他默认提供了一个 Docker 镜像,可以直接使用 Docker 运行。

go 复制代码
docker run -it --init -p 3000:3000 -v "$(pwd):/home/workspace:cached" gitpod/openvscode-server

你也可以通过自定义 Dockerfile 来构建更加符合自己需求的镜像。

go 复制代码
FROM gitpod/openvscode-server:latest

ENV OPENVSCODE_SERVER_ROOT="/home/.openvscode-server"
ENV OPENVSCODE="${OPENVSCODE_SERVER_ROOT}/bin/openvscode-server"

SHELL ["/bin/bash", "-c"]
RUN \
    # Direct download links to external .vsix not available on https://open-vsx.org/
    # The two links here are just used as example, they are actually available on https://open-vsx.org/
    urls=(\
        https://github.com/rust-lang/rust-analyzer/releases/download/2022-12-26/rust-analyzer-linux-x64.vsix \
        https://github.com/VSCodeVim/Vim/releases/download/v1.24.3/vim-1.24.3.vsix \
    )\
    # Create a tmp dir for downloading
    && tdir=/tmp/exts && mkdir -p "${tdir}" && cd "${tdir}" \
    # Download via wget from $urls array.
    && wget "${urls[@]}" && \
    # List the extensions in this array
    exts=(\
        # From https://open-vsx.org/ registry directly
        gitpod.gitpod-theme \
        # From filesystem, .vsix that we downloaded (using bash wildcard '*')
        "${tdir}"/* \
    )\
    # Install the $exts
    && for ext in "${exts[@]}"; do ${OPENVSCODE} --install-extension "${ext}"; done

可以看到,你可以通过自定义镜像的方式,预先安装插件、工具、语音 SDK 等等。

我在 https://github.com/LinuxSuRen/openvscode-server-images 这个项目中维护了:Golang、Java、NodeJS 以及包含常见前后端的全量镜像,欢迎各位使用。

但需要注意的是,OpenVSCode Server 会从 https://open-vsx.org/ 这里获取插件列表,和 VSCode 的插件中心地址不同。当然,格式上是完全兼容的。

Coder

Coder 也是一个基于 VSCode 的开源 IDE。核心程序协议为 AGPL。

通过下面的命令启动:

go 复制代码
docker run -p 8080:8080 ghcr.io/coder/code-server:4.91.1-39

他可以借助 Terraform 在云主机上创建远程 IDE 实例,也可以通过 JetBrain Gateway 来连接。

其他相关项目

相关推荐
cliffordl2 小时前
vscode 环境搭建
ide·vscode·编辑器
JANGHIGH3 小时前
VSCode引用Eigen库无法识别问题解决
ide·vscode·编辑器
我就是全世界4 小时前
开源集成开发环境搭建之VSCode启动Jupyter Notebook
ide·vscode·jupyter
程序猿进阶1 天前
如何在 Visual Studio Code 中反编译具有正确行号的 Java 类?
java·ide·vscode·算法·面试·职场和发展·架构
猿饵块1 天前
vscode
ide·vscode·编辑器
大数据界Olu1 天前
bug | pycharm社区版无sciview解决办法
ide·python·pycharm
千寻简1 天前
Cursor免费 GPT-4 IDE 工具的保姆级使用教程
java·运维·ide·ai
我是一颗小小的螺丝钉1 天前
idea插件推荐之Cool Request
java·ide·intellij-idea
我命由我123452 天前
2.使用 VSCode 过程中的英语积累 - Edit 菜单(每一次重点积累 5 个单词)
前端·javascript·ide·vscode·学习·编辑器·学习方法
文 丰2 天前
【Android Studio】app:compileDebugJavaWithJavac FAILED解决办法
android·ide·android studio