OpenSumi 本地和云端 IDE 框架开源项目

我要开发同款
匿名用户2022年06月30日
44阅读
开发技术TypeScript
所属分类开发工具
授权协议MIT

作品详情

OpenSumi框架旨在解决阿里经济体内部IDE产品研发的重复建设问题,满足IDE在更多垂直场景的定制能力,同时实现Web与本地客户端共用底层,让IDE研发从早期的“刀耕火种”时代向“机器化大生产”时代迈进。

整体架构为了保证框架可以同时在 Web 和 Electron 环境下运行,OpenSumi采用了一套前后端分离、通过一层抽象的通信层进行相互调用的项目结构。

在 Web 上,我们使用 WebSocket 来作为通信的实现。

在Electron 上,我们则是 IPC 通信。

每一个通信的连接对应前后端一个独立的 DI(DependenceInject) 容器,所以 OpenSumi的后端实现是无状态的,不同连接之间是严格隔离的。

在OpenSumi内主要有三个核心进程:

插件进程(ExtensionProcess)后端进程(NodeProcess)前端进程(BrowserProcess)为了保证插件的问题不会影响IDE的性能表现,插件能力上OpenSumi采用了跟 VSCode 类似的方案,通过独立的插件进程去启动插件,插件进程再通过后端进程与前端进程进行通信。

OpenSumi的不同能力实现被拆分到了不同的模块内,这些模块通过 贡献点机制(ContributionPoint)、DI机制(DependenceInject) 互相之间有较弱的依赖关系,对于一些比较核心的基础模块,如主题服务、布局服务等,也会被其他模块直接依赖。

因此,在集成开发过程中需要保证一些模块的引入顺序。

整体启动的生命周期如下图所示:

 

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论