CN116225394A - 创建云端开发环境的方法、装置、电子设备及存储介质 - Google Patents
创建云端开发环境的方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116225394A CN116225394A CN202211104393.1A CN202211104393A CN116225394A CN 116225394 A CN116225394 A CN 116225394A CN 202211104393 A CN202211104393 A CN 202211104393A CN 116225394 A CN116225394 A CN 116225394A
- Authority
- CN
- China
- Prior art keywords
- information
- template file
- working space
- interface
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
本公开涉及一种创建云端开发环境的方法、装置、电子设备及存储介质,上述方法应用于服务端,包括:接收终端设备发起的软件开发的请求;从工作空间模板文件库中获取与上述请求适配的目标模板文件,上述工作空间模板文件库包括至少一个工作空间模板文件,上述工作空间模板文件为预配置且支持动态修改的模板文件;对上述目标模板文件进行解析和动态编译处理,得到工作空间接口配置文件;根据上述工作空间接口配置文件,创建与上述请求适配的云端软件开发环境。开发环境的创建效率高且能够同时满足多种开发需求,具有响应于目标模板文件的动态修改而实时生效更新后的云端软件开发环境的效果。
Description
技术领域
本公开涉及软件开发技术领域,尤其涉及一种创建云端开发环境的方法、装置、电子设备及存储介质。
背景技术
为了便于进行软件开发和提升软件开发效率,创建一套与待开发软件适配的开发环境至关重要。
相关技术中,在主机本地通过安装集成开发环境(IDE,Integrated DevelopmentEnvironment)对应的应用程序来配置软件开发环境,然而,由于不同的软件对硬件、操作系统以及中间件的依赖不同,导致一套IDE环境很难满足多套软件开发的需求;而且随着软件系统的复杂程度越来越高,创建适配的开发环境也变得非常困难且效率低下,影响开发进程。
发明内容
为克服相关技术中存在的问题,本公开提供一种创建云端开发环境的方法、装置、电子设备及存储介质。
根据本公开实施例的第一方面,提供一种创建云端开发环境的方法,上述方法应用于服务端,包括:接收终端设备发起的软件开发的请求;从工作空间模板文件库中获取与上述请求适配的目标模板文件,上述工作空间模板文件库包括至少一个工作空间模板文件,上述工作空间模板文件为预配置且支持动态修改的模板文件;对上述目标模板文件进行解析和动态编译处理,得到工作空间接口配置文件;根据上述工作空间接口配置文件,创建与上述请求适配的云端软件开发环境。
在一些实施例中,上述工作空间模板文件包括:元数据信息、组件信息和编辑器插件信息,上述元数据信息包括:上述工作空间模板文件的元数据信息,上述工作空间模板文件所含对象和对象关系的元数据信息;上述组件信息包括:上述对象中用于软件开发的功能模块信息;上述编辑器插件信息包括:上述对象中用于软件开发的扩展功能插件信息。对上述目标模板文件进行解析和动态编译处理,得到工作空间接口配置文件,包括:对上述目标模板文件的元数据信息、组件信息和编辑器插件信息进行解析处理,得到元数据解析信息、组件解析信息和插件解析信息;对上述元数据解析信息、上述组件解析信息和上述插件解析信息分别进行动态编译处理,得到工作空间接口配置信息;根据上述工作空间接口配置信息,生成工作空间接口配置文件。
在一些实施例中,对上述元数据解析信息、上述组件解析信息和上述插件解析信息分别进行动态编译处理,得到工作空间接口配置信息,包括:对上述元数据解析信息进行动态编译处理,得到工作空间模板接口元数据信息和工作空间接口元数据信息;对上述组件解析信息进行动态编译处理,得到工作空间模板接口组件信息和工作空间接口组件信息;对上述插件解析信息进行动态编译处理,得到工作空间模板接口插件信息和工作空间接口插件信息;上述工作空间接口配置信息包括上述工作空间模板接口元数据信息、上述工作空间接口元数据信息、上述工作空间模板接口组件信息、上述工作空间接口组件信息、上述工作空间模板接口插件信息和上述工作空间接口插件信息。
在一些实施例中,上述方法还包括:获取编辑操作指令,上述编辑操作指令是上述终端设备在模板文件的图形化编辑界面接收到的指令;上述图形化编辑界面是由对象描述模型执行自动代码生成功能得到的可视化界面,上述对象描述模型包括用于编写工作空间模板的对象元信息;根据上述编辑操作指令,生成或更新工作空间模板配置信息;根据上述工作空间模板配置信息,生成工作空间模板文件。
在一些实施例中,上述请求携带有待开发软件的开发环境描述信息;上述工作空间模板文件库中的工作空间模板文件绑定有适配的软件开发环境描述信息。其中,上述从工作空间模板文件库中获取与上述请求适配的目标模板文件,包括:根据上述请求携带的描述信息,从上述工作空间模板文件绑定的软件描述信息中筛选与上述描述信息匹配的目标软件描述信息;响应于筛选到上述目标软件描述信息,确定上述目标软件描述信息对应的工作空间模板文件为与上述请求适配的目标模板文件;从上述工作空间目标文件库中获取上述目标模板文件。
在一些实施例中,上述方法还包括:响应于筛选不到上述目标软件描述信息,向上述终端设备发送跳转至模板文件的图形化编辑界面的指令;获取上述图形化编辑界面的界面编辑操作指令;根据上述界面编辑操作指令,生成新建工作空间模板配置信息;根据上述新建工作空间模板配置信息,生成新建工作空间模板文件并存储至上述工作空间模板文件库。
在一些实施例中,上述新建工作空间模板文件作为上述目标模板文件或者作为候选目标模板文件;在上述新建空间模板文件作为上述候选目标模板文件的情况下,对上述候选目标模板文件进行解析和动态编译处理,得到候选工作空间接口配置文件;根据上述候选工作空间接口配置文件,创建候选云端软件开发环境,上述候选云端软件开发环境作为用于在上述终端设备展示的针对上述请求的一种开发环境选项。
在一些实施例中,上述方法还包括:获取针对上述候选目标模板文件进行更新的更新指令,上述更新指令为上述终端设备在上述图形化编辑界面接收到的指令;上述更新指令包括以下指令的至少一种:对上述候选目标模板文件所包含的对象进行添加的指令、对上述候选目标模板文件所包含的对象进行删除的指令、对上述候选目标模板文件所包含对象之间的对象关系进行修改的指令、对上述对象的元数据信息进行修改的指令、对上述对象关系的元数据信息进行修改的指令;上述对象包括以下至少一种:组件、编辑器插件;根据上述更新指令,对上述新建工作空间模板配置信息的元数据信息、组件信息或编辑器插件信息中的至少一种进行更新;根据更新后的新建工作空间模板配置信息,生成上述目标模板文件。
根据本公开实施例的第二方面,提供一种创建云端开发环境的装置,包括请求接收模块、模板文件获取模块、动态编译模块和开发环境创建模块。上述请求接收模块用于接收终端设备发起的软件开发的请求。上述模板文件获取模块用于从工作空间模板文件库中获取与上述请求适配的目标模板文件,上述工作空间模板文件库包括至少一个工作空间模板文件,上述工作空间模板文件为预配置且支持动态修改的模板文件。上述动态编译模块用于对上述目标模板文件进行解析和动态编译处理,得到工作空间接口配置文件。上述开发环境创建模块用于根据上述工作空间接口配置文件,创建与上述请求适配的云端软件开发环境。
根据本公开实施例的第三方面,提供一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;上述处理器,用于从上述存储器中读取上述可执行指令,并执行上述可执行指令以实现本公开第一方面所提供的创建云端开发环境的方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序指令,该计算机程序指令被处理器执行时实现本公开第一方面所提供的创建云端开发环境的方法。
本公开的实施例提供的技术方案可以包括以下有益效果:
由于工作空间模板文件为预配置且支持动态修改的模板文件,通过获取目标模板文件,对目标模板文件进行解析和动态编译处理,能够根据请求实现一键自动创建对应的云端软件开发环境的效果,适配于多种软件开发请求并能适配性生成对应的云端工作空间,开发环境的创建效率高且能够同时满足多种开发需求,支持对工作空间模板文件的动态修改,并对应支持对动态修改后的目标模板文件进行解析和动态编译处理,具有响应于目标模板文件的动态修改而实时生效更新后的云端软件开发环境的效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的创建云端开发环境的方法的系统架构图。
图2是根据一示例性实施例示出的创建云端开发环境的方法的流程图。
图3是根据一示例性实施例示出的创建云端开发环境的方法的实施过程示意图。
图4是根据一示例性实施例示出的工作空间模板文件的内容结构示意图。
图5是根据另一示例性实施例示出的创建云端开发环境的方法的流程图。
图6是根据一示例性实施例示出的步骤S220的详细实施流程图。
图7是根据又一示例性实施例示出的创建云端开发环境的方法的流程图。
图8是根据一示例性实施例示出的步骤S230的详细实施流程图。
图9是根据一示例性实施例示出的创建云端开发环境的装置的框图。
图10是根据一示例性实施例示出的电子设备的框图。
具体实施方式
下面将结合附图详细地对示例性实施例进行描述说明。
应当指出,相关实施例及附图仅为描述说明本公开所提供的示例性实施例,而非本公开的全部实施例,也不应理解本公开受相关示例性实施例的限制。
应当指出,本公开中所用术语“第一”、“第二”等仅用于区别不同步骤、设备或模块等。相关术语既不代表任何特定技术含义,也不表示它们之间的顺序或者相互依存关系。
应当指出,本公开中所用术语“一个”、“多个”、“至少一个”的修饰是示意性而非限制性的。除非在上下文另有明确指出,否则应该理解为“一个或多个”。
应当指出,本公开中所用术语“和/或”,用于描述关联对象之间的关联关系,一般表示至少存在三种关联关系。例如,A和/或B,至少可以表示:单独存在A,同时存在A和B,单独存在B这三种关联关系。
应当指出,本公开的方法实施例中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。除非特别说明,本公开的范围不受相关实施例中步骤的描述顺序限制。
需要说明的是,本公开中所有获取信号、信息或数据的动作都是在遵照所在地国家相应的数据保护法规政策的前提下,并获得由相应装置所有者给予授权的情况下进行的。
技术用语说明
集成开发环境(IDE):为开发人员提供的包括源代码编辑、代码提示、编译器、调试器等具备提高开发人员效率的集成环境。
云端:是指支持资源弹性调配的服务端;例如可以是分布式服务集群或者分布式服务集群中的节点,资源可以是从大量经过整合虚拟化的物理服务器中调度获取的。
云端开发:开发工程师摆脱本地电脑限制,通过浏览器在云端进行软件开发。
云端工作空间:开发人员在云端的工作环境,主要提供包括云端代码编写、编译、运行调试等云端的开发环境。
容器:指软件开发技术中用于将软件与硬件平台进行隔离的标准软件包。容器也可以理解为是轻量级虚拟机。
K8s:全称为Kubernetes,是谷歌推出的一种容器编排器,用于管理云平台中多个主机上的容器化的应用,即,在云端进行容器编排。
EMF:全称为Eclipse Modeling Framework,是Eclipse社区提供的建模框架,提供元模型驱动的系统建模技术,包括模型的搭建、自动代码生成、模型校验等功能。
由于不同的软件对硬件、操作系统以及中间件的依赖不同,导致一套IDE环境很难满足多套软件开发的需求;而且随着软件系统的复杂程度越来越高,创建适配的开发环境也变得非常困难且效率低下。
例如,以车辆软件的开发为例,软件开发涉及到整车架构、车辆工作原理、硬件电路、车联网通信等相关领域的知识储备和相关经验,开发环境的搭建也对应变得非常复杂,而且不同车辆软件所需的开发环境各有差异,导致无法快速且高效地搭建适配于不同软件开发需求的开发环境。
随着分布式服务的发展,为数据处理、存储、软件开发等提供了更有优势的选择。期望在云端能够搭建与不同待开发软件需求适配的开发环境,利用云端资源灵活配置的优势,以克服本地部署一套开发环境只能适配于某一个或某一类软件的弊端。
目前的基于容器创建开发环境的方式,不能满足云端开发的需求,尤其不能解决云端多个工作空间同时工作的技术问题,有些云端创建开发环境的方案具有创建效率低且在开发过程中无法更新云端工作空间的技术问题。
有鉴于此,本公开的实施例提供了一种创建云端开发环境的方法、装置、电子设备及存储介质,该方法能够根据软件开发的请求实现一键自动创建对应的云端软件开发环境的效果,适配于多种软件开发请求并能适配性生成对应的云端工作空间,开发环境的创建效率高且能够同时满足多种开发需求;支持在软件开发过程中更新工作空间模板文件,具有响应于目标模板文件的动态修改而实时生效更新后的云端软件开发环境的效果,能够提升软件开发环境的更新效率和配置的灵活性。
图1是根据一示例性实施例示出的创建云端开发环境的方法的系统架构图。
参照图1所示,适用于本公开的创建云端开发环境的方法的系统架构100包括:终端设备110、网络120和服务端130。
终端设备110为具有显示屏的电子设备,可以安装有浏览器或者在线软件开发类应用,使得用户利用浏览器或在线软件开发类应用进行云端软件开发。例如终端设备110包括但不限于是:台式计算机、笔记本电脑、智能手机、平板电脑等。
针对不同用户具有不同的开发需求或者同一个用户具有多种开发需求的场景,在图1中以用户101具有开发第一应用APP1的第一软件开发需求,用户102具有开发第二应用APP2的第二软件开发需求作为示例,其他场景可以参照理解。上述软件开发需求可以涉及各个领域的软件开发,例如可以是汽车领域的软件开发需求,包括:自动驾驶功能应用开发、车辆视觉功能应用开发、车载导航应用开发等。
服务端130用于为该浏览器或在线软件开发类应用提供软件开发相关的服务支持,例如为云服务器。在一些实施例中,服务端130可以包括:支持资源弹性调配的服务端;例如可以是分布式服务集群或者分布式服务集群中的节点,资源可以是从大量经过整合虚拟化的物理服务器中调度获取的。例如,服务端130可以是k8s服务集群。
网络120是在终端设备110和服务端130之间提供通信链路的介质。网络120可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
在一实施场景中,用户基于终端设备110上的浏览器或者在线软件开发类应用进行云端开发账号的登录,在登录状态下能够通过网络120与服务端130进行通信,以调用服务端130提供的软件开发服务。
通过服务端130执行本公开实施例提供的创建云端开发环境的方法,生成云端软件开发环境。从而在终端设备110上为用户呈现软件开发所需的云端工作空间,诸如:操作系统(例如为Linux、Windows、Mac、Chrome OS等操作系统)、预设语言(例如Python、Java、JavaScript、C、C++、C#、PHP、JSP等编程语言)的开发工具、编译器组件、调试器组件和编辑器插件等,编辑器插件例如为文本错误纠正插件、语法校验插件等。
应该理解,图1中的终端设备、网络和服务端的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务端。下面结合具体实施例来对本公开提供的创建云端开发环境的方法进行介绍。
示例性方法
图2是根据一示例性实施例示出的一种创建云端开发环境的方法的流程图。参照图2所示,在一些实施例中,创建云端开发环境的方法包括以下步骤:S210、S220、S230和S240。上述方法可以由图1示意的系统架构100中的服务端130来执行。
在步骤S210,接收终端设备发起的软件开发的请求。
参照图1所示,在一示例性实施场景中,用户101通过终端设备的浏览器或在线软件开发类应用进行云端账号登录,并通过点击新建开发项目P1的功能按钮或登录界面而向服务端发起开发第一应用APP1的第一请求,开发项目P1用于进行第一应用APP1的软件开发。
类似的,用户102也可以通过终端设备的浏览器或在线软件开发类应用进行云端账号登录,并通过点击新建开发项目P2的功能按钮或登录界面而向服务端发起开发第二应用APP2的第二请求。例如开发项目P1是开发自动驾驶功能应用(第一应用APP1的一种示例)的项目,开发项目P2是开发车载导航应用(第二应用APP2的一种示例)的项目。
上述用户101、用户102可以是软件工程师或者其他软件开发相关人员。在实际场景中,可以是一个用户具有开发多种软件的需求,或者不同的用户具有开发不同软件的需求,或者多个用户共同开发一个软件的需求等。
相应的,服务端接收到终端设备发起的软件开发的请求,该软件开发的请求可以是一个请求或并发式的多个请求。
在步骤S220,从工作空间模板文件库中获取与上述请求适配的目标模板文件,上述工作空间模板文件库包括至少一个工作空间模板文件,上述工作空间模板文件为预配置且支持动态修改的模板文件。
服务端能够访问的数据库中具有工作空间模板文件库,该工作空间模板文件库中包括至少一个工作空间模板文件。该数据库可以是服务端自带的数据库或者服务端能够远程访问的数据库。工作空间模板文件是符合预设系统规范格式的模板文件,包含用于创建工作空间的信息。例如为符合devfile规范格式(在Linux系统中,任何装置与接口设备都是以文件的型态存在于/dev目录当中,因此需要符合devfile的规范格式,或描述为devfile标准)的模板文件。
从工作空间模板文件库中获取到与请求适配的工作空间模板文件为目标模板文件,例如针对开发自动驾驶功能应用的第一请求,与该第一请求适配的目标模板文件为目标模板文件M1;针对开发车载导航应用的第二请求,与该第二请求适配的目标模板文件为目标模板文件M2。
在本公开的实施例中,工作空间模板文件库中的工作空间模板文件是由用户预先配置的,这一预先配置的预先体现在生成对应的云端软件开发环境之前,可以是以下时机的一种或多种:在用户通过终端设备发起软件开发的请求之前进行配置;发起软件开发的请求之后尚未创建出对应的云端软件开发环境之间的时机进行配置。
例如,在一些实施场景中,用户101在新建开发项目P1之前,可以预先配置开发第一应用APP1所需的个性化的工作空间模板文件,并将配置完成的工作空间模板保存到服务端的工作空间模板文件库中,在新建开发项目P1之后,从工作空间模板文件库中进行所需的个性化的工作空间模板文件的调用即可。在另一些实施场景中,用户101并未配置自己所需的工作空间模板文件,同类型的工作空间模板文件已经由用户102预先进行配置,那么在用户101新建开发项目P1之后,从工作空间模板文件库中可以筛选到开发第一应用APP1所需的个性化的工作空间模板文件,对该个性化的工作空间模板文件进行调用即可。在又一些实施场景中,用户101在新建开发项目P1之后,如果工作空间模板文件库中包含的工作空间模板文件与开发项目P1并不适配,此时用户101可以在线编辑配置得到自己所需的工作空间模板,这一在线编辑配置的过程也作为生成对应的云端软件开发环境的预先配置。
上述工作空间模板文件是支持动态修改的模板文件,这一动态修改体现在以下各个环节:(1)工作空间模板文件在预配置的过程中能够支持用户进行修改;(2)工作空间模板文件在预配置完成存储于工作空间模板库之后能够支持用户进行修改;(3)工作空间模板文件作为与请求适配的目标模板文件来创建云端软件开发环境后,在用户基于该云端软件开发环境进行软件开发的过程中,支持用户对该工作空间模板文件进行修改。
在步骤S230,对上述目标模板文件进行解析和动态编译处理,得到工作空间接口配置文件。
例如,针对上述第一请求,对上述目标模板文件M1进行解析,然后对解析后的结果进行动态编译处理,得到工作空间接口配置文件JM1;针对上述第二请求,对上述目标模板文件M2进行解析,然后对解析后的结果进行动态编译处理,得到工作空间接口配置文件JM2。
上述工作空间接口配置文件为包含符合接口规范的工作空间的各项信息的文件,该接口规范使得服务端能够识别上述各项信息。
通过对目标模板文件进行解析和动态编译处理,将预设系统规范格式的目标模板文件转换为符合服务端接口规范的工作空间接口配置文件。
动态编译处理体现在:针对目标模板文件的动态修改,会针对修改后的目标模板文件进行实时响应;例如,以上述动态修改的示例环节(3)为例,当某个工作空间模板文件M作为与请求适配的目标模板文件,根据该目标模板文件创建云端软件开发环境后,在用户基于该云端软件开发环境进行软件开发的过程中,例如进行代码编写或代码调试的过程中,支持用户对该工作空间模板文件M进行修改,当用户对工作空间模板文件M进行修改后,得到修改后的工作空间模板文件M’,则基于动态编译处理,能够得到工作空间模板文件M’对应的工作空间接口配置文件。即,基于动态编译处理,能够对实时修改的目标模板文件进行解析和实时地编译处理,得到更新后的目标模板文件对应的工作空间接口配置文件,并对应生成更新后的云端软件开发环境,具有响应于目标模板文件的动态修改而实时生效更新后的云端软件开发环境的效果。
在步骤S240,根据上述工作空间接口配置文件,创建与上述请求适配的云端软件开发环境。
服务端根据工作空间接口配置文件JM1创建得到与第一请求适配的云端软件开发环境SDE1,根据工作空间接口配置文件JM2创建得到与第二请求适配的云端软件开发环境SDE2。
根据本公开实施例提供的方法,在云端软件开发环境创建后,如果用户对该云端软件开发环境有更新的需求,只需要通过对工作空间模板文件进行更新,由于编译处理过程是动态执行的,在工作空间模板文件更新后,云端软件开发环境动态进行更新,实际场景下,在用户基于云端软件开发环境进行软件开发的过程中可以修改模板。
图3是根据一示例性实施例示出的创建云端开发环境的方法的实施过程示意图。
本公开的实施例中,用户可以在终端设备上工作空间模板文件为预配置且支持动态修改,包括:在云端软件开发环境创建完成后用户在该云端软件开发环境中进行软件开发的过程中,支持对工作空间模板的修改,且该修改会根据动态编译处理过程实时生效产生对应更新后的云端软件开发环境。
延续前面关于动态修改的各个环节的描述,这里参照图3来进行一种示例性的动态修改过程的详细说明。参照图3中实线单箭头所示,本公开的实施例中,通过执行步骤S210~S240,生成与请求对应的云端开发环境,在终端设备110上为用户呈现软件开发所需的云端工作空间,包括:操作系统(例如为Linux操作系统)、预设语言(例如Python编程语言)的开发工具、编译器组件、调试器组件和编辑器插件等,编辑器插件例如包括语法校验插件。
参照图3中实线双箭头所示,在云端开发环境创建好的情况下,用户可以利用终端设备呈现的云端工作空间的开发工具中进行代码编辑,即进入软件开发过程,在该软件开发过程中存在一些需要对云端开发环境进行更新的场景,例如,用户看到当前呈现的云端工作空间仍然欠缺某些组件或编辑器插件,或者需要对部分组件的属性信息进行修改等,基于本公开实施例提供的方法能够支持工作空间模板文件的动态修改和对应的云端开发环境会即时生效。例如,参照图3中虚线箭头所示,在软件开发过程中,支持用户对工作空间模板库中的工作空间模板进行修改,相应的,由于工作空间模板库中的工作空间模板由用户根据需要进行更新,在步骤S220中获取到的目标模板文件为更新后的模板文件,在步骤S230中对更新后的目标模板文件进行解析和动态编译处理,得到更新后的目标模板文件对应的工作空间接口配置文件,相应的,在步骤S240中生成的云端开发环境为更新后的云端开发环境。
在包含上述步骤S210~S240的实施例中,由于工作空间模板文件为预配置且支持动态修改的模板文件,通过获取目标模板文件,对目标模板文件进行解析和动态编译处理,得到工作空间接口配置文件;根据上述工作空间接口配置文件,创建与上述请求适配的云端软件开发环境,能够根据请求实现一键自动创建对应的云端软件开发环境的效果,适配于多种软件开发请求并能适配性生成对应的云端工作空间,开发环境的创建效率高且能够同时满足多种开发需求,支持对工作空间模板文件的动态修改,并对应支持对动态修改后的目标模板文件进行解析和动态编译处理,具有响应于目标模板文件的动态修改而实时生效更新后的云端软件开发环境的效果,能够提升软件开发环境的更新效率和配置的灵活性。
图4是根据一示例性实施例示出的工作空间模板文件的内容结构示意图。
在一些实施例中,参照图4所示,工作空间模板文件400包括:元数据信息401、组件信息402和编辑器插件信息403。上述元数据信息401包括:上述工作空间模板文件(后续可以简称为模板文件)的元数据信息,上述工作空间模板文件所含对象和对象关系的元数据信息;上述组件信息402包括:上述对象中用于软件开发的功能模块信息;上述编辑器插件信息403包括:上述对象中用于软件开发的扩展功能插件信息。
例如,上述元数据信息包括但不限于是:模板文件的元数据信息,诸如:模板标识、模板版本号、模板类型、模板存储位置等;各个对象的元数据信息、对象关系的元数据信息;功能模块的元数据信息,诸如:创建软件项目的功能按钮(工具栏、菜单、新建对话框)的显示属性、创建软件项目所需的文件(例如操作系统的镜像文件、开发语言包等)的名称、地址信息等。
上述组件信息包括但不限于是以下功能模块信息:创建软件开发项目的功能菜单、代码编辑框、信息下拉选择框、编译功能模块、调试功能模块等。
上述编辑器插件信息包括但不限于是以下扩展功能插件信息:文本错误纠正插件、语法校验插件等。
上述对象包括但不限于是以下至少一种:组件、编辑器插件等;上述对象关系包括但不限于是:树状节点对应的各个对象之间的布局关系、对象内容上的从属关系等。例如,对象关系包括:创建软件开发项目的功能菜单和代码编辑框的布局关系,信息下拉选择框和代码编辑框的布局关系以及内容引出关系,例如内容引出关系为当信息下拉选择框中被用户选中某个目标信息后,该目标信息出现在代码编辑框中,语法校验插件和编译功能模块的从属关系等。
在研发中还发现:云端工作空间由配置文件生成,配置文件编写本身难度较高,还容易在编写过程中产生各种问题,等到注册后编译生成的工作空间可能与需求预期的情况不符,再进行更新时查找问题困难、更新流程繁琐且效率低下。
对于云端开发环境工作空间模板的编写,通用的方式是提供yaml格式(是一种可读性高、用来表达数据序列化的格式)或者json格式(是一种轻量级的数据交换格式)的文件。yaml文件和json文件的编写即便在具备schema(schema是元数据的一个抽象集合,包含一套元数据(schema component):主要是元素与属性的声明、复杂与简单数据类型的定义)约束的情况下,仍然非常复杂。
有鉴于此,本公开的实施例还对生成工作空间模板文件的过程进行改进,以图形化编辑界面的形式根据用户编辑操作指令来生成对应的工作空间模板文件,降低模板文件的编写难度以及提升模板配置过程的灵活性,有助于提升创建或更新云端开发环境的效率。
图5是根据另一示例性实施例示出的创建云端开发环境的方法的流程图。
参照图5所示,在一些实施例中,创建云端开发环境的方法除了包括上述步骤S210~S240之外,还包括生成工作空间模板文件的步骤,具体包括以下步骤:S510、S520和S530。本实施例提供的方法由服务端执行。
在一些实施例中,执行步骤S510~S530生成的工作空间模板文件存储于工作空间模板文件库中,该步骤S510~S530可以是在步骤S210或S220之前执行,作为工作空间模板文件库预先存储的工作空间模板文件。
在步骤S510,获取编辑操作指令,上述编辑操作指令是上述终端设备在模板文件的图形化编辑界面接收到的指令;上述图形化编辑界面是由对象描述模型执行自动代码生成功能得到的可视化界面,上述对象描述模型包括用于编写工作空间模板的对象元信息。
模板文件的图形化编辑界面是在终端设备上呈现的,通过服务端和终端设备的网络通信,可以获取上述终端设备在图形化界面接收到的编辑操作指令。
该图形化编辑界面以树状结构呈现对象元信息,树状结构中的各个节点表征对象,节点的属性信息为对象的元信息,节点和节点之间的节点连线表征对象和对象之间的对象关系,节点连线的属性信息为对象关系的元信息。对象包括组件和编辑器插件。
在一实施例中,上述对象描述模型可以通过对符合预设系统规范格式(例如为符合devfile标准)的标准元文件(例如为schema文件)进行解析得到。将符合devfile标准的schema文件描述为devfileschema标准元文件,对devfileschema标准元文件进行解析,得到EMF模型(EMF提供元模型驱动的系统建模技术,包括模型的搭建、自动代码生成、模型校验等功能,EMF模型作为对象描述模型的一种示例)。这里的解析是对格式进行正确性校验,在符合标准格式的情况下校验通过。
本公开实施例提供的方法中,利用标准元文件(例如为devfile Schema)解析后的EMF模型(对象描述模型的一种示例)生成可视化的图形化编辑界面,由于基于devfileSchema和EMF模型自动化生成的是标准化的初始图形界面,该图形界面里面是符合devfile标准的内容,例如是一些默认设置的组件和编辑器插件以及默认的布局信息和样式信息等。用户在初始图形界面可以进行所需组件、编辑器插件、布局、样式等的调整,然后得到自己所需的个性化的模板文件;也可以不调整直接采用图形界面上所有的默认配置,如果选择默认设置,那就配置得到标准的模板文件。
用户在该图形化编辑界面中可以通过拖拽节点(例如将所需的节点拖拽至树状结构中,或者更改树状结构中的已有节点等)、修改节点的属性信息、修改节点之间的布局方式等编辑方式来配置模板信息,从而得到所需的工作空间模板文件。即,用户配置开发环境的需求这一过程是在终端设备的图形化编辑界面通过编辑操作指令(例如可以是在已经生成的图形化界面对树状节点进行拖拽、通过编辑节点属性等)来实现自己所需要的开发环境的组件和/或编辑器插件的配置。
这种利用图形化编辑界面生成工作空间模板的方式能够有效降低模板文件的编写难度以及提升模板配置过程的灵活性,有助于提升创建或更新云端开发环境的效率。
在步骤S520,根据上述编辑操作指令,生成或更新工作空间模板配置信息。
所述编辑操作指令包括以下中的一种或多种:用于创建新的工作空间模板文件的第一编辑操作指令,用于更新已有的工作空间模板文件的第二编辑操作指令。在一些实施例中,根据第一编辑操作指令,生成工作空间模板配置信息。在一些实施例中,根据第二编辑操作指令,更新工作空间模板配置信息。
在步骤S530,根据上述工作空间模板配置信息,生成工作空间模板文件。
基于上述步骤S510~S530,通过获取图形化编辑界面的编辑操作指令,能够根据用户的编辑操作指令来生成对应的工作空间模板文件,这种方式有助于降低模板文件的编写难度以及提升模板配置过程的灵活性,提升创建或更新云端开发环境的效率。
图6是根据一示例性实施例示出的步骤S220的详细实施流程图。
在一些实施例中,上述请求携带有待开发软件的开发环境描述信息;上述工作空间模板文件库中的工作空间模板文件绑定有适配的软件开发环境描述信息。
上述开发环境描述信息包括但不限于是以下中的一种或多种:软件标识、软件类型、软件所要实现功能等。例如,第一请求中携带的描述信息为:自动驾驶(以软件所要实现功能为例);第二请求中携带的描述信息为:车载导航(以软件所要实现功能为例)。
参照图6中实线框所示,上述步骤S220中,从工作空间模板文件库中获取与上述请求适配的目标模板文件,包括以下步骤:S610、S620a和S630a。
在步骤S610,根据上述请求携带的开发环境描述信息,从上述工作空间模板文件绑定的软件开发环境描述信息中筛选与上述开发环境描述信息匹配的目标软件描述信息。
在步骤S620a,响应于筛选到上述目标软件描述信息,确定上述目标软件描述信息对应的工作空间模板文件为与上述请求适配的目标模板文件;
在步骤S630a,从上述工作空间目标文件库中获取上述目标模板文件。
基于上述步骤S610、S620a和S630a,能够根据工作空间模板文件绑定的软件开发环境描述信息来筛选与请求携带的开发环境描述信息匹配的目标软件描述信息,在能够筛选得到目标软件描述信息的情况下,说明工作空间模板文件库中与请求适配的目标模板文件存在,将目标软件描述信息绑定的工作空间模板文件作为目标模板文件进行获取即可。
在目标软件描述信息对应的工作空间模板文件为多个的情况下,一种实施例是将多个工作空间模板文件均作为目标模板文件的选项供用户进行选择。
在另一些实施例中,参照图6所示,上述步骤S220包括:S610、S620b、S630b、S640b和S650b。
在又一些实施例中,参照图6中虚线框所示,上述步骤S220除了包括上述步骤S610、S620a和S630a之外,还包括以下步骤:S620b、S630b、S640b和S650b。
在步骤S620b,响应于筛选不到上述目标软件描述信息,向上述终端设备发送跳转至模板文件的图形化编辑界面的指令。
在一些实施例中,响应于筛选不到上述目标软件描述信息,还可以向终端设备发送不存在目标模板文件的提示信息,同时向上述终端设备发送跳转至模板文件的图形化编辑界面的指令。在终端设备上,跳转至模板文件的图形化编辑界面的同时还显示不存在目标模板文件的提示信息,此时提示用户在该跳转出来的图形化编辑界面可以新建所需的模板文件。
在步骤S630b,获取上述图形化编辑界面的界面编辑操作指令。
上述界面编辑操作指令包括以下指令的至少一种:对图形化编辑界面(例如为上述标准化的初始图形界面)中所包含的对象进行添加或删除,对上述图形化编辑界面中所包含对象之间的对象关系进行修改,对上述对象或上述对象关系的元数据进行修改;上述对象包括以下的一种或多种:组件、编辑器插件。
本实施例中,为了区别描述不同的配置阶段,将本实施例中跳转后的图形化编辑界面上接收到的编辑操作指令描述为界面编辑操作指令,图形化编辑界面接收到的界面编辑操作指令和前述步骤S510中的编辑操作指令本质上一样的,只是前述步骤S510中是在步骤S210或S220之前发生的,而在步骤S630b是在步骤S220执行过程中发生的。
在步骤S640b,根据上述界面编辑操作指令,生成新建工作空间模板配置信息。
为了与前述实施例描述的步骤S520中的工作空间模板配置信息进行区别描述,将本实施例中根据跳转后的界面生成的工作空间模板配置信息描述为新建工作空间模板配置信息。本实施例与前述包括包含前述步骤S510~S530的实施例的执行阶段具有差异,本质上相似;包含前述步骤S510~S530的实施例中,是在接收软件开发的请求对应的步骤S210之前或者步骤S220之前执行;本实施例的步骤S630b、S640b和S650b是在步骤S220的执行过程中实施。
在步骤S650b,根据上述新建工作空间模板配置信息,生成新建工作空间模板文件并存储至上述工作空间模板文件库。
包含上述步骤S620b、S630b、S640b和S650b的实施例中,在接收到软件开发的请求而创建云端软件开发环境的过程中,在筛选不到上述目标软件描述信息的情况下,说明工作空间模板文件库中与请求适配的目标模板文件不存在,此时通过服务端向终端设备发送跳转至模板文件的图形化编辑界面的指令,使得终端设备跳转至模板文件的图形化编辑界面,用户可以在该图形化编辑界面输入编辑操作指令(输入方式可以是拖拽节点、编辑节点属性信息等),通过获取图形化编辑界面的界面编辑操作指令,生成新建工作空间模板配置信息,根据新建工作空间模板信息生成新建工作空间模板文件并存储至上述工作空间模板文件库。
在一些实施例中,上述新建工作空间模板文件直接作为上述目标模板文件;在上述新建空间模板文件作为上述目标模板文件的情况下,执行前面描述的步骤S230和S240。
图7是根据又一示例性实施例示出的创建云端开发环境的方法的流程图。
在一些实施例中,上述新建工作空间模板文件作为候选目标模板文件。参照图7所示,在上述新建空间模板文件作为上述候选目标模板文件的情况下,执行以下步骤:S710和S720。
在步骤S710,对上述候选目标模板文件进行解析和动态编译处理,得到候选工作空间接口配置文件。
在步骤S720,根据上述候选工作空间接口配置文件,创建候选云端软件开发环境,上述候选云端软件开发环境作为用于在上述终端设备展示的针对上述请求的一种开发环境选项。
该实施例中,候选目标模板文件相较于目标模板文件而言是一个中间状态的模板文件,在用户不需要修改的情况下,候选目标模板文件成为目标模板文件。一般而言,在创建软件开发环境的过程中研发工程师很难一次性就搭建出自己所满意的模板文件,包含上述步骤S620b、S630b、S640b和S650b的实施例中是在软件开发请求执行的过程中实施的步骤,因此需要保证请求响应的及时性,利用新建空间模板文件作为候选目标模板文件得到针对上述请求的一种开发环境选项:候选云端软件开发环境。
在一些实施例中,用户还需要根据终端设备呈现的云端工作空间的效果来对候选目标模板文件进一步修改;这种场景下,创建云端开发环境的方法除了包括上述步骤S210、{S610、S620b、S630b、S640b和S650b(对应为S220的一种实施例)}、S710和S720之外,还包括虚线框所示意的步骤S730、S740、S750,之后针对步骤S750得到的更新后的目标模板文件,执行步骤S230和S240,参照图7所示,为了简化示意,仅示意了步骤S710~S750。
在步骤S730,获取针对上述候选目标模板文件进行更新的更新指令,上述更新指令为上述终端设备在上述图形化编辑界面接收到的指令。
上述更新指令包括以下指令的至少一种:对上述候选目标模板文件所包含的对象进行添加的指令、对上述候选目标模板文件所包含的对象进行删除的指令、对上述候选目标模板文件所包含对象之间的对象关系进行修改的指令、对上述对象的元数据信息进行修改的指令、对上述对象关系的元数据信息进行修改的指令;上述对象包括以下至少一种:组件、编辑器插件。
在步骤S740,根据上述更新指令,对上述新建工作空间模板配置信息的元数据信息、组件信息或编辑器插件信息中的至少一种进行更新。
在步骤S750,根据更新后的新建工作空间模板配置信息,生成上述目标模板文件。
该步骤S730~S750可以发生在软件开发的过程中,软件开发的过程可以参照前述关于图3示意的实施例的描述。
在包含上述步骤S710~S750的实施例中,能够在软件开发的过程中,针对在软件开发环境创建的过程中实时配置(非预先设置好,区别于前述包含步骤S510~S530的实施例)的新建工作空间模板进行修改,能够提升创建和更新云端开发环境的效率,以及提升软件开发工作空间的配置阶段和配置流程的灵活性。
图8是根据一示例性实施例示出的步骤S230的详细实施流程图。
在一些实施例中,上述工作空间模板文件包括:元数据信息、组件信息和编辑器插件信息。
参照图8所示,上述步骤S230中,对上述目标模板文件进行解析和动态编译处理,得到工作空间接口配置文件,包括以下步骤:S810、S820和S830。
在步骤S810,对上述目标模板文件的元数据信息、组件信息和编辑器插件信息进行解析处理,得到元数据解析信息、组件解析信息和插件解析信息。
该步骤S810中的解析处理是指针对目标模板文件的内容进行解析处理。
在步骤S820,对上述元数据解析信息、上述组件解析信息和上述插件解析信息分别进行动态编译处理,得到工作空间接口配置信息。
在一些实施例中,对上述元数据解析信息、上述组件解析信息和上述插件解析信息分别进行动态编译处理,得到工作空间接口配置信息,包括:对上述元数据解析信息进行动态编译处理,得到工作空间模板接口元数据信息和工作空间接口元数据信息;对上述组件解析信息进行动态编译处理,得到工作空间模板接口组件信息和工作空间接口组件信息;对上述插件解析信息进行动态编译处理,得到工作空间模板接口插件信息和工作空间接口插件信息;上述工作空间接口配置信息包括上述工作空间模板接口元数据信息、上述工作空间接口元数据信息、上述工作空间模板接口组件信息、上述工作空间接口组件信息、上述工作空间模板接口插件信息和上述工作空间接口插件信息。
工作空间模板接口元数据信息、工作空间模板接口组件信息和工作空间模板接口插件信息中描述的各项信息均为符合服务端接口规范的工作空间模板的各项信息(包括元数据、组件和编辑器插件);工作空间接口元数据信息、工作空间接口组件信息和工作空间接口插件信息中描述的各项信息(包括元数据、组件和编辑器插件)均为符合接口规范的工作空间的各项信息,使得服务端能够识别上述各项信息。
符合服务端接口规范的工作空间模板的各项信息是从模板维度进行信息描述,包括:模板属性信息(模板元数据),以及布局信息、样式信息等模板信息;符合服务端接口规范的工作空间的各项信息是从内容维度进行信息描述,包括云端开发环境所包含的元数据信息、对象信息(包括组件和编辑器插件等)、对象关系信息等。
在步骤S830,根据上述工作空间接口配置信息,生成工作空间接口配置文件。
基于上述步骤S810~S830,将目标模板文件的动态编译分为三个阶段:元数据编译、组件编译和编辑器插件编译,这三个阶段分别将元数据、组件和编辑器插件从预设系统规范格式(例如为符合devfile标准的格式)转换为工作空间模板的接口格式和工作空间的接口格式,通过对目标模板文件执行动态编译,实现动态生成工作空间接口配置文件的能力,从而实现用户动态修改工作空间模板文件来对云端软件开发环境(也可以描述为云端工作空间)进行变更。
示例性装置
图9是根据一示例性实施例示出的创建云端开发环境的装置的框图。参照图9所示,本公开实施例提供的创建云端开发环境的装置900,包括:请求接收模块910、模板文件获取模块920、动态编译模块930和开发环境创建模块940。
上述请求接收模块910,用于接收终端设备发起的软件开发的请求。
上述模板文件获取模块920,用于从工作空间模板文件库中获取与上述请求适配的目标模板文件,上述工作空间模板文件库包括至少一个工作空间模板文件,上述工作空间模板文件为预配置且支持动态修改的模板文件。
上述动态编译模块930,用于对上述目标模板文件进行解析和动态编译处理,得到工作空间接口配置文件。
上述开发环境创建模块940,用于根据上述工作空间接口配置文件,创建与上述请求适配的云端软件开发环境。
在一些实施例中,上述装置900还包括:第一模板生成模块,用于预先生成工作空间模板文件。该预先生成的工作空间模板文件存储于工作空间模板文件库,作为接收请求之前工作空间模板文件库预先存储的工作空间模板文件。
第一模板生成模块包括:第一编辑指令获取模块、第一配置模块和第一模板文件生成模块。
上述第一编辑指令获取模块,用于获取编辑操作指令,上述编辑操作指令是上述终端设备在模板文件的图形化编辑界面接收到的指令;上述图形化编辑界面是由对象描述模型执行自动代码生成功能得到的可视化界面,上述对象描述模型包括用于编写工作空间模板的对象元信息。
上述第一配置模块,用于根据上述编辑操作指令,生成或更新工作空间模板配置信息。
上述第一模板文件生成模块,用于根据上述工作空间模板配置信息,生成工作空间模板文件。
在一些实施例中,上述模板文件获取模块920包括:描述信息筛选模块,和以下模块组中的至少一组:{模板文件确定模块,模板文件获取模块}或{跳转指令发送模块,第二模板生成模块}。
上述描述信息筛选模块,用于根据上述请求携带的开发环境描述信息,从上述工作空间模板文件绑定的软件开发环境描述信息中筛选与上述开发环境描述信息匹配的目标软件描述信息。
上述模板文件确定模块,用于响应于筛选到上述目标软件描述信息,确定上述目标软件描述信息对应的工作空间模板文件为与上述请求适配的目标模板文件;
上述模板文件获取模块,用户从上述工作空间目标文件库中获取上述目标模板文件。
上述跳转指令发送模块,用于响应于筛选不到上述目标软件描述信息,向上述终端设备发送跳转至模板文件的图形化编辑界面的指令。
上述第二模板生成模块用于根据跳转后的图形化编辑界面的编辑操作指令生成新建工作空间模板文件。该新建工作空间模板文件可以是在请求处理过程中生成。
上述第二模板生成模块包括:第二编辑指令获取模块、第二配置模块和第二模板文件生成模块。
上述第二编辑指令获取模块,用于获取上述图形化编辑界面的界面编辑操作指令。
上述第二配置模块,用于根据上述界面编辑操作指令,生成新建工作空间模板配置信息。
上述第二模板文件生成模块,用于根据上述新建工作空间模板配置信息,生成新建工作空间模板文件并存储至上述工作空间模板文件库。
在一些实施例中,上述新建工作空间模板文件直接作为上述目标模板文件。
在一些实施例中,上述新建工作空间模板文件作为候选目标模板文件。
在上述新建空间模板文件作为上述候选目标模板文件的情况下,上述动态编译模块930还用于:对上述候选目标模板文件进行解析和动态编译处理,得到候选工作空间接口配置文件。
在上述新建空间模板文件作为上述候选目标模板文件的情况下,上述开发环境创建模块940还用于:根据上述候选工作空间接口配置文件,创建候选云端软件开发环境,上述候选云端软件开发环境作为用于在上述终端设备展示的针对上述请求的一种开发环境选项。
该实施例中,候选目标模板文件相较于目标模板文件而言是一个中间状态的模板文件,在用户不需要修改的情况下,候选目标模板文件成为目标模板文件。
在一些实施例中,用户还需要根据终端设备呈现的云端工作空间的效果来对候选目标模板文件进一步修改。在这种实施例中,上述第二模板生成模块中的第二编辑指令获取模块,还用于:获取针对上述候选目标模板文件进行更新的更新指令,上述更新指令为上述终端设备在上述图形化编辑界面接收到的指令;上述第二模板生成模块中的第二配置模块,还用于:根据上述更新指令,对上述新建工作空间模板配置信息的元数据信息、组件信息或编辑器插件信息中的至少一种进行更新;上述第二模板生成模块中的第二模板文件生成模块,还用于:根据更新后的新建工作空间模板配置信息,生成上述目标模板文件。
在一些实施例中,工作空间模板文件包括:元数据信息、组件信息和编辑器插件信息。
上述动态编译模块930包括:信息解析模块、解析信息动态编译模块和接口配置文件生成模块。
上述信息解析模块,用于对上述目标模板文件的元数据信息、组件信息和编辑器插件信息进行解析处理,得到元数据解析信息、组件解析信息和插件解析信息。
上述解析信息动态编译模块,用于对上述元数据解析信息、上述组件解析信息和上述插件解析信息分别进行动态编译处理,得到工作空间接口配置信息。
上述接口配置文件生成模块,用于根据上述工作空间接口配置信息,生成工作空间接口配置文件。
本实施例的装置所包含的各个功能模块的各个实施细节可以参照第一个实施例的描述,这里不再赘述。
示例性电子设备
图10是根据一示例性实施例示出的电子设备的框图。该电子设备1000可以是车辆控制器、车载终端、车载计算机或者其他类型的电子设备,例如台式计算机、笔记本电脑、智能手机等。
参照图10,电子设备1000,可包括至少一个处理器1010和存储器1020。处理器1010可以执行存储在存储器1020中的指令。处理器1010通过数据总线与存储器1020通信连接。除存储器1020外,处理器1010还可通过数据总线与输入设备1030、输出设备1040、通信设备1050通信连接。
处理器1010可以是任何常规的处理器,诸如商业可获得的CPU。处理器还可以包括诸如图像处理器(Graphic Process Unit,GPU),现场可编程门阵列(Field ProgrammableGate Array,FPGA)、片上系统(System on Chip,SOC)、专用集成芯片(ApplicationSpecific Integrated Circuit,ASIC)或它们的组合。
存储器1020可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
在本公开实施例中,存储器1020中存储有可执行指令,处理器1010可以从存储器1020中读取该可执行指令,并执行该可执行指令以实现上述示例性实施例中任一个实施例或其组合对应的创建云端开发环境的方法的全部或部分步骤。
示例性计算机可读存储介质
除了上述方法和装置以外,本公开的示例性实施例还可以是计算机程序产品或存储有该计算机程序产品的计算机可读存储介质。该计算机产品中包括计算机程序指令,该计算机程序指令可被处理器执行,以实现上述示例性实施例中任一方法中描述的的全部或部分步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言以及脚本语言(例如Python)。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子包括:具有一个或多个导线电连接的静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘,或者上述的任意合适的组合。
本领域技术人员在考虑说明书及实践本公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种创建云端开发环境的方法,其特征在于,应用于服务端,所述方法包括:
接收终端设备发起的软件开发的请求;
从工作空间模板文件库中获取与所述请求适配的目标模板文件,所述工作空间模板文件库包括至少一个工作空间模板文件,所述工作空间模板文件为预配置且支持动态修改的模板文件;
对所述目标模板文件进行解析和动态编译处理,得到工作空间接口配置文件;
根据所述工作空间接口配置文件,创建与所述请求适配的云端软件开发环境。
2.根据权利要求1所述的方法,其特征在于,所述工作空间模板文件包括:元数据信息、组件信息和编辑器插件信息,所述元数据信息包括:所述工作空间模板文件的元数据信息,所述工作空间模板文件所含对象和对象关系的元数据信息;所述组件信息包括:所述对象中用于软件开发的功能模块信息;所述编辑器插件信息包括:所述对象中用于软件开发的扩展功能插件信息;
对所述目标模板文件进行解析和动态编译处理,得到工作空间接口配置文件,包括:
对所述目标模板文件的元数据信息、组件信息和编辑器插件信息进行解析处理,得到元数据解析信息、组件解析信息和插件解析信息;
对所述元数据解析信息、所述组件解析信息和所述插件解析信息分别进行动态编译处理,得到工作空间接口配置信息;
根据所述工作空间接口配置信息,生成工作空间接口配置文件。
3.根据权利要求2所述的方法,其特征在于,对所述元数据解析信息、所述组件解析信息和所述插件解析信息分别进行动态编译处理,得到工作空间接口配置信息,包括:
对所述元数据解析信息进行动态编译处理,得到工作空间模板接口元数据信息和工作空间接口元数据信息;
对所述组件解析信息进行动态编译处理,得到工作空间模板接口组件信息和工作空间接口组件信息;
对所述插件解析信息进行动态编译处理,得到工作空间模板接口插件信息和工作空间接口插件信息;
所述工作空间接口配置信息包括所述工作空间模板接口元数据信息、所述工作空间接口元数据信息、所述工作空间模板接口组件信息、所述工作空间接口组件信息、所述工作空间模板接口插件信息和所述工作空间接口插件信息。
4.根据权利要求1所述的方法,其特征在于,还包括:
获取编辑操作指令,所述编辑操作指令是所述终端设备在模板文件的图形化编辑界面接收到的指令;所述图形化编辑界面是由对象描述模型执行自动代码生成功能得到的可视化界面,所述对象描述模型包括用于编写工作空间模板的对象元信息;
根据所述编辑操作指令,生成或更新工作空间模板配置信息;
根据所述工作空间模板配置信息,生成工作空间模板文件。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述请求携带有待开发软件的开发环境描述信息;所述工作空间模板文件库中的工作空间模板文件绑定有适配的软件开发环境描述信息;
其中,所述从工作空间模板文件库中获取与所述请求适配的目标模板文件,包括:
根据所述请求携带的开发环境描述信息,从所述工作空间模板文件绑定的软件开发环境描述信息中筛选与所述开发环境描述信息匹配的目标软件描述信息;
响应于筛选到所述目标软件描述信息,确定所述目标软件描述信息对应的工作空间模板文件为与所述请求适配的目标模板文件;
从所述工作空间目标文件库中获取所述目标模板文件。
6.根据权利要求5所述的方法,其特征在于,还包括:
响应于筛选不到所述目标软件描述信息,向所述终端设备发送跳转至模板文件的图形化编辑界面的指令;
获取所述图形化编辑界面的界面编辑操作指令;
根据所述界面编辑操作指令,生成新建工作空间模板配置信息;
根据所述新建工作空间模板配置信息,生成新建工作空间模板文件并存储至所述工作空间模板文件库。
7.根据权利要求6所述的方法,其特征在于,所述新建工作空间模板文件作为所述目标模板文件或者作为候选目标模板文件;
在所述新建空间模板文件作为所述候选目标模板文件的情况下,对所述候选目标模板文件进行解析和动态编译处理,得到候选工作空间接口配置文件;
根据所述候选工作空间接口配置文件,创建候选云端软件开发环境,所述候选云端软件开发环境作为用于在所述终端设备展示的针对所述请求的一种开发环境选项。
8.一种创建云端开发环境的装置,其特征在于,包括:
请求接收模块,用于接收终端设备发起的软件开发的请求;
模板文件获取模块,用于从工作空间模板文件库中获取与所述请求适配的目标模板文件,所述工作空间模板文件库包括至少一个工作空间模板文件,所述工作空间模板文件为预配置且支持动态修改的模板文件;
动态编译模块,用于对所述目标模板文件进行解析和动态编译处理,得到工作空间接口配置文件;
开发环境创建模块,用于根据所述工作空间接口配置文件,创建与所述请求适配的云端软件开发环境。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述可执行指令以实现权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时,以实现权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211104393.1A CN116225394A (zh) | 2022-09-09 | 2022-09-09 | 创建云端开发环境的方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211104393.1A CN116225394A (zh) | 2022-09-09 | 2022-09-09 | 创建云端开发环境的方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116225394A true CN116225394A (zh) | 2023-06-06 |
Family
ID=86570284
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211104393.1A Pending CN116225394A (zh) | 2022-09-09 | 2022-09-09 | 创建云端开发环境的方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116225394A (zh) |
-
2022
- 2022-09-09 CN CN202211104393.1A patent/CN116225394A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10592319B2 (en) | API notebook tool | |
US9274784B2 (en) | Automatic deployment and update of hybrid applications | |
US10853108B2 (en) | Method and apparatus for code virtualization and remote process call generation | |
CN108304201B (zh) | 对象更新方法、装置及设备 | |
CA2915619C (en) | Method and apparatus for customized software development kit (sdk) generation | |
CN107491329B (zh) | Docker镜像构建方法、设备、存储介质以及电子装置 | |
US20140173454A1 (en) | Method and system for designing, deploying and executing transactional multi-platform mobile applications | |
US11797273B2 (en) | System and method for enhancing component based development models with auto-wiring | |
US11822870B2 (en) | Customizable user interface layouts | |
CN113885849B (zh) | 基于工业互联网平台的应用开发方法、装置及终端设备 | |
CN112395027B (zh) | 微件界面生成方法、装置、存储介质与电子设备 | |
CN112114890A (zh) | 小程序的处理方法、装置、设备及存储介质 | |
CN111740948A (zh) | 数据包发布方法、动态更新方法、装置、设备及介质 | |
CN106484389B (zh) | 动作流分段管理 | |
US11604662B2 (en) | System and method for accelerating modernization of user interfaces in a computing environment | |
US20200097260A1 (en) | Software application developer tools platform | |
CN114217789A (zh) | 功能组件拓展方法、装置、设备、存储介质及程序产品 | |
CN112860247B (zh) | 一种模型组件的自定义生成方法、装置、设备及介质 | |
CN112631563A (zh) | 基于框架的系统开发方法、装置、计算机设备及存储介质 | |
CN115113850A (zh) | 一种跨平台应用的构建、运行方法、服务器、终端和系统 | |
CN116225394A (zh) | 创建云端开发环境的方法、装置、电子设备及存储介质 | |
US11030087B2 (en) | Systems and methods for automated invocation of accessibility validations in accessibility scripts | |
CN113419711A (zh) | 页面引导方法、装置、电子设备及存储介质 | |
CN112379885A (zh) | 小程序编译方法、装置、设备及可读存储介质 | |
CN113498512A (zh) | 车载图像显示的优化方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |