将新开发人员引入具有许多依赖性的编程项目有时可能是一场噩梦。 我看到过一个极端的情况,在一个月的尝试配置他的旧计算机后,公司最终放弃了并为开发人员购买了一台新计算机。 通常,为新开发人员设置新的开发环境可能需要三天到两周的时间。
该问题是基于Web的开发人员工作区的动机之一。 另一个动机是,用于本地开发的机器需要大量的CPU和RAM资源,这会增加硬件成本。 这些资源使开发人员可以快速构建项目。 与用于本地开发的计算机相比,用于访问基于Web的工作区的计算机可以使用低端硬件来摆脱困境。
另外一个好处是,基于Web的开发人员工作区可以集中和标准化配置。 您针对错误报告听到过多少次“它可以在我的机器上工作”? 标准化的环境可以消除该问题。
在本文中,我将讨论提供基于Web的开发人员工作区的三个云IDE。 其中两个-Eclipse Theia和Eclipse Che-是目前由Eclipse Foundation主持的相当免费的开源项目。 第三个是AWS Cloud9,它是一个较旧的产品,现在由Amazon Web Services拥有并与之集成。
蚀西娅
Eclipse Theia是一个开源项目,旨在在浏览器中提供Visual Studio Code开发经验。 它也可以在Electron Shell的桌面上运行。 Theia依靠Visual Studio Code的Language Server Protocol提供特定于语言的代码完成以及我们期望在现代代码编辑器中使用的其他功能。
由于可以利用为Visual Studio Code编写的语言服务器,Theia可以访问60多种可用的语言服务器,包括JavaScript,Java,Python和TypeScript。 Theia还支持调试适配器协议 。
Theia本身是用TypeScript编写的,并使用PhosphorJS作为其外壳和可拖动的底座布局的基础。 它集成了一个终端,该终端在浏览器重新加载时重新连接,以维护命令行历史记录。 您可以根据需要创建自己的 Theia 扩展 。
尝试Theia的主要方法有三种。 一种是在Docker中运行它:
docker run -it -p 3000:3000 -v “$(pwd):/home/project:cached” theiaide/theia:next
第二种是在Gitpod中运行它(请参见下面的侧栏和屏幕截图)。 第三个是运行Eclipse Che版本7或更高版本(请参阅下一节),该版本使用Theia作为其UI,而不是较旧版本的Che中使用的Java UI。
Eclipse Theia项目包括TypeFox,爱立信,Red Hat,IBM,Google和ARM的贡献。 该项目路线图包括一个插件系统,以支持VS Code扩展(语言服务器之外),与测试框架的集成以及其他改进。
![蚀theia gitpod](https://i-blog.csdnimg.cn/blog_migrate/eeb4bc807b5e3ef8bc1199ac077f074d.png)
在上面的屏幕截图中,我们正在通过Gitpod在GitHub theia-ide / theia项目的浏览器中运行Theia。 注意Theia在功能和外观上与Visual Studio Code相似。 还要注意,Gitpod在终端窗口中自动构建了项目。
TypeFox Gitpod
Gitpod是一个商业托管环境(请参见上面的屏幕截图),旨在在工作区中打开GitHub存储库。 Gitpod IDE是开源的,基于Eclipse Theia 。 目前处于免费的Beta测试阶段,Gitpod将始终对开源项目免费,但最终将需要订阅才能打开私有存储库,并且每月使用时间超过100个小时。
Gitpod.io云当前在全球三个不同地区的Google Cloud基础设施上托管的多个Kubernetes集群中运行。 Gitpod产品也可用于私人托管 。
日蚀车
Eclipse Che是为团队和组织设计的开源开发人员工作区服务器和云IDE。 当前处于beta版的Che版本7使用Eclipse Theia作为其IDE的基础。 Che的较旧版本使用基于GWT的IDE。 Che工作区在Docker,OpenShift或Kubernetes上的容器中运行。
您可以在公共云,私有云中运行Che,或将其安装在任何操作系统上。 Che已在Ubuntu,Linux,MacOS和Windows上经过测试。 您还可以在托管于https://che.openshift.io/的自助式工作区中运行Che,您需要为其提供或创建免费的OpenShift或Red Hat登录。
此外,Eclipse Che构成了Red Hat CodeReady Workspaces的核心,后者是OpenShift的新开发环境。 除Red Hat支持之外,CodeReady Workspaces还具有支持Red Hat技术的预构建堆栈,并包括Red Hat SSO以处理开发人员团队之间的身份验证和安全性。
Eclipse Che项目包括来自CodeEnvy(Che的原始开发者),Docker,IBM,Red Hat和TypeFox的20多家公司的贡献。 Che路线图包括完成Theia集成以及Theia和Che的插件系统。
![日食](https://i-blog.csdnimg.cn/blog_migrate/246a704417a45dbb2c6a86c351e2ad74.png)
在此屏幕快照中,我们在带有Node.js堆栈的che.openshift.io托管的浏览器中运行Eclipse Che 6。 该项目是“你好,世界!” 基于Node.js和Express的Web应用程序。
AWS Cloud9
我在2017年将其称为Go IDE的Cloud9 IDE现在属于Amazon Web Services。 除了具有基于浏览器的多语言代码编辑器,多种语言的调试器以及预先授权用于AWS服务的终端外,Cloud9现在还允许进行协作编码。
您可以在托管的Amazon EC2实例或任何支持SSH的Linux服务器上运行Cloud9开发环境。 Cloud9包括用于多达40种编程语言的工具,尽管只有五个具有调试器,七个具有lint,以及十二个具有代码完成功能。
如果您在EC2上运行Cloud9,则EC2实例将在您关闭Cloud9之后自动停止,默认情况下是30分钟后,并且代码将保留在Amazon EBS存储中。 如果您在自己的Linux服务器上运行Cloud9,则代码将保留在本地存储中。 如果您在Cloud9的基础实例停止后重新启动,则Cloud9将自动重新启动该实例并从上次中断的地方恢复您的编辑会话。
您可以轻松地从存储库或本地文件填充Cloud9实例。 在下面的屏幕截图中,我使用了Cloud9命令行中的Git来检出Keras的GitHub存储库。 如果要基于具有提交权限的存储库来编辑项目,则可以更新存储库并根据需要从命令行提取更改。 Cloud9不具有版本控制的图形支持。
请注意以下屏幕截图右侧的大纲视图,该视图非常适合文件内的总体导航。 左上方显示的“转到”菜单非常适合常规导航。 尽管有简单的代码重新格式化,但是Cloud9中没有重构功能。
AWS Cloud9与Amazon Lightsail,AWS CodeStar,AWS Lambda函数和AWS CodePipeline集成在一起。 Lambda集成似乎特别好。
![AWS Cloud9](https://i-blog.csdnimg.cn/blog_migrate/c7a57da3fe64a5e84964196604f04f04.png)
AWS Cloud9 IDE显示从GitHub克隆的Keras Python代码。 请注意右侧的轮廓视图和“转到”菜单上的选项。 显示的键盘快捷键适用于MacOS。
哪个云IDE?
Eclipse Theia,Eclipse Che和AWS Cloud9都使您可以从浏览器以多种编程语言编辑和调试代码。 布局和功能上存在差异,但是除非您想完成相当高级的事情(例如重构),否则这并不重要。
如果您正在开发AWS项目,则Cloud9是一个特别好的选择,而如果您正在开发Red Hat系统的代码,则Che是一个特别好的选择(作为CodeReady)。 Theia提供了三个中最好的编辑环境,但是一旦Che 7发布beta版,它也将具有Theia IDE。