SmartIDE支持开源国产IDE - 阿里蚂蚁的OpenSumi丨IDCF

42f3d120ca48dfe1028141dc054f2b02.gif

作者:徐磊

文章首发地址:https://smartide.cn/zh/blog/2022-0419-sprint16/

SmartIDE v0.1.16 (Build 3137)已经在2022年4月19日发布到稳定版通道,我们在这个版本中增加了阿里和蚂蚁发布的国产IDE OpenSumi的支持,以及其他一些改进。SmartIDE 从 Sprint 11 (v0.1.11) 开始已经将重心转向 Server版 的开发,并且已经针对社区开放了server的内测。但是对于 CLI 的改进和增强一直没有停止,因为 CLI 是 SmartIDE 的核心,实际上我们的 Server 版对于 工作区 的管理也是通过云原生开源流水线框架 Tekton 调度 CLI 实现的。

我们将在近期发布更加完善的 Server 版安装部署手册和文档,同时 Server 版 和 CLI 核心代码也将在近期开源。SmartIDE 的核心代码将采用GPL协议开源,允许任何组织和个人免费使用我们的代码搭建自己的云原生IDE环境。

快速启动视频演示

c7698ca1fda57389a3d9deed4c13eafa.png

OpenSumi的定位非常符合SmartIDE对IDE定制化解决方案的需求,因此我们针对OpenSumi进行了适配和集成,开发者可以使用一个非常简单的指令即可在浏览器中启动一个基于OpenSumi WebIDE 的 node.js 开发环境,SmartIDE支持7种主流技术栈,包括:JavaScript/Node.js,Java ,DotNet,Python ,PHP,Go语言和C/C++,并且支持在Windows/MacOS/Linux上跨平台使用,此次扩展了IDE支持后,将我们所支持的IDE也扩展到3大体系,分别是:VSCode,JetBrains和OpenSumi。

## 使用OpenSumi WebIDE开启Node开发环境
smartide new node -t opensumi

以下是处于单步调试状态的 OpenSumi WebIDE

30f397b4d4568fcb5e47e9c8c76d97c2.png

或者也可以通过我们的 计算器 示例应用体验使用OpenSumi开发调试Node.js应用的过程:

## 使用OpenSumi调试计算器示例
smartide start https://gitee.com/idcf-boat-house/boathouse-calculator.git --filepath .ide/opensumi.ide.yaml

以下是正在单步调试 计算器示例应用的OpenSumi WebIDE,视频号视频

OpenSumi 简介

a79099ef52ec63d30729a1e69b7e5f99.png

beb0d9967c3909361645a9ee4fdeeb41.png

严格来说,阿里的 OpenSumi 并不是一个IDE产品,而是一个IDE二次开发框架。这个定位与 Eclipse Cheia 的定位相同。SmartIDE 的早期版本也支持 Eclipse Theia,但是由于其操作体验与VSCode还是存在一定的差距,后续我们将重心转向类VSCode的IDE支持,比如对OpenVSCode Server 的支持,以及 JetBrains 系列IDE全家桶的支持。阿里&蚂蚁的开发团队在2022年3月3日发布了OpenSumi以后,SmartIDE团队对这款IDE进行了研究,认为可以替代Eclipse Theia 作为未来提供 “定制化IDE” 解决方案的基座,因此将重心转向了对 OpenSumi的支持,按照阿里&蚂蚁相关文章的说明:

“OpenSumi 是一款面向垂直领域,低门槛、高性能、高定制性的双端(Web 及 Electron)IDE 研发框架,基于 TypeScript+React 进行编码,实现了包含资源管理器、编辑器、调试、Git 面板、搜索⾯板等核新功能模块。开发者只要基于起步项目进行简单配置,就可以快速搭建属于自己的本地或云端 IDE 产品。” – 原文链接

OpenSumi 当前已经在阿里内部广泛应用在很多场景,据这篇 云原生架构下蚂蚁 Cloud IDE 的应用实践 的文章显示,阿里内部的的很多研发相关的方案都有在IDE中的落地场景,比如:

云测平台集成在IDE中的手机测试环境

64fe6cce2f75301a6d348a475b57c584.gif

代码平台中直接在IDE中提交PR进行代码评审

82bc5d3b4d087025898ed4c1ce21fb36.gif

新人培训和入职测试场景

fada0de42f23b8e74fd70c3371751526.png

定制化IDE解决方案

0a74ea24d09b4aac75cee299dcf9b6a6.png

随着软件在我们日常生活中的广泛应用,软件开发不再会是一个特定的职业而会变成一种生存技能。就如同驾驶汽车的技能一样,在汽车刚刚出现的时候,驾驶汽车一度都是一项专业技能,司机也是一个专门的职业,而随着汽车逐步演变成了我们的生活交通的普遍手段,司机也从一个职业变成一种特定的生活技能。

对于软件开发工具而言,它也会从一个只有专业人员才能掌握的工具变成每个人都需要的日常工具。但是软件和汽车还有一个本质区别,就是汽车仅仅是一种交通工具、是单一行业;而软件则是各行各业都需要的基本组成部分,这个特性必将推进软件开发工具(IDE)向着专业化定制化的方向发展,需要根据不同行业的特点提供针对性的快速开发特性,以便降低软件提供者的门槛,提高交付效率和质量。这一点上,在很多的大型软件开发团队中早已有所体现,比如很多大型银行都在Eclipse的基础上定制开发了自己的开发框架和工具集,并在企业内部作为开发规范进行推广,因为这样可以帮助他们的开发人员提高工作效率,减少重复劳动,规范交付过程;再比如微软内部的DevDiv,就是专门定位于帮助微软的软件开发团队(比如:Windows, Office, XBox等)提供开发工具的专业化团队,其产品Visual Studio, Visual Studio Code 和 Azure DevOps 都是专业化IDE的业界天花板。这些案例都说明,专业的软件开发团队需要定制化的专业工具才能保证交付效率。

IDE 产品的研发一直以来都是一件门槛高、费时费力的事情,OpenSumi 通过开源 OpenSumi 帮助对 IDE 有兴趣的开发者更好地了解并掌握 IDE 研发这项技术,让更多的开发者可以以一种低门槛的方式去研发自己的 IDE 产品。OpenSumi 也从几个方面提供了很好发展路线图,比如:高度可定制的UI,完全开放的插件体系,对VSCode API适配的完整计划以及兼容VSCode Extension的特性。这些都将为定制化IDE解决方案提供必要的支撑,比如可以开发出类似下图这样的可视化开发场景。

SmartIDE专注于云原生容器化工作区的管理和调度,我们的目标就是支持各类开发者使用的IDE,OpenSumi符合SmartIDE的IDE生态定位。相信随着SmartIDE和OpenSumi的进一步成熟,会为开发者,特别是中国开发者带来更高效的云原生开发新体验!

55c485c48370ffa8006bde772cc970d7.gif

如果想了解更多有关SmartIDE的视频演示,请关注我们的B站频道:

3f06d4d2ff2daccb531b00dc31a4baec.png

感谢你对SmartIDE的关注,欢迎从SmartIDE官网下载体验我们的产品,或者加入我们的早鸟群,及时了解SmartIDE的开发进展。

在公众号后台回复关键词“SmartIDE”即可加入早鸟群~

e162839f544f4728567874f5b753c4fc.gif

玩乐高,学敏捷,【规模化敏捷联合作战沙盘之「乌托邦计划」】,2022年5月28-29日成都高新区,7月16-17日北京东城区将举办线下公开课,将“多团队敏捷协同”基因内化在研发流程中,为规模化提升研发效能保驾护航!!🏰⛴

企业组队和个人均可报名参加,一起挑战极客乌托邦efabfd148bc856664d2b366dd8df409f.png

8eacf1c3690ffa867dfbc29420b3f814.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/288335.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows之如何知道C盘目录下的大文件路径

1 准备linux的命令环境 window环境安装git,因为我们需要git bash,使用命令操作 2 用find和xargs命令 比如我们要知道C盘大于300M的文件路径和具体大小 我们打开git bash,然后cd到C盘,命令如下 find . -type f -size 300M | xargs du -h | sort -nr

js操作文件

在HTML表单中&#xff0c;可以上传文件的唯一控件就是<input type"file">。 注意&#xff1a;当一个表单中包含<input type"file">时&#xff0c;表单的enctype必须指定 为multipart/form-data,method必须指定为post&#xff0c;浏览器才能正确…

JavaScript读取本地图片到浏览器

代码: <html> <head> <script type="text/javascript"> function getFileUrl(sourceId) { var url; if (navigator.userAgent.indexOf("MSIE")>=1) { // IE url = document.getElementById(sourceId).value; } else if(navigator.…

Web程序员的Mysql进阶序二之sql多条数据插入、多条数据更新、多表同时查询

数据库在web开发的时候&#xff0c;减少连接次数可以降低数据库负载&#xff0c;所以一次连接&#xff0c;多数据操作可以有效的优化数据库。 假设表结构如下&#xff1a; create table test(name varchar(10),sex varchar(10) ); create table test1(name varchar(10),sex v…

Android封装快捷键,android打包一个没有快捷键的apk,并且通过另一个应用启动

1.有时候我们的需求是每个功能可能类似一个插件那样分开&#xff0c;需要我们分别不同开发2.首先我们如何安装apk之后不显示Lanch呢&#xff1f;android:name".app.Books.Books"android:configChanges"orientation|keyboardHidden|screenSize|smallestScreenSiz…

MVC 扩展方法特点

.NET MVC 3中扩展方法特点&#xff1a; &#xff08;1&#xff09;扩展类的名称以Extensions结尾&#xff1b; &#xff08;2&#xff09;扩展类的类型是static&#xff1b; &#xff08;3&#xff09;扩展方法至少有一个参数&#xff0c;第一个参数必须指定该方法作用于哪个类…

C# Linq源码解析之Aggregate

前言在Dotnet开发过程中&#xff0c;Aggregate作为IEnumerable的扩展方法&#xff0c;十分常用。本文对Aggregate方法的关键源码进行简要分析&#xff0c;以方便大家日后更好的使用该方法。使用Aggregate是对序列应用累加器的函数。看下面一段代码:List<string> lst new…

c语言输出中文为乱码_C语言编程出现汉字输出乱码现象

匿名用户1级2014-06-27 回答//因为不知道你具体的功能流程&#xff0c;所以我只能先就语法来提下代码的问题int cha(){//int a[N],b[N];//int i0,x,v1,v2;char a[N][M] {0};//M为字符串最大长度加1,根据要求设置int b[N] {0};int i0,x,v2;char v1[M] {0};FILE *f;if((ffopen…

剑指offer之二叉树的高度

1 问题 求二叉树的深度&#xff0c;比如下面的二叉树&#xff0c;高度是4 22 13 3 2 53 2 代码实现 int getTreeHeigh(Node *haed) {if (head NULLL){return 0;}int left getTreeHeigh(head->left);int right getTreeHeigh(head->right);retur…

Entity Framework Code First模式基础知识及入门实例01

在深入学习某项技术之前,应该努力形成对此技术的总体印象,并了解其基本原理,本文的目的就在于此。 一、理解EF数据模型 EF本质上是一个ORM框架,它需要把对象映射到底层数据库中的表,为此,它使用了三个模型来描述这种映射关系。 (1)概念模型(Conceptual Model):主要…

mycat 双主 热切换

为什么80%的码农都做不了架构师&#xff1f;>>> Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz schema.xml <?xml version"1.0"?> <!DOCTYPE mycat:schema SYSTEM "schema.dtd"> <mycat:schema xmlns:mycat"ht…

Web程序员的Mysql进阶序三之sql多表数据删除、子查询、联合查询

假设表结构如下&#xff1a; create table test(name varchar(10),sex varchar(10) ); create table test1(name varchar(10),sex varchar(10) );假设多条数据同时插入&#xff1a; insert into test (name,sex) values(xiao,nan),(xiao1,nan1),(xiao2,nan2); insert into te…

android 传感器 balance filter,Android 传感器 API.doc

Android 传感器 API1.1 序言 ? ?【Android蛋蛋网】在这一章我们主要针对Android的传感器(Sensor)进行说明。如果说Java的程序和硬件有些远的感觉&#xff0c;那么可以说传感器距离硬件很近。传感器(Sensor)听起来似乎感觉很难&#xff0c;其实它并不是很难。做起来并很有意思…

6 四大组件之Service

6-1 Servie概述 组件篇——Service 定义:  1.后台运行,不可见,没有界面  2.优先级高于Activity Service是Android系统的后台服务组件&#xff0c;适用于开发无界面、长时间运行的应用功能。 Service特点如下&#xff1a; 没有用户界面 不会轻易被Android系统终止 在系统…

WCF服务寄宿IIS时.SVC文件无法浏览的解决办法

在IIS中托管服务和经典的ASMX Web服务托管相似,需要在IIS下创建虚拟目录,并提供一个.svc文件和Web.config配置文件。另外,托管时,服务的基地址必须与.svc文件的地址相同。 一、操作步骤: (1)打开IIS,新建网站,选择物理路径 (2)打开IIS,在默认网站下添加应用程序,…

python自动生成鸡汤文_用20行Python代码生成鸡汤,打造AI咪蒙指日可待。

作者&#xff1a;Ramtin Alami“Don’t think of the overwhelming majority of the impossible.” “不要去想不可能之事” “Grew up your bliss and the world.” “努力赢得自己的幸福和世界” “what we would end create, creates the ground and you are the one to war…

他毕业两年,博客一年,时间

这是2014年10个月。时光匆匆&#xff0c;看到该公司的新鲜新的一年。有时&#xff0c;一个想法。其实&#xff0c;我在这个城市工作了两年多&#xff0c;总是觉得自己老了。从一般再聘请两名现在厂家机构和学校&#xff0c;懵懵懂懂从校园到完成社区&#xff0c;来写个总结&…

linux shell之替换目录下包含关键字所有文本里面的内容

1 问题 替换目录下包含关键字所有文本里面的内容 比如在目录 /root/chenyu/cy/下&#xff0c;把包含文本/A/B C替换成文本EF 2 解决办法 命令如下 grep -Rl /A/B\ C /root/chenyu/c* | xargs sed -i s#/A/B\ C#EF#g 我们也可以这样 grep -Rl /A/B\ C /root/chenyu/c/ | x…

C#语法糖系列 —— 第一篇:聊聊 params 参数底层玩法

首先说说为什么要写这个系列&#xff0c;大概有两点原因。这种文章阅读量确实高...对 IL 和 汇编代码 的学习巩固所以就决定写一下这个系列&#xff0c;如果大家能从中有所收获&#xff0c;那就更好啦&#xff01;一&#xff1a;params 应用层玩法 首先上一段 测试代码。class …

nginx 修改配置文件使之支持pathinfo,且隐藏index.php

声明环境&#xff1a; nginx centos6.8 使用lnmp一键包搭建环境&#xff08;2019年2月19日 &#xff09;以前使用过别的办法去修改配置文件&#xff0c;但是过于繁琐&#xff0c;最近发现新版本中&#xff0c;在nginx 的 conf目录下发现了文件“enable-php-pathinfo.conf”&am…