CN112416351A - 代码添加方法、装置、电子设备及计算机可读存储介质 - Google Patents

代码添加方法、装置、电子设备及计算机可读存储介质 Download PDF

Info

Publication number
CN112416351A
CN112416351A CN202011331967.XA CN202011331967A CN112416351A CN 112416351 A CN112416351 A CN 112416351A CN 202011331967 A CN202011331967 A CN 202011331967A CN 112416351 A CN112416351 A CN 112416351A
Authority
CN
China
Prior art keywords
data
code
module
standard structure
native code
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
Application number
CN202011331967.XA
Other languages
English (en)
Inventor
郑启光
陈少毅
钟沃文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Huya Technology Co Ltd
Original Assignee
Guangzhou Huya Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Huya Technology Co Ltd filed Critical Guangzhou Huya Technology Co Ltd
Priority to CN202011331967.XA priority Critical patent/CN112416351A/zh
Publication of CN112416351A publication Critical patent/CN112416351A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code

Abstract

本申请提供一种代码添加方法,所述方法包括:基于预先定义的标准结构,将所述第一结构化数据转换为对应的第一标准结构数据;其中,所述第一标准结构根据至少一个应用程序框架所包含的数据类型被定义,至少包括数据源数据模块、视图数据模块和自定义模块,用于分别存储所述结构化数据中的数据源数据、视图数据以及扩展的原生代码;基于所述第一结构化数据对应的应用程序框架,将所述第一标准结构数据转换为第一原生代码;对所述第一原生代码进行扩展,得到第二原生代码;基于所述标准结构,将所述第二原生代码转换成对应的第二标准结构数据;根据目标应用程序框架,将所述第二标准结构数据转换为对应的第二结构化数据。

Description

代码添加方法、装置、电子设备及计算机可读存储介质
技术领域
本申请涉及通信及计算机技术领域,尤其涉及一种代码添加方法、装置、电子设备及计算机可读存储介质。
背景技术
随着计算机科学的不断发展,为了提高应用程序的开发效率,降低开发成本,出现了很多低代码平台。利用低代码平台封装好的组件,用户能够通过图形化的用户界面,使用拖拽组件等来创建网页和移动应用程序,实现可视化的少代码甚至零代码开发。
然而,由于用户的需求常常具有不确定性,但用户又无法对低代码平台封装好的组件进行自定义的代码添加,故当用户存在组件功能之外的特殊需求时,需要开发人员重新进行完整的组件开发。所重新开发的组件由于是根据用户的特定需求开发的,因此具有较细的粒度,存在开发成本高、复用性低等缺点。
发明内容
为克服相关技术中存在的问题,本申请提供了一种代码添加方法、装置、电子设备及计算机可读存储介质。
根据本申请实施例的第一方面,提供一种代码转换方法,所述方法用于向低代码开发平台的组件添加代码,所述组件由第一结构化数据构成,所述方法包括:
基于预先定义的标准结构,将所述第一结构化数据转换为对应的第一标准结构数据;其中,所述标准结构根据至少一个应用程序框架所包含的数据类型被定义,至少包括数据源数据模块、视图数据模块和自定义模块,用于分别存储所述结构化数据中的数据源数据、视图数据以及扩展的原生代码;基于所述第一结构化数据对应的应用程序框架,将所述第一标准结构数据转换为第一原生代码;对所述第一原生代码进行扩展,得到第二原生代码;基于所述标准结构,将所述第二原生代码转换成对应的第二标准结构数据;根据目标应用程序框架,将所述第二标准结构数据转换为对应的第二结构化数据。
根据本申请实施例的第二方面,提供一种代码添加装置,所述装置用于向低代码开发平台的组件添加代码,所述组件由第一结构化数据构成,所述装置包括:第一转换模块、第二转换模块、原始代码扩展模块、第三转换模块和第四转换模块;
第一转换模块,用于基于预先定义的标准结构,将所述第一结构化数据转换为对应的第一标准结构数据;其中,所述第一标准结构根据应用程序框架所包含的数据类型被定义,至少包括数据源数据模块、视图数据模块和自定义模块,用于分别存储所述结构化数据中的数据源数据、视图数据以及扩展的原生代码;第二转换模块,用于基于所述第一结构化数据对应的应用程序框架,将所述第一标准结构数转换为第一原生代码;原生代码扩展模块,用于对所述第一原生代码进行扩展,得到第二原生代码;第三转换模块,用于基于所述标准结构,将所述第二原生代码转换为对应的第二标准结构数据;第四转换模块,用于根据目标应用程序框架,将所述第二标准结构数据转换为对应的第二结构化数据。
根据本申请实施例的第三方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现本申请实施例的第一方面的方法。
根据本申请实施例的第四方面,提供一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本申请实施例的第一方面的方法。
本申请的实施例提供的技术方案可以包括以下有益效果:
本申请的实施例中,通过预先定义的标准结构,能够对可视化编辑的结构化数据和原生代码进行解耦,实现可视化编辑的结构化数据与原生代码相互转换。将结构化数据转换为原生代码后,用户能够对原始代码根据需求进行扩展,将扩展后的原生代码再转换为可视化编辑的结构化数据,能够实现低代码平台中现有组件不能实现的功能,且用户根据需求进行的扩展代码,被存储在自定义模块中,能够在不需要的时候被去除。通过上述方法,能够同时提高低代码平台的易用性和灵活性,满足用户的多样化的需求。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。
图1是本申请根据一示例性实施例示出的一种代码添加方法的流程图。
图2是本申请根据一示例性实施例示出的一种标准结构数据的结构示意图。
图3是本申请根据一示例性实施例示出的另一种标准结构数据的结构示意图。
图4A是本申请根据一示例性实施例示出在低代码开发平台绑定数据源数据的示意图。
图4B是本申请根据一示例性实施例示出在低代码开发平台绑定视图数据的示意图。
图4C是本申请根据一示例性实施例示出在低代码开发平台绑定方法数据的示意图。
图5是本申请根据一示例性实施例示出在低代码开发平台基于Vue框架进行应用程序开发的可视化编辑面板示意图。
图6是本申请根据一示例性实施例示出的一种代码添加装置的结构框图。
图7是本申请根据一示例性实施例示出的一种用于代码添加的电子设备的结构框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
随着计算机科学的快速发展,应用程序需求不断增大,开发人员的开发压力也越来越大。如果按照传统的方式去开发应用程序,那么需要编写大量的代码,开发周期较长,成本较高。
为了减少手工编写代码的数量,加快应用程序开发的速度,低代码开发平台(Low-Code Development Platform,LCDP)应运而生。低代码开发平台是无需编码或通过少量代码就可以快速生成应用程序的开发平台,能够为开发人员提供封装好的以结构化数据构成的组件。由于低代码开发平台为开发人员提供图形化的用户界面,因此,具有不同经验水平的开发人员可以仅仅通过使用拖拽组件和模型驱动的逻辑等可视化操作,来创建网页和移动应用程序,大大减低了对开发人员的编码能力的要求,具有一定的易用性。
虽然低代码开发平台的组件化具有一定的易用性,但是,在低代码平台的建设中,难点在于如何同时兼顾易用性和灵活性。在开发人员进行可视化编辑的过程中,如果整个低代码开发平台是完全组件化的,那么开发人员在进行一些常规功能的应用程序开发的过程中,仅仅需要拖曳组件和模型驱动的逻辑等就可以实现应用程序的开发。但是,由于低代码开发平台是完全组件化的,其功能是限定好的,因此,开发人员所开发的应用程序能实现的功能上限,完全取决于被封装好的组件本身能够实现的功能,组件之外的功能不可实现。
但是,实际情况是,用户的需求是多样化的,尤其是在当今产品竞争日益激烈的环境下,用户可能既需要实现具有自身特色的应用程序,又希望能够降低代码开发的成本和周期。当利用低代码开发平台来实现上述需求时,有两种解决方案:一是等低代码平台产出对应需求的组件,二是开发人员重新进行完整的组件开发。第一种方法具有明显的缺点,平台产出对应需求的组件的时间不确定,而向平台定制组件的成本又很高。第二种方法,所重新开发的组件由于是根据用户的特定需求开发的,因此具有较细的粒度,存在开发成本高、复用性低等缺点。
针对上述相关技术存在的缺陷,为了同时提高低代码平台的易用性和灵活性,本申请提出了一种代码添加方法,所述方法用于向低代码开发平台的组件添加用户自定义的代码,以满足用户多样化的应用程序开发需求。
接下来对本申请实施例进行详细说明。
如图1所示,图1是本申请根据一示例性实施例示出的一种代码添加方法的流程图,所述方法用于向低代码开发平台的组件添加代码,所述组件由第一结构化数据构成,所述方法包括以下步骤:
在步骤102中,基于预先定义的标准结构,将构成低代码开发平台组件的第一结构化数据转换为对应的第一标准结构数据。
在步骤104中,基于低代码开发平台组件的第一结构化数据对应的应用程序框架,将步骤102中所转换的第一标准结构数据转换为第一原生代码。
在步骤106中,对所转换的第一原生代码进行扩展,得到第二原生代码。
在步骤108中,基于预先定义的标准结构,将第二原生代码转换为对应的第二标准结构数据。
在步骤110中,根据目标应用程序框架,将在步骤108中所转换的第二标准结构数据转换为对应的第二结构化数据。
其中,第一标准结构数据是根据预先定义的标准结构,所生成的符合标准结构的数据。所述预先定义的标准结构,根据至少一种应用程序框架所包含的数据类型被定义。所述应用程序框架,可以包括Web端框架,如Vue、React、Angular等基于数据驱动页面的框架,还可以包括各种小程序框架等等。
低代码开发平台为用户提供可视化编辑面板以使用户进行程序开发,所采用的应用程序框架是数据驱动视图模式的。以Vue框架为例,Vue是基于MVVM(Model-View-ViewModel,数据驱动视图)模式的框架。MVVM框架的数据部分(Model)和视图(View)部分通过Viewmodel来进行通信,实现对数据与视图的关系进行绑定,从而驱动视图的变化。在vue.js中,当数据发生变化的时候,用户视图发生相应的变化。
在一些实施例中,所述预先定义的标准结构,根据至少一种应用程序框架所包含的数据类型被定义。基于应用程序框架“数据驱动视图”的特点,所述预定义的标准结构至少包括数据源数据模块和视图数据模块,用于分别存储构成组件的结构化数据中的数据源数据和视图数据。此外,根据本发明的发明目的,即用户向组件添加自定义的代码,所述自定义的代码在添加后,还可以被灵活地去除掉,故所述预先定义的标准结构,还至少包括自定义模块,用于存储用户所拓展的原生代码。如图2所示,给出了预先定义的标准结构的示意图。
在一些实施例中,所述标准结构除了包括数据源数据模块、视图数据模块和自定义模块,还可以包括样式数据模块和方法数据模块,其示意图如图3所示。其中,所述样式数据模块用于存储构成组件的结构化数据中的样式数据,所述方法模块用于存储构成组件的结构化数据中的方法数据。
例如,当用户借助低代码开发平台,要实现一个基于Vue框架的数据表格的功能时,通过在低代码平台上可视化编辑添加表格组件(即视图数据),再绑定数据源数据、样式数据及方法数据,就能够实现常用的数据表格功能。如图4A、4B和4C所示,分别给出了当用户要实现一个数据表格的功能时,在低代码开发平台采用可视化编辑绑定数据源数据、样式数据以及方法数据的具体示意图,其中,图4A中所绑定的数据源数据是本地数据,图4B中所绑定的样式数据设置了表格的宽度、高度、内外边距等,图4C中所绑定的方法数据定义了通过某个具体函数生成数据。在该应用场景下,Vue框架包含的数据类型有数据源数据、视图数据、样式数据以及方法数据,因此,所述预先定义的标准结构要包括数据源数据模块、视图数据模块、样式数据模块和方法数据模块,此外,为了实现对组件的代码添加,还需要额外设置一个自定义模块,用于存储添加的原生代码。故所预先定义的标准结构,应如图3所示。
本领域技术人员应当理解,除了上述所列出的具体Web端框架(如Vue、React、Angular等)、小程序框架,所述应用程序框架还可以是其他基于数据驱动视图(MVVM)的框架,本申请对此不作限制。
在一些实施例中,所述预先定义的标准结构,可以根据各种应用程序框架所包含的数据类型被定义的,进而涵盖各种应用程序框架所包含的全部数据类型。所述标准结构还可以包括其他数据模块,每个数据模块用于存储应用程序框架中的一种类型的数据。
可选的,应用程序框架中的其他类型的数据,还可以存储在所述预先定义的标准结构中的自定义模块。
通过上述实施例可以看到,根据至少一种应用程序框架所包含的数据类型,预先定义标准结构,能够提取结构化数据中的不同类型的数据,进而可以将第一结构化数据转换为第一原生数据。由于所述标准结构是基于多种应用程序框架进行定义的,故能够保证后续生成多样化框架的原生代码,进一步提升低代码开发平台的灵活性。
在一些实施例中,通过将第一结构化数据根据数据类型拆分为多个子数据集,每个子数据集与所述预先定义的标准结构中的一个模块对应,进而获得第一结构化数据所对应的第一标准结构数据。
针对第一结构化数据,可以采取遍历的方式,从第一结构化数据中提取数据。对于所提取的数据,依据预先定义好的标准结构进行分类,从而能够获得多个子数据集,每个子数据集与所述预先定义的标准结构中的一个模块对应。当标准结构定义为图3所示的结构,则经过数据拆分,能够分别获取数据源子数据集、视图子数据集、样式子数据集、方法子数据集,并分别存储在标准结构的数据源数据模块、视图数据模块、样式数据模块、方法数据模块中。
当然,本领域技术人员应当理解,除了上述对第一结构化数据采取数据类型拆分的方式获得第一结构化数据所对应的第一标准结构数据,还可以借助代码分析工具对所述第一结构化数据进行解析获得其所对应的第一标准结构数据,此外,还可以是开发人员额外编写的代码模块,用于实现将构成组件的第一结构化数据转换为第一标准结构数据,本申请对此不做限制。
通过采用数据拆分的方法生成第一标准结构数据,所述第一标准结构数据提取了至少一个应用程序框架的数据类型,能够作为结构化数据与原生代码转换的桥梁,实现对结构化数据和原生代码的解耦,进而为低代码平台的高扩展性奠定了基础。
在一些实施例中,在将第一结构化数据转换为第一标准结构数据之后,可以根据所述第一结构化数据对应的应用程序框架,生成对应的语法格式,遍历上述实施例中所获取的子数据集并填入所述语法格式,将所述第一标准结构数据转换为第一原生代码。
由于预先根据至少一种应用程序框架的数据类型定义了标准结构,因此,所述标准结构可以实现对构成组件的结构化数据进行抽象,涵盖结构化数据中的各种数据类型。此外,通过对第一结构化数据所包含的数据类型的拆分,能够将第一结构化数据中的数据按照数据类型进行模块化存储。基于此种预处理,可以根据第一结构化数据自身所对应的框架,生成框架对应的语法格式,然后对按照数据类型进行模块化存储的数据进行遍历,将所遍历的数据填入所述语法格式的对应位置,生成对应框架的第一原生代码。
下面,结合图5给出示例性说明。图5是一个通过低代码开发平台,基于Vue框架进行应用程序开发的可视化编辑面板。所述Vue框架包括视图数据、数据源数据、方法数据以及样式数据。用户在基于该可视化编辑面板进行应用程序开发的时候,可以仅仅通过拖曳面板上的组件或者在面板上的输入框输入字符串,就可以设计出一个数据表格,设计出的数据表格如图5的预览部分所示。但是,由于该低代码开发平台的组件是封装的,对于用户来说,是无法进行功能扩展的。当用户想要对所述数据表格进行一些个性化设计时,就无法实现。在本申请的实施例中,可以基于如图3所示的预先定义的标准结构,将第一结构化数据通过数据拆分的方式,转换为第一标准结构数据,其中,第一标准结构数据的部分视图数据如下所示:
Figure BDA0002796071850000091
Figure BDA0002796071850000101
对于第一标准结构数据中的其他数据,例如数据源数据、视图数据、方法数据这里不再展示。
然后,根据组件自身对应的Vue框架,生成框架对应的语法格式,对第一标准结构数据进行遍历,生成对应框架的第一原生代码,生成的第一原生代码的一部分如下所示:
Figure BDA0002796071850000102
当然,本领域技术人员应当理解,除了上述根据应用程序框架生成对应的语法格式,遍历数据,将第一标准结构数据转换为第一原生代码的方式之外,还可以通过开发人员预先编写对应框架的插件,利用插件快速生成第一标准结构数据所对应的第一原生代码。此外,还可以通过预先编写配置文件,生成第一原生代码,本申请对此不作限制。
通过上述实施例,借助于所预先定义的标准结构,能够将第一结构化数据转换为第一标准结构数据,进而转换为第一原生代码,能够为用户自定义编写额外的代码,实现对组件功能的扩展提供可实现的接口。
在一些实施例中,在用户对由第一结构化数据所转换获得的原生代码进行扩展,获得第二原生代码后,还可以通过代码分析,将第二原生代码解析为抽象语法树,根据所解析的抽象语法树(Abstract Syntax Tree,AST),提取第二原生代码对应的第二标准结构数据。
在将第一结构化数据转换为第一标准结构数据,然后根据组件所对应的应用程序框架将第一标准结构数据转换为对应的第一原生代码后,开发人员可以采用传统的代码开发方法,向原生代码中添加代码,以实现特定需求。仍以在低代码开发平台上实现一个数据表格的功能为例,在得到了原生代码之后,开发人员可以通过编码,添加额外的表格属性,比如个性化定义边框样式。添加了额外的表格属性的原生代码,即为第二原生代码。针对所述第二原生代码,可以通过代码分析工具,例如babel插件等,将第二原生代码解析成抽象语法树。根据抽象语法树,结合目标应用程序的框架,对第二原生代码进行数据提取,获取第二原生代码对应的第二标准结构数据。
在预先定义的标准结构中,包括了一个自定义模块,可以用于存储用户添加的具有新功能的代码数据。也就是,用户在原生代码上进行扩展的、具有额外功能的原生代码,会被抽离,存储到标准结构的自定义模块中,全量保存自定义代码段,并有对应的位置标示。
以上述对数据表格添加代码个性化定义边框样式为例,其第二标准结构数据中的自定义模块可以如下所示:
Figure BDA0002796071850000111
当然,除了对由第一结构化数据转换获得的第一原生代码添加具有新功能的代码数据,还可以对第一原生代码所包含的原有功能的数据进行添加、修改和删除等操作,例如,在第一原生代码中添加样式数据:
Figure BDA0002796071850000121
上述对于第一原生代码所包含的原有功能的数据的操作等同于在可视化编辑面板上的操作。当用户对第一原生代码所包含的原有功能的数据进行操作并对第一原生代码进行具有新功能的代码添加,获得第二原生代码后,将所述第二原生代码转换为第二标准结构数据的过程中,对原有功能的数据的操作使得标准结构的数据源数据模块、样式模块、方法模块和视图模块的数据相应发生变化,所添加的具有新功能的代码会存储在标准结构的预定义模块。
本领域技术人员应当理解,除了上述通过代码分析,将第二原生代码解析为抽象语法树,根据所解析的抽象语法树,提取第二原生代码所对应的第二标准结构数据之外,开发人员还可以设计能够实现转换功能的插件或者编写对应的配置文件,以实现将第二原生代码转换为对应的第二标准结构数据,本申请对此不作具体限制。
在一些实施例中,对于根据第二原生代码所转换的第二标准结构数据,可以根据目标应用程序框架,生成对应的语法格式,采用遍历的方式,从转换获得的第二标准结构数据中提取相应数据填入所生成的语法格式,进而获取与目标应用程序框架对应的第二结构化数据。
根据预先定义的标准结构,可以将扩展后获得的第二原生代码转换为第二标准结构数据。根据目标应用程序框架,生成对应的语法格式。目标应用程序框架可以与构成组件的最初的结构化数据的应用程序框架相同,也可以不同。例如,构成组件的最初的结构化数据的应用程序框架为Vue框架,目标应用程序框架可以是React框架、Angular框架以及多种小程序框架等等,只要预先定义的标准结构包括这些框架的全部数据类型就能够实现应用程序框架的改变。在根据目标应用程序框架生成了对应的语法格式后,由于第二标准结构数据中将构成应用程序的数据已按照数据类型进行存储,因此,采用遍历的方式,从第二标准结构数据中提取相应数据填充至已生成的语法格式中,就能够获取与目标应用程序框架对应的第二结构化数据。
同样,本领域技术人员应当理解,除了上述根据目标应用程序框架,生成对应的语法格式,采用遍历的方式,从第二标准结构数据中提取数据,将第二标准结构数据转换为对应的第二结构化数据之外,还可以是通过编写插件或者配置文件,以将第二标准结构数据转换为对应的第二结构化数据,本申请对此不作限制。
通过上述实施例,能够将第一结构化数据转换为第一原生代码,用户能够对原生代码进行代码扩展获得第二原生代码,第二原生代码又能够被转换为第二标准结构数据,进而被转换为对应的第二结构化数据,形成具有自定义功能的组件,供用户进行可视化编辑,既可以给非专业前端的用户做UI编辑使用,又由于代码转换机制的存在,使得专业前端的用户也可以在低代码开发平台上面进行复杂逻辑的编写,实现自定义的功能。当预先定义的标准结构涵盖多种的应用程序框架的数据类型,能够实现在低代码平台上面生成各种框架代码的产品。可见,本申请的实施例能够同时提高低代码开发平台的易用性和灵活性。
以上为本申请实施例提供的一种代码添加方法,基于同样的思路,本申请还提供了相应的装置、电子设备和计算机可读储存介质。
图6为本申请实施例提供的一种代码添加装置的结构示意图,所述装置用于向低代码开发平台的组件添加代码,所述组件由第一结构化数据构成,所述装置包括:
第一转换模块602,用于基于预先定义的标准结构,将所述第一结构化数据转换为对应的第一标准结构数据;其中,所述第一标准结构根据至少一种应用程序框架所包含的数据类型被定义,至少包括数据源数据模块、视图数据模块和自定义模块,用于分别存储所述结构化数据中的数据源数据、视图数据以及扩展的原生代码;
第二转换模块604,用于基于所述第一结构化数据对应的应用程序框架,将所述第一标准结构数转换为第一原生代码;
扩展模块606,用于对所述第一原生代码进行扩展,得到第二原生代码;
第三转换模块608,用于基于所述标准结构,将所述第二原生代码转换为对应的第二标准结构数据;
第四转换模块610,用于根据目标应用程序框架,将所述第二标准结构数据转换为对应的第二结构化数据。
在一些实施例中,所述预先定义的标准结构,可以根据各种应用程序框架所包含的数据类型被定义的,进而涵盖各种应用程序框架所包含的全部数据类型。所述标准结构还可以包括其他数据模块,每个数据模块用于存储应用程序框架中的一种类型的数据。
可选的,应用程序框架中的其他类型的数据,还可以存储在所述预先定义的标准结构中的自定义模块。
通过上述实施例可以看到,通过根据至少一种应用程序框架所包含的数据类型,预先定义标准结构,能够实现对由结构化数据构成的组件中的数据进行提取,进而能够实现将结构化数据转换为原生数据。当所述标准结构是基于多种应用程序框架的进行定义时,能够保证后续生成多样化框架的原生代码,进一步提升低代码开发平台的灵活性。
在一些实施例中,所述第一转换模块还包括数据拆分模块和第一转换子模块。所述数据拆分模块用于通过将构成组件的第一结构化数据根据数据类型拆分为多个子数据集,每个子数据集与所述预先定义的标准结构中的一个模块对应。所述第一转换子模块用于根据所述数据集,获得第一结构化数据所对应的第一标准结构数据。
在一些实施例中,所述第二转换模块还包括第一语法格式生成模块和第一遍历模块。所述第一语法格式生成模块用于根据所述第一结构化数据对应的应用程序框架,生成对应的语法格式。所述第一遍历模块用于遍历上述实施例中所获取的标准结构数据的各个模块,将第一标准结构数据转换为第一原生代码。
在一些实施例中,所述第三转换模块包括代码解析模块以及代码提取模块。所述代码解析模块用于通过代码分析,将对第一原生代码进行扩展后获得的第二原生代码解析为抽象语法树。所述代码提取模块用于根据所解析的抽象语法树,提取扩展后获得的第二原生代码对应的第二标准结构数据。
在一些实施例中,所述第四转换模块包括第二语法格式生成模块和第二遍历模块。所述第二语法格式生成模块用于根据目标应用程序框架,生成对应的语法格式。所述第二遍历模块用于采用遍历的方式,从转换获得的第二标准结构数据中提取相应数据,进而获取与目标应用程序框架对应的第二结构化数据。
上述各个装置的具体实现方式,与前文所述各个方法实施例对应,这里不再赘述。
通过上述实施例,能够将第一结构化数据转换为第一原生代码,用户能够对第一原生代码进行代码扩展,获得第二原生代码,扩展后的第二原生代码又能够被转换为第二标准结构数据,进而被转换为对应的第二结构化数据,形成具有自定义功能的组件,供用户进行可视化编辑,既可以给非专业前端的用户做UI编辑使用,又由于代码转换机制的存在,使得专业前端的用户也可以在低代码开发平台上面进行复杂逻辑的编写,实现自定义的功能。当预先定义的标准结构涵盖多种的应用程序框架的数据类型,能够实现在低代码平台上面生成各种框架代码的产品。可见,本申请的实施例能够同时提高低代码开发平台的易用性和灵活性。
与前述方法的实施例相对应,本申请还提供了电子设备的实施例。所述电子设备,可以是服务器或者终端设备等等。
参见图7,为本申请电子设备实施例的一种硬件结构图,所述电子设备可以包括存储器701以及处理器702。所述存储器701可以是所述电子设备的内部存储单元,例如是设备的硬盘或者内存。所述存储器701也可以是所述设备的外部存储设备,例如所述设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器701还可以既包括所述设备的内部存储单元也包括外部存储设备。所述存储器用于存储所述计算机程序以及所述设备所需的其他程序和数据。所述存储器还可以用于暂时地存储已经输出或者将要输出的数据。当存储器存储的程序被执行时,所述处理器702调用存储器701中存储的程序,用于执行前述各实施例的方法,所述方法已在前文详细介绍,这里不再赘述。
当然,本领域技术人员应当理解,通常根据该电子设备的实际功能,还可以包括其他硬件,例如网络接口等等,本申请对此不再赘述。
在本申请的实施例中还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本申请上述方法中的所有实施例,在此不再赘述。
所述计算机可读存储介质可以是前述任一项实施例所述的设备的内部存储单元,例如设备的硬盘或内存。所述计算机可读存储介质也可以是所述设备的外部存储设备,例如所述设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,所述计算机可读存储介质还可以既包括所述设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述设备所需的其他程序和数据。所述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域技术人员在考虑申请及实践这里申请的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未申请的本技术领域中的公知常识或惯用技术手段。申请和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (10)

1.一种代码添加方法,其特征在于,所述方法用于向低代码开发平台的组件添加代码,所述组件由第一结构化数据构成,所述方法包括:
基于预先定义的标准结构,将所述第一结构化数据转换为对应的第一标准结构数据;
基于所述第一结构化数据对应的应用程序框架,将所述第一标准结构数据转换为第一原生代码;
对所述第一原生代码进行扩展,得到第二原生代码;
基于所述标准结构,将所述第二原生代码转换成对应的第二标准结构数据;
根据目标应用程序框架,将所述第二标准结构数据转换为对应的第二结构化数据。
2.根据权利要求1所述的方法,其特征在于,所述标准结构根据至少一种应用程序框架所包含的数据类型被定义,至少包括数据源数据模块、视图数据模块和自定义模块,用于分别存储所述结构化数据中的数据源数据、视图数据以及扩展的原生代码。
3.根据权利要求2所述的方法,其特征在于,所述标准结构还包括样式数据模块和方法数据模块;
所述样式数据模块用于存储所述第一结构化数据中的样式数据;
所述方法数据模块用于存储所述第一结构化数据中的方法数据。
4.根据权利要求1所述的方法,其特征在于,所述将所述第一结构化数据转换为对应的第一标准结构数据,包括:
将所述第一结构化数据根据数据类型拆分为多个子数据集,所述每个子数据集与所述标准结构中的一个模块相对应。
5.根据权利要求4所述的方法,其特征在于,所述将所述第一标准结构数据转换为第一原生代码,包括:
根据所述第一结构化数据对应的应用程序框架,生成对应的语法格式,遍历所述子数据集并填入所述语法格式,将所述第一标准结构数据转换为第一原生代码。
6.根据权利要求1所述的方法,其特征在于,所述获取所述第二原生代码对应的第二标准结构数据,包括:
通过代码分析,将第二原生代码解析为抽象语法树;
根据所解析的抽象语法树,提取第二原生代码对应的第二标准结构数据。
7.根据权利要求1所述的方法,其特征在于,所述将所述第二标准结构数据转换为对应的第二结构化数据,包括:
根据目标应用程序框架,生成对应的语法格式,采用遍历的方式从第二标准化结构数据中提取相应数据填入所生成的语法格式,获取与目标应用程序框架对应的第二结构化数据。
8.一种代码添加装置,其特征在于,所述装置用于向低代码开发平台的组件添加代码,所述组件由第一结构化数据构成,所述装置包括:第一转换模块、第二转换模块、原始代码扩展模块、第三转换模块和第四转换模块;
第一转换模块,用于基于预先定义的标准结构,将所述第一结构化数据转换为对应的第一标准结构数据;其中,所述第一标准结构根据至少一种应用程序框架所包含的数据类型被定义,至少包括数据源数据模块、视图数据模块和自定义模块,用于分别存储所述结构化数据中的数据源数据、视图数据以及扩展的原生代码;
第二转换模块,用于基于所述第一结构化数据对应的应用程序框架,将所述第一标准结构数转换为第一原生代码;
原生代码扩展模块,用于对所述第一原生代码进行扩展,得到第二原生代码;
第三转换模块,用于基于所述标准结构,将所述第二原生代码转换为对应的第二标准结构数据;
第四转换模块,用于根据目标应用程序框架,将所述第二标准结构数据转换为对应的第二结构化数据。
9.一种电子设备,其特征在于,所述电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至7任一项的方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1至7任一项所述的方法。
CN202011331967.XA 2020-11-24 2020-11-24 代码添加方法、装置、电子设备及计算机可读存储介质 Pending CN112416351A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011331967.XA CN112416351A (zh) 2020-11-24 2020-11-24 代码添加方法、装置、电子设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011331967.XA CN112416351A (zh) 2020-11-24 2020-11-24 代码添加方法、装置、电子设备及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN112416351A true CN112416351A (zh) 2021-02-26

Family

ID=74778724

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011331967.XA Pending CN112416351A (zh) 2020-11-24 2020-11-24 代码添加方法、装置、电子设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN112416351A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140282444A1 (en) * 2013-03-15 2014-09-18 ArtinSoft Corporation Programming language transformations with abstract syntax tree extensions
CN109032606A (zh) * 2018-07-10 2018-12-18 北京小米移动软件有限公司 原生应用程序的编译处理方法、装置及终端
CN110580158A (zh) * 2019-09-12 2019-12-17 上海米哈游网络科技股份有限公司 一种代码生成方法、装置、存储介质及电子设备
CN111831276A (zh) * 2020-06-30 2020-10-27 中国船舶重工集团公司第七一六研究所 软件可视化快速开发系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140282444A1 (en) * 2013-03-15 2014-09-18 ArtinSoft Corporation Programming language transformations with abstract syntax tree extensions
CN109032606A (zh) * 2018-07-10 2018-12-18 北京小米移动软件有限公司 原生应用程序的编译处理方法、装置及终端
CN110580158A (zh) * 2019-09-12 2019-12-17 上海米哈游网络科技股份有限公司 一种代码生成方法、装置、存储介质及电子设备
CN111831276A (zh) * 2020-06-30 2020-10-27 中国船舶重工集团公司第七一六研究所 软件可视化快速开发系统

Similar Documents

Publication Publication Date Title
CN112181416B (zh) 一种从视觉稿直接生成ui代码的方法及装置
CN111666526B (zh) 页面生成方法、装置、设备及存储介质
US8091071B2 (en) Method and system for template-based code generation
CN107273117B (zh) 一种编程友好型的敏捷代码自动生成系统
CN110806863A (zh) 接口文档生成方法及装置、电子设备、存储介质
CN108984172B (zh) 一种界面文件的生成方法及装置
CN106250104B (zh) 一种针对服务器的远程操作系统、方法及装置
US20030083900A1 (en) Template-based method and system for reverse engineering
CN101714133A (zh) 一种基于web的数学公式编辑系统及方法
CN108108194B (zh) 用户界面编辑方法以及用户界面编辑器
CN114820881A (zh) 图片的生成方法、智能终端及其计算机可读存储介质
Bagley et al. Creating reusable well-structured PDF as a sequence of component object graphic (COG) elements
CN101201750B (zh) 利用语法词法分析工具为编解码提供数据的方法
CN113986248A (zh) 一种代码生成方法、装置、计算机设备及存储介质
CN112416351A (zh) 代码添加方法、装置、电子设备及计算机可读存储介质
Simonsen PetriCode: a tool for template-based code generation from CPN models
CN115543291A (zh) 一种界面模板套件的开发应用方法及装置
CN114706582A (zh) 程序运行时的图标处理方法及装置、电子设备、存储介质
KR100846203B1 (ko) 모바일 어플리케이션의 생성 방법 및 이를 구현하기 위한프로그램을 기록한 기록매체
JP2007265011A (ja) 画面プログラムレイアウト変更方法および情報処理装置およびプログラムおよび記録媒体
CN113342399A (zh) 应用项目的结构配置方法、装置及可读存储介质
CN110554860A (zh) 一种软件项目自然语言编程接口nli的构造方法及代码生成方法
Koznov et al. View to view transformations in domain specific modeling
CN111240676A (zh) 一种生成骨架屏的代码的方法及装置
CN111368523A (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