OpenSumi:国内首个强定制性、高性能IDE研发框架正式开源

2025-02-23
来源:网络整理

点击遵循官方帐户,Java商品将及时交付

经过近三年的努力,在阿里巴巴集团和蚂蚁集团共同建立一个小组的努力中,作为中国的第一个IDE R&D框架,它是高度定制,高性能且与VS代码插件系统兼容的第一个IDE R&D框架,它具有今天是正式开源的。

1。这是什么?

它是用于开发垂直字段,低阈值,高性能和高定制的双端(Web和)IDE的框架。

该框架是由阿里巴巴集团的淘宝工程团队,Ant 的经验技术部和研发效率团队共同发起的,并共同开发了IDE标准化的R&D R&D框架。它是基于 +进行编码的,并实现了核心功能模块,包括资源管理器,编辑器,调试,GIT面板,搜索面板和其他核心功能模块。只要开发人员基于我们的启动项目进行简单配置,他们就可以快速构建自己的本地或云IDE产品,框架本身与VS代码插件生态系统兼容,而主流与代码插件可以无缝运行基于研发的产品。同时,该框架还为开发人员提供了各种低成本,高客户的视图自定义功能,这些功能可以满足大多数视图在IDE方案中的自定义方案的需求。

对于IDE研发,当今市场上有代码和其他开源解决方案。我们为什么选择自己开发和实施它们?自2019年以来,我们发现阿里巴巴和蚂蚁集团已经拥有许多IDE产品。大多数产品对于IDE产品的初步结构大致相同,但是初步建筑工作的这一部分至少占据了几个月。 ,对于多达半年的时间,有很多重复的劳动问题。在使用开源解决方案的过程中,每个人或多或少都遇到了一些问题,例如有限的自定义功能,深度源代码依赖性以及维护难度。 ,无法满足内部能力需求和其他问题。最后,我们决心收集多个团队的实力,以踏上自我发展和实现的道路。

2。有什么优点?

如前所述,它是针对垂直字段,低阈值,高性能和高定制的双端(Web和)IDE开发的框架。它的特征主要反映在以下内容中:

1。综合视图自定义功能

除了与主流浏览器的类似性能和编码体验外,在垂直业务领域,我们还可以自定义远远超出相似框架。根据我们的基本框架,您可以通过模块或插件自由自定义IDE产品。 ,能够实现真正的“全视图自定义”功能。

图片

在许多内部产品实施阶段,我们自然会通过模块实现更好的维护,并使用插件来实现业务视图或功能以实现更高的自定义。以阿里巴巴为例,以一些研发场景为例,结构分层如下:

图片

2。垂直领域的研发支持丰富的经验

在官方开放来源之前,它已经在阿里巴巴和蚂蚁组中孵育了两年,并在代表性垂直领域的一系列研发案件存放并实施。您可以想到的大多数研发练习场景可能是实际的经验。

对于Mini计划的开发方案,将 Mini计划开发人员工具和 MINI计划开发人员工具作为核心框架实现。到目前为止,每月服务开发人员的数量已达到2W+。

图片

借助我们的贡献点和其他Sumi API,我们可以通过插件实现进一步的自定义。喜欢:

1)自定义不同的显示器

图片

2)实施独立的传教窗口调度(例如模拟器)

图片

同时,共享的基础和插件功能还可以端到端快速移植。通过与 Mini 工具相关的插件插入,我们在短短一个月内完成了类似的功能,但是支持具有不同用法方案的 开发人员工具的初始版本,并孵化了内部O2客户端。

在集成的云研发链接中,我们在外部有一个阿里巴巴云开发平台,O2,ant和其他产品在内部。

传统的研发链接显示在下图的上半部分。

在开始项目研发之前,我们通常需要进行一些简单或繁琐的环境配置工作,并且您的编码环境也与云环境分开。借助云产品(例如阿里巴巴云)的容器功能,我们可以建立企业或团队的云编码环境使开发人员能够真正保存环境配置问题并完成云中的所有开发工作。

图片

通过深入的过程自定义,开发人员可以快速进入开发状态。

图片

通过与内部研发平台建立联系,可以一站式完成开发,测试,部署和其他工作。

纯前端施工能力是阿里巴巴和蚂蚁组中最广泛使用的功能。他们提供了编辑启动所需的Node.js服务,而无需依赖服务器,直接通过纯的前端资源和静态接口。定义可以构建基本的编辑器接口。

其实施的核心是针对最初依赖节点的文件,git和其他服务执行服务层抽象,允许开发人员手动定义服务的特定逻辑,例如文件读取和写作,同时基于基于提供的Web API,语言服务是在浏览器的Web环境中运行的,框架进行了塑造,并实现了纯前端构造的效果。

基于此实现层,您可以根据REST API充分实现纯前端编辑器,并且可以直接查看,编辑和提交上面的代码。我们将考虑将来提出相应的案例。在内部,典型的应用程序是以下情况:

1。代码审查

图片

2。代码显示

图片

3。远程书面测试

图片

我们还在代码存储库中提供了一个简单的介绍性案例/IDE-列表,您还可以直接通过“预览”页面查看演示效果。

3。完整的插件功能支持VS代码

我相信遵循IDE框架的学生必须熟悉它。作为与VS代码插件兼容的IDE框架,它确实与某些VS代码插件功能兼容,但是随后的VS代码API的兼容性越来越少,并且基本上依赖社区发展。发现人的贡献。

该设计最初设计为与VS代码插件生态系统兼容,因此我们对框架有持续的要求。开源后,我们计划每三个月完成每三个月的VS代码插件API的适应工作,并制定改编计划。它将由讨论区域的相应版本管理器组织。它已适用于VS代码v1.60.0版本标准API,并且可以在改编计划中看到进度。

3。与市场上主流框架的差异

在设计的早期阶段,我们对VS代码和源代码进行了深入学习。在实施过程中,为了与VS Code插件生态系统兼容,并且与主流编辑器的某些功能和经验兼容,我们为某些设计和实现提供了一些源代码。两位教师的实现以及相应的代码块已标记有版权标题信息。

1。与代码的关系

VS代码是具有较大市场份额的IDE,其核心是IDE产品,它与我们的框架属性基本不同。这是整个TOC产品。开发人员自定义的阈值和成本很高,可以自定义。该内容也相对有限,并且大多数通过插件有限扩展。

我们的框架主要为用户作为TOB用户提供服务。它是中小型企业的简单便捷开发选择之一,需要通过IDE框架来构建自己的/本地IDE产品,但没有足够的技术R&D功能。

2。与之关系

作为一名后起之秀,借鉴了近年来发展逐渐成熟后的一些设计概念,社区也蓬勃发展。它得到了基金会的支持,也是IDE开发人员的一个不错的开发选择。它与我们的框架有竞争关系。

它提供了一种模块化的IDE产品的能力。大多数视图上的大多数自定义都可以通过模块扩展(这也可以从我们的脑海中相应的想法中学到),并且与插件功能兼容。大多数VS代码插件都提供了VS代码插件API的子集功能。某些插件API(例如)未完全实现,并且没有随后且连续的随访计划。

基于以上几点,该框架不仅支持基本模块的扩展,而且还不断遵循VS代码标准API计划(当前实现VS代码1.16.0版本API),同时,我们基于在实施前端沙箱时,提供一系列的Sumi API,以通过插件自由扩展我们的视图功能。熟悉的前端学生可以直接编写前端组件,并通过我们提供的丰富API实施它们。相应的功能视图。

4。最后写

今天的开源只是我们迈出的一小步。我们期待着您的反馈,欢迎您创建自己的IDE产品。

最后,如果您有相应的兴趣,您也可以转到 /核心存储库来为我们的框架贡献您的某些代码和意见,这对我们来说是一个很大的荣幸。

分享