百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程网 > 正文

下一代 IDE:Eclipse Che 究竟有什么奥秘?

yuyutoo 2025-02-17 14:37 7 浏览 0 评论

作者 | 淼叔

责编 | 郑丽媛

头图 | CSDN 下载自视觉中国

出品 | CSDN博客

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选型中不可忽视的一个选择项。

作者简介:淼叔,资深架构师,PMP、OCP、CSM、HPE University讲师,EXIN DevOps Professional与DevOps Master认证讲师,曾担任HPE GD China DevOps & Agile Leader,帮助企业级客户提供DevOps咨询培训以及实施指导。熟悉通信和金融领域,有超过10年金融外汇行业的架构设计、开发、维护经验,在十几年的IT从业生涯中拥有了软件开发设计领域接近全生命周期的经验和知识积累。

原文链接:
https://blog.csdn.net/liumiaocn/article/details/108267949

点分享

相关推荐

墨尔本一华裔男子与亚裔男子分别失踪数日 警方寻人

中新网5月15日电据澳洲新快网报道,据澳大利亚维州警察局网站消息,22岁的华裔男子邓跃(Yue‘Peter’Deng,音译)失踪已6天,维州警方于当地时间13日发布寻人通告,寻求公众协助寻找邓跃。华...

网络交友须谨慎!美国犹他州一男子因涉嫌杀害女网友被捕

伊森·洪克斯克(图源网络,侵删)据美国广播公司(ABC)25日报道,美国犹他州一名男子于24日因涉嫌谋杀被捕。警方表示,这名男子主动告知警局,称其杀害了一名在网络交友软件上认识的25岁女子。雷顿警...

一课译词:来龙去脉(来龙去脉 的意思解释)

Mountainranges[Photo/SIPA]“来龙去脉”,汉语成语,本指山脉的走势和去向,现比喻一件事的前因后果(causeandeffectofanevent),可以翻译为“i...

高考重要考点:range(range高考用法)

range可以用作动词,也可以用作名词,含义特别多,在阅读理解中出现的频率很高,还经常作为完形填空的选项,而且在作文中使用是非常好的高级词汇。...

C++20 Ranges:现代范围操作(现代c++白皮书)

1.引言:C++20Ranges库简介C++20引入的Ranges库是C++标准库的重要更新,旨在提供更现代化、表达力更强的方式来处理数据序列(范围,range)。Ranges库基于...

学习VBA,报表做到飞 第二章 数组 2.4 Filter函数

第二章数组2.4Filter函数Filter函数功能与autofilter函数类似,它对一个一维数组进行筛选,返回一个从0开始的数组。...

VBA学习笔记:数组:数组相关函数—Split,Join

Split拆分字符串函数,语法Split(expression,字符,Limit,compare),第1参数为必写,后面3个参数都是可选项。Expression为需要拆分的数据,“字符”就是以哪个字...

VBA如何自定义序列,学会这些方法,让你工作更轻松

No.1在Excel中,自定义序列是一种快速填表机制,如何有效地利用这个方法,可以大大增加工作效率。通常在操作工作表的时候,可能会输入一些很有序的序列,如果一一录入就显得十分笨拙。Excel给出了一种...

Excel VBA入门教程1.3 数组基础(vba数组详解)

1.3数组使用数组和对象时,也要声明,这里说下数组的声明:'确定范围的数组,可以存储b-a+1个数,a、b为整数Dim数组名称(aTob)As数据类型Dimarr...

远程网络调试工具百宝箱-MobaXterm

MobaXterm是一个功能强大的远程网络工具百宝箱,它将所有重要的远程网络工具(SSH、Telnet、X11、RDP、VNC、FTP、MOSH、Serial等)和Unix命令(bash、ls、cat...

AREX:携程新一代自动化回归测试工具的设计与实现

一、背景随着携程机票BU业务规模的不断提高,业务系统日趋复杂,各种问题和挑战也随之而来。对于研发测试团队,面临着各种效能困境,包括业务复杂度高、数据构造工作量大、回归测试全量回归、沟通成本高、测试用例...

Windows、Android、IOS、Web自动化工具选择策略

Windows平台中应用UI自动化测试解决方案AutoIT是开源工具,该工具识别windows的标准控件效果不错,但是当它遇到应用中非标准控件定义的UI元素时往往就无能为力了,这个时候选择silkte...

python自动化工具:pywinauto(python快速上手 自动化)

简介Pywinauto是完全由Python构建的一个模块,可以用于自动化Windows上的GUI应用程序。同时,它支持鼠标、键盘操作,在元素控件树较复杂的界面,可以辅助我们完成自动化操作。我在...

时下最火的 Airtest 如何测试手机 APP?

引言Airtest是网易出品的一款基于图像识别的自动化测试工具,主要应用在手机APP和游戏的测试。一旦使用了这个工具进行APP的自动化,你就会发现自动化测试原来是如此简单!!连接手机要进行...

【推荐】7个最强Appium替代工具,移动App自动化测试必备!

在移动应用开发日益火爆的今天,自动化测试成为了确保应用质量和用户体验的关键环节。Appium作为一款广泛应用的移动应用自动化测试工具,为测试人员所熟知。然而,在不同的测试场景和需求下,还有许多其他优...

取消回复欢迎 发表评论: