当前位置:首页 > 技术文章 > 云 IDE 你了解多少

云 IDE 你了解多少

go1236个月前 (07-24)技术文章305

IDE对于软件开发者来说,是一个非常重要的工具。好用的 IDE 可以大幅提高开发效率,减少不必要的重复工作。 本文会介绍一些可以运行在远程的 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 服务:

code serve-web

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

code tunnel

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

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

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

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

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

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

OpenVSCode Server 

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

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

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

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

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。

通过下面的命令启动:

docker run -p 8080:8080 ghcr.io/coder/code-server:4.91.1-39

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

其他相关项目 

  • https://eclipse.dev/che/

  • https://www.jetbrains.com/space/download/

  • https://github.com/daytonaio/daytona


声明:本站所有内容均为自动采集而来,如有侵权,请联系删除
标签: IDE

相关文章

Redis连环五十二问!看谁顶得住?

Redis连环五十二问!看谁顶得住?

基本 1.说说什么是Redis? Redis是一种基于键...

用 PHP 处理 10 亿行数据!

用 PHP 处理 10 亿行数据!

今天,我将带大家一起走进“挑衅十亿行“数据的世界。当然,这个事情是依据GitHub上的一个“十亿行挑衅”(1brc)运动而来,现在正在进行,如果你没有听说过,可查看Gunnar Morlings 的 1brc 存储库。https://github.com/gunnarmorling/1brc我之所以...

2024 年的最佳 PHP 框架

2024 年的最佳 PHP 框架

在本文中,我们将预测在 2024 年持续风行的最佳 PHP 框架。我们首先将看看PHP框架是什么,什么时候该斟酌应用PHP框架,以及应用PHP框架的重要长处都是什么。我还会介绍最合适初学者的 PHP 框架以及用于 Web 开发的最佳框架。什么是PHP框架?     &...

一文读懂多家厂商的大模型训练、推理、部署策略

一文读懂多家厂商的大模型训练、推理、部署策略

4 月 20 日,第 102 期源创会在武汉胜利举行。本期邀请来自武汉人工智能研讨院、华为、MindSpore、京东云、Gitee AI 的人工智能专家,环绕【大模型竞技与性能优化】主题发表演讲。接下来就一起看看本期运动的出色瞬间吧!大合影 get ✅披萨和礼物不能少!接下来进入主题演讲回想环节。可...

请立刻停止编写 Dockerfiles 并使用 docker init

请立刻停止编写 Dockerfiles 并使用 docker init

您是那种认为编写 Dockerfile 和 docker-compose.yml 文件很苦楚的人之一吗?我承认,我就是其中之一。我总是想知道我是否遵守了 Dockerfile、 docker-compose 文件的最佳编写实践,我畏惧在不知不觉中引入了安全破绽。但是现在,我不必再担忧这个问题了,感激...

服务器为什么大多用 Linux 而不是 Windows ?

服务器为什么大多用 Linux 而不是 Windows ?

前几天在知乎看到一个话题很有意思,且很有讨论意义。“服务器为什么大多用 Linux”,除了开源、好用等原因,回答也代表了各种不同人需求和看法,摘取一些分享给大家,也欢迎留言讨论。来自知乎好友“熊大你又骗俺”的回答首先在20年前,windows server+iis+asp+access 的方案,还是...