云IDE:Eclipse Che:Eclipse下一代IDE(推荐)

 更新时间:2020年09月23日 09:27:45   作者:淼叔  
这篇文章主要介绍了云IDE:Eclipse Che:Eclipse下一代IDE,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

Eclipse Che被Eclipse官方称为下一代IDE,作为老牌的IDE,被其寄予厚望的Eclipse Che到底有什么特点,在这篇文章中我们来一探究竟。

开发团队的Kuberentes原生IDE

Eclipse Che对开发团队来进行Kubernetes开发使能,提供了一键生成开发者工作空间的功能,消除了团队本地环境配置的操作。Che可以将Kubernetes应用更容易地发布至开发环境,并且提供了一个基于浏览器的IDE,使得开发者可以从任何机器进行编码、测试和运行应用程序等操作,所有的一切只需要提供一个浏览器即可。

功能特性

生产运行环境

Eclipse Che可以支持各种容器,甚至是多容器的运行环境。可以在Kubernetes、OpenShift或者Docker环境中运行,Chec可以使用从DockerHub或者开发者自己的镜像私库,通过添加基于SSH的Agent,使得生产镜像通过终端和语言服务可以具有开发环境功能,停止时,Che也可以保存工程相应的关键状态信息。支持和实现此项特性的基础能力主要包括:

  • 容器运行环境
  • Compose运行环境
  • SSH访问
  • 根用户终端访问
  • 预构建和自定义的组件
  • 工作空间快照

在这里插入图片描述

工作空间的开发模式

通过Agent为工作空间添加开发者服务包括语法自动补齐、错误检查和调试工具等。针对不同语言提供智能提示,可以启用根用户或者SSH访问方式。支持和实现此项特性的基础能力主要包括:

  • 语言服务器
  • 智能提示与重构
  • 调试器
  • 工作空间Agent
  • 智能命令
  • SSH访问
  • 根用户终端访问

在这里插入图片描述

可使用任何IDE

可以在任何设备上进行工作,无需安装软件,因为Eclipse Che IDE已经提供了内建方式。也可以使用开发者自己喜欢的桌面IDE,只需要挂载Che工作空间即可,一切可根据用户自行选择。支持和实现此项特性的基础能力主要包括:

  • 浏览器IDE
  • RESTful 工作空间API

在这里插入图片描述

团队开发

基于生产镜像创建定制的团队可用的组件和运行环境,包括开发所需要的工具。所有人都可以使用这样的组件或者拷贝工作空间来快速创建可以用于生产环境的应用。甚至可以通过添加示例代码来实现对新人进行培训的目的。支持和实现此项特性的基础能力主要包括:

  • 组件运行环境
  • 团队工作空间
  • 项目示例

在这里插入图片描述

语言服务协议

语言服务协议(Language Server Protocol )是由Microsoft, Codenvy, Red Hat 和 IBM共同开发的协议,包括语法分析,高亮以及在Eclipse Che内的重构代码。协议用于在客户端工具和语言服务之间进行功能特性的集成,比如自动不起、定义跳转和搜索所有引用等。

在这里插入图片描述

调试器

Che可以在开发者的工作空间中插入调试代理以允许变量监控和替换、断点设定、但不调试和其他常用的调试操作。调试器可以与组件或者用户工作空间进行关联。

在这里插入图片描述

SSH / 终端

Che向工作空间关联的操作系统中添加SSH守护进程,使用ssh连接开发者自己的IDE比如Eclipse,上传死钥或者使用Che为每个工作空间创建密钥对。通过Che的浏览器终端,开发者可以访问自己的工作空间,并且具有工作空间所关联操作系统的根用户权限。

在这里插入图片描述

组件

组件指的是工作空间的运行环境配置,包含运行环境所需要的构建文件(recipe)和元数据信息比如标签、描述信息、环境名称以及安全策略等。组件在用户的仪表盘中被展示,组件标签tag可以用于过滤可用的工程代码示例。组件的构建文件可以是Kubernetes YAML、Dockerfile或者Docker Compose文件,可以通过这些文件的方式来创建潜入到工作空间的运行环境。Che已经提供了30+的内建的组件可以用于开发者的工作,当然也可以创建自己的组件。

在这里插入图片描述

RESTful的工作空间

所有的Che服务都可以通过RESTful API进行访问,无论是通过工作空间的master还是agent,Che都提供了可以使用的API进行操作。工作空间master提供了工作空间管理和用户管理,而在每一个工作空间中,agent就是一个微型的提供了项目相关API的Che服务器,比如Che通过RESTful JDT wrapper提供了100+的Java智能提示能力。Che使用Swagger用于浏览和管理API。

在这里插入图片描述

可扩展的云IDE(Cloud IDE)

Che提供了一个可以从本地或者远端设备上进行访问的免安装的浏览器IDE。简、快、美:这是IDE和开发者所期待的。IDE使用了跨浏览器的JavaScript和CSS来实现,通过浏览器来进行使用,使用浏览器不同的tag页面可以打开不同的工作空间,每个空间消耗100M以下的内存,流畅的用户交互体验也不会因工作空间在远端而受到影响。Eclipse Che基于Eclipse Theia提供了VSCode体验的WebIDE功能,提供了最新的工具协议,包括语言服务、调试适配器以及和VSCode扩展的兼容性。对于更倾向于使用个人桌面IDE的用户,Che同样支持。同时提供了很多流行的工具包括:

  • 嵌入式的Orion编辑器
  • 按键绑定
  • 全球化的键盘支持
  • git / subversion工具

在这里插入图片描述

多工程管理

Che是一个真正的IDE平台,识别项目并绑定至仓库并指定类型,不同项目类型被赋予不同行为,比如Java项目被添加时,Che会添加RESTful JDT core的功能到相应的工作空间。工作空间可以有多个工程,每个工程都有自己的类型,虽然共享于一个工作空间,每个工程都可以被独立的构建和运。当下,Che的工程类型仍然有限,主要包括JavaScript、Maven和空工程类型。后续将会进一步和社区生态即可提供更多选择。

在这里插入图片描述

命令

Command是运行在工作空间所在操作系统的一个进程,可能是用户、工作空间或者项目相关。
命令具有不同类型,不同类型的命令具有特定的行为,比如Maven命令类型就包含生命周期阶段运行相关的内容。命令执行时,可以对项目和其他资源进行操作,允许用户跨项目和模块执行命令,执行时并与一定的上下文相关联。

在这里插入图片描述

预览

提供预览的功能,可以针对项目的上下文和工作空间,创建和显示用于预览的Web页面,同时,和预览功能结合,通过相应的命令,在工作空间中可以更好地启动和调试。

插件

Che可以通过使用定制化内建的插件或者使用者自己的插件来进行扩展。可以通过使用Che提供的方式生成用户自己的插件,用户可以编写插件来操作IDE、Che服务器或者工作区代理,插件会由Che在合适的时间插入到应该插入的位置。

在这里插入图片描述


整体架构

在这里插入图片描述

用户视角

  • 开发者

可以使用Che作为IDE进行任何框架和语言的编写,可以有助于工程和运行环境更加具有可移植性,同时上云更加简单。

  • 产品负责人

可以通过将Che嵌入到产品之中,只需要通过API进行控制即可。三星、SAP和红帽等使用Che创造了很好的开发者体验。比如SAP的WebIDE

在这里插入图片描述

在比如Codenvy,做了企业级的Che使用封装

在这里插入图片描述

  • 扩展提供者

可以使用组件、模版、扩展和插件进行新的开发者工具的创建,更好地利用和扩展使用方式。

总结

Eclipse Che有强大的背景公司的技术力量的支持,有众多既有用户的追随,是后续云IDE选型中不可忽视的一个选择项。

到此这篇关于云IDE:Eclipse Che:Eclipse下一代IDE的文章就介绍到这了,更多相关Eclipse下一代IDE内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java跳出for循环的三种常见方法

    java跳出for循环的三种常见方法

    这篇文章主要给大家介绍了关于java跳出for循环的三种常见方法,需要的朋友可以参考下
    2023-07-07
  • java使用poi导出Excel的方法

    java使用poi导出Excel的方法

    这篇文章主要为大家详细介绍了java使用poi导出Excel的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • Java 数据结构与算法系列精讲之汉诺塔

    Java 数据结构与算法系列精讲之汉诺塔

    汉诺塔是源于印度一个古老传说的益智玩具。大梵天创造世界时做了三根石柱,在一根柱子上从下往上按大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,三根柱子之间一次只能移动一个圆盘
    2022-02-02
  • Spring中filter过滤器的定义方法

    Spring中filter过滤器的定义方法

    这篇文章主要介绍了Spring中filter过滤器的定义方法,Filter 程序是一个实现了特殊接口的 Java 类,与 Servlet 类似,也是由 Servlet 容器进行调用和执行的,需要的朋友可以参考下
    2023-08-08
  • 关于java关键字this和super的区别和理解

    关于java关键字this和super的区别和理解

    这篇文章主要给大家介绍了关于java关键字this和super的区别和理解的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • Apache Commons CLI构建命令行应用利器教程

    Apache Commons CLI构建命令行应用利器教程

    这篇文章主要为大家介绍了构建命令行应用利器Apache Commons CLI的使用教程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • 在Eclipse安装Spring boot插件的步骤(图文)

    在Eclipse安装Spring boot插件的步骤(图文)

    这篇文章主要介绍了在Eclipse安装Spring boot插件的步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • Java并发编程之Semaphore的使用简介

    Java并发编程之Semaphore的使用简介

    这篇文章主要介绍了Java并发编程之Semaphore的使用简介,帮助大家更好的理解和学习使用Java,感兴趣的朋友可以了解下
    2021-04-04
  • java网上图书商城(8)订单模块3

    java网上图书商城(8)订单模块3

    这篇文章主要为大家详细介绍了java网上图书商城,订单模块第三篇,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • 在SpringBoot中整合使用Netty框架的详细教程

    在SpringBoot中整合使用Netty框架的详细教程

    这篇文章主要介绍了在SpringBoot中整合使用Netty框架的教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06

最新评论