一种低代码开发方法、系统、设备和可读存储介质与流程
未命名
07-19
阅读:114
评论:0
1.本发明涉及计算机技术领域,具体涉及一种低代码开发方法、系统、设备和可读存储介质。
背景技术:
2.低代码(low code)是一种可视化的应用开发方法,用较少的代码、以较快的速度来交付应用程序,将程序员不想开发的代码做到自动化,称之为低代码。低代码是一组数字技术工具平台,基于图形化拖拽、参数化配置等更为高效的方式,实现快速构建、数据编排、连接生态、中台服务。通过少量代码或不用代码实现数字化转型中的场景应用创新。低代码能够在合适的业务场景下实现大幅度的提效降本。
3.低代码开发在快速发展的过程中也有不少问题。目前比较突出的痛点就是低代码二次开发的问题,低代码生成平台代码后再次迭代时会因为前次开发时开发的代码与低代码生成的代码相冲突,导致在再次使用低代码开发时出现无法再次插入代码,只具备单向转码能力,一旦输出源码,过程不再可逆。低代码平台的业务越复杂,代码越复杂。维护成本上升,到了一定程度效率会失控。低代码平台业务需求和代码复杂度对立。
技术实现要素:
4.基于此,本技术实施例提供一种低代码开发方法、系统、设备和可读存储介质,优化了源码管理方式,可适应于快速迭代的项目,可多次快速建立平台,对于频繁的项目更改提供支持。
5.为了实现上述目的,本技术实施例提供如下技术方案:
6.根据本技术实施例的第一方面,提供了一种低代码开发方法,所述方法包括:
7.低代码平台引擎监听到组件拖拽启动事件时,判断所述组件拖拽启动事件是否为首次监听到;
8.若不是首次监听到,则读取当前平台页面的可执行源代码,并解析所述可执行源代码得到抽象语法树;
9.根据所述抽象语法树生成组件节点结构树和文件模型,并根据所述组件节点结构树和文件模型生成平台页面,以供用户拖拽;
10.待监听到组件拖拽事件后,根据所述组件拖拽事件的组件、页面布局和版本号生成新的抽象语法树,再根据新的抽象语法树生成新的可执行源代码并运行。
11.可选地,若所述组件拖拽启动事件为首次监听到,所述方法还包括:
12.获取组件拖拽启动事件的组件、页面布局和版本号;
13.根据所述组件、页面布局和版本号生成所有页面对应的组件节点结构树和文件模型;
14.根据所述所有页面对应的组件节点结构树和文件模型生成抽象语法树;
15.根据所述抽象语法树生成可执行源代码并运行,存储所述可执行源代码。
16.可选地,所述根据所述组件、页面布局和版本号生成所有页面对应的组件节点结构树和文件模型,包括:
17.根据所述组件、页面布局和版本号基于文档对象化模型树生成组件节点结构树和文件模型。
18.可选地,所述解析所述可执行源代码得到抽象语法树之后,所述方法还包括:
19.遍历所述抽象语法树添加关键点标记,所述关键点标记用于维持所述抽象语法树的结构不变。
20.可选地,所述待监听到组件拖拽事件后根据所述组件拖拽事件的组件、页面布局和版本号生成新的抽象语法树,所述方法还包括:
21.根据所述组件拖拽事件的组件、页面布局和版本号校验所述组件拖拽事件是否符合开发规则和是否破坏组件节点结构树;
22.若符合开发规则并不会破坏组件节点结构树,则生成新的抽象语法树;
23.若不符合开发规则和/或会破坏组件节点结构树,则停止生成新的抽象语法树并发出警告信息。
24.可选地,所述根据新的抽象语法树生成新的可执行源代码并运行之后,所述方法还包括:
25.存储所述新的可执行源代码,并更新版本号。
26.根据本技术实施例的第二方面,提供了一种低代码开发系统,所述系统包括:
27.判断模块,用于低代码平台引擎监听到组件拖拽启动事件时,判断所述组件拖拽启动事件是否为首次监听到;
28.抽象语法树还原模块,用于若不是首次监听到,则读取当前平台页面的可执行源代码,并解析所述可执行源代码得到抽象语法树;
29.页面还原模块,用于根据所述抽象语法树生成组件节点结构树和文件模型,并根据所述组件节点结构树和文件模型生成平台页面,以供用户拖拽;
30.代码更新模块,用于待监听到组件拖拽事件后,根据所述组件拖拽事件的组件、页面布局和版本号生成新的抽象语法树,再根据新的抽象语法树生成新的可执行源代码并运行。
31.可选地,所述系统还包括:
32.信息获取模块,用于获取组件拖拽启动事件的组件、页面布局和版本号;
33.抽象语法树生成模块,用于根据所述组件、页面布局和版本号生成所有页面对应的组件节点结构树和文件模型;根据所述所有页面对应的组件节点结构树和文件模型生成抽象语法树;
34.代码执行模块,用于根据所述抽象语法树生成可执行源代码并运行,存储所述可执行源代码。
35.可选地,所述根据所述组件、页面布局和版本号生成所有页面对应的组件节点结构树和文件模型,包括:
36.根据所述组件、页面布局和版本号基于文档对象化模型树生成组件节点结构树和文件模型。
37.可选地,所述系统还包括:
38.标记模块,用于遍历所述抽象语法树添加关键点标记,所述关键点标记用于维持所述抽象语法树的结构不变。
39.可选地,所述系统还包括:
40.校验模块,用于根据所述组件拖拽事件的组件、页面布局和版本号校验所述组件拖拽事件是否符合开发规则和是否破坏组件节点结构树;若符合开发规则并不会破坏组件节点结构树,则生成新的抽象语法树;若不符合开发规则和/或会破坏组件节点结构树,则停止生成新的抽象语法树并发出警告信息。
41.可选地,所述代码更新模块,还用于存储所述新的可执行源代码,并更新版本号。
42.根据本技术实施例的第三方面,提供了一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行以实现上述第一方面所述的方法。
43.根据本技术实施例的第四方面,提供了一种计算机可读存储介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现上述第一方面所述的方法。
44.综上所述,本技术实施例提供了一种低代码开发方法、系统、设备和可读存储介质,通过低代码平台引擎监听到组件拖拽启动事件时,判断所述组件拖拽启动事件是否为首次监听到;若不是首次监听到,则读取当前平台页面的可执行源代码,并解析所述可执行源代码得到抽象语法树;根据所述抽象语法树生成组件节点结构树和文件模型,并根据所述组件节点结构树和文件模型生成平台页面,以供用户拖拽;待监听到组件拖拽事件后,根据所述组件拖拽事件的组件、页面布局和版本号生成新的抽象语法树,再根据新的抽象语法树生成新的可执行源代码并运行。优化了源码管理方式,适应于快速迭代的项目,可多次快速建立平台,并对于频繁的项目更改提供支持。
附图说明
45.为了更清楚地说明本发明的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引伸获得其它的实施附图。
46.本说明书所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容能涵盖的范围内。
47.图1为本技术实施例提供的一种低代码开发方法流程示意图;
48.图2为本技术实施例提供的整体方案流程示意图;
49.图3为本技术实施例提供的用户首次使用低代码开发流程示意图;
50.图4为本技术实施例提供的规则校验过程示意图;
51.图5为本技术实施例提供的多次开发流程示意图;
52.图6为本技术实施例提供的一种低代码开发系统框图;
53.图7示出了本技术实施例提供的一种电子设备的结构示意图;
54.图8示出了本技术实施例提供的一种计算机可读存储介质的示意图。
具体实施方式
55.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
56.可以理解,本技术所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。
57.以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
58.图1示出了本技术实施例提供的低代码开发方法流程,所述方法包括:
59.步骤101:低代码平台引擎监听到组件拖拽启动事件时,判断所述组件拖拽启动事件是否为首次监听到;
60.步骤102:若不是首次监听到,则读取当前平台页面的可执行源代码,并解析所述可执行源代码得到抽象语法树;
61.步骤103:根据所述抽象语法树生成组件节点结构树和文件模型,并根据所述组件节点结构树和文件模型生成平台页面,以供用户拖拽;
62.步骤104:待监听到组件拖拽事件后,根据所述组件拖拽事件的组件、页面布局和版本号生成新的抽象语法树,再根据新的抽象语法树生成新的可执行源代码并运行。
63.在一种可能的实施方式中,若所述组件拖拽启动事件为首次监听到,所述方法还包括:
64.获取组件拖拽启动事件的组件、页面布局和版本号;根据所述组件、页面布局和版本号生成所有页面对应的组件节点结构树和文件模型;根据所述所有页面对应的组件节点结构树和文件模型生成抽象语法树;根据所述抽象语法树生成可执行源代码并运行,存储所述可执行源代码。
65.在一种可能的实施方式中,所述根据所述组件、页面布局和版本号生成所有页面对应的组件节点结构树和文件模型,包括:
66.根据所述组件、页面布局和版本号基于文档对象化模型树生成组件节点结构树和文件模型。
67.在一种可能的实施方式中,所述解析所述可执行源代码得到抽象语法树之后,所述方法还包括:
68.遍历所述抽象语法树添加关键点标记,所述关键点标记用于维持所述抽象语法树的结构不变。
69.在一种可能的实施方式中,所述待监听到组件拖拽事件后根据所述组件拖拽事件的组件、页面布局和版本号生成新的抽象语法树,所述方法还包括:
70.根据所述组件拖拽事件的组件、页面布局和版本号校验所述组件拖拽事件是否符合开发规则和是否破坏组件节点结构树;若符合开发规则并不会破坏组件节点结构树,则生成新的抽象语法树;若不符合开发规则和/或会破坏组件节点结构树,则停止生成新的抽象语法树并发出警告信息。
71.在一种可能的实施方式中,所述根据新的抽象语法树生成新的可执行源代码并运行之后,所述方法还包括:
72.存储所述新的可执行源代码,并更新版本号。
73.下面结合附图对本技术实施例提供的低代码开发方法进行详细说明。
74.图2为本技术实施例提供的整体方案流程示意图;为了解决现有技术中低代码平台的开发中代码不能双向转化的问题,引入ast抽象语法树来对源码进行管理。抽象语法树(abstract syntax tree,ast),或简称语法树(syntax tree),是源代码语法结构的一种抽象表示。它以树状的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构。抽象语法树的语法并不会表示出真实语法中出现的每个细节。比如,嵌套括号被隐含在树的结构中,并没有以节点的形式呈现;而类似于if-condition-then这样的条件跳转语句,可以使用带有两个分支的节点来表示。
75.低代码平台引擎监听到组件拖拽启动事件时,判断所述组件拖拽启动事件是否为首次监听到;
76.若所述组件拖拽启动事件为首次监听到,获取组件拖拽启动事件的组件、页面布局和版本号;根据所述组件、页面布局和版本号生成所有页面对应的组件节点结构树和文件模型;根据所述所有页面对应的组件节点结构树和文件模型生成抽象语法树;根据所述抽象语法树生成可执行源代码并运行,存储所述可执行源代码。
77.若不是首次监听到,则读取当前平台页面的可执行源代码,并解析所述可执行源代码得到抽象语法树;根据所述抽象语法树生成组件节点结构树和文件模型,并根据所述组件节点结构树和文件模型生成平台页面,以供用户拖拽;待监听到组件拖拽事件后,根据所述组件拖拽事件的组件、页面布局和版本号生成新的抽象语法树,再根据新的抽象语法树生成新的可执行源代码并运行。
78.在一种可能的实施方式中,低代码平台开发时,应用层输出时记录每个页面下节点的顺序,按照domtree生成组件节点结构树。
79.在一种可能的实施方式中,低代码平台设置有关于组件的开发规则,增加保存时校验插件,对关键的代码结构进行保护,代码结构不可修改。生成的关键的html,js添加标记。在代码保存时,通过ast抽象语法树进行代码的检查,检查标记包含的代码是否更改,若更改则发出警告信息。
80.本技术实施例提供的低代码开发方法,通过建立平台引擎来处理用户拖拽的动作,当用户拖拽完成后,平台引擎根据用户拖拽的组件和页面生成对应的文件模型和节点树。将文件模型解析还原为ast,遍历ast添加标记,所述添加的标记用于标记关键节点,以保护结构不被破坏。根据ast生成源代码,将源代码注入到项目实现模块输出给用户。在用户开发时动态检查ast,以保证ast的标记的关键节点不被改变。
81.当用户二次使用时,读取并解析源代码,将源代码还原为ast,通过ast建立文件模型和节点树,然后利用文件模型和节点树生成平台页面。
82.图3为本技术实施例提供的用户首次使用低代码开发流程示意图;低代码平台用户首次拖拽生产代码,在项目根目录下按照版本生产当前版本所有页面的组件节点结构树和文件模型。
83.通过建立平台引擎来处理用户拖拽的动作,当用户拖拽完成后,平台引擎根据用
户拖拽的组件和页面生成对应的文件模型和节点树。将文件模型解析还原为ast,遍历ast添加标记,所述添加的标记用于标记关键节点,以保护结构不被破坏。根据ast生成源代码,将源代码注入到项目实现模块输出给用户。
84.图4为本技术实施例提供的规则校验过程示意图。用户对生成的项目是有限制的开发,每次保存时都需要检查调用ast插件是否符合开发规则,以及是否破坏组件节点结构树。若不符合开发规则和/或破坏组件节点结构树的结构,则发出警告信息。
85.图5为本技术实施例提供的多次开发流程示意图;当用户再次开发时,读取并解析源代码,将源代码还原生成ast,将ast返回至平台引擎,通过ast建立文件模型和节点树,然后利用文件模型和节点树生成平台页面。再次拖拽生产代码,插入组件节点结构树,并更新版本号。
86.本技术实施例提供的方法,对页面表单进行解析,解析生成页面的组件节点结构树(渲染页面的存储结构)和文件模型(页面结构);再生成抽象语法树(包括关键节点)的结构,再用抽象语法树生成代码。存储可执行源代码,还存储抽象语法树,用于后续再次开发时代码的还原。当二次开发的时候,把源代码还原成抽象语法树和文件模型,再导入低代码平台里面,生成页面,以供用户再次拖拽。用户再次拖拽后,生成新的语法树,根据新的语法树生成新的可执行源代码。
87.优化了源码管理的方式,相对于现有方案,提高了可扩展性。针对源码的底层管理还可以添加兼容方案。支持多次开发的情况,实现源代码还原开发页面和快速输出源代码,降低了开发人员的学习成本。使得使用者不需要太专业的前端知识,非专业可用,使用时不需要编程、设计、构图等专业知识就可以建立,具备普遍性。在如今数字化的时代,多领域都有广阔的使用发展空间,可以帮助使用者管理系统,简单易懂的普及系统。
88.综上所述,本技术实施例提供了一种低代码开发方法,通过低代码平台引擎监听到组件拖拽启动事件时,判断所述组件拖拽启动事件是否为首次监听到;若不是首次监听到,则读取当前平台页面的可执行源代码,并解析所述可执行源代码得到抽象语法树;根据所述抽象语法树生成组件节点结构树和文件模型,并根据所述组件节点结构树和文件模型生成平台页面,以供用户拖拽;待监听到组件拖拽事件后,根据所述组件拖拽事件的组件、页面布局和版本号生成新的抽象语法树,再根据新的抽象语法树生成新的可执行源代码并运行。优化了源码管理方式,适应于快速迭代的项目,可多次快速建立平台,并对于频繁的项目更改提供支持。
89.基于相同的技术构思,如图6所示,本技术实施例还提供了一种低代码开发系统,所述系统包括:
90.判断模块601,用于低代码平台引擎监听到组件拖拽启动事件时,判断所述组件拖拽启动事件是否为首次监听到;
91.抽象语法树还原模块602,用于若不是首次监听到,则读取当前平台页面的可执行源代码,并解析所述可执行源代码得到抽象语法树;
92.页面还原模块603,用于根据所述抽象语法树生成组件节点结构树和文件模型,并根据所述组件节点结构树和文件模型生成平台页面,以供用户拖拽;
93.代码更新模块604,用于待监听到组件拖拽事件后,根据所述组件拖拽事件的组件、页面布局和版本号生成新的抽象语法树,再根据新的抽象语法树生成新的可执行源代
码并运行。
94.在一种可能的实施方式中,所述系统还包括:
95.信息获取模块,用于获取组件拖拽启动事件的组件、页面布局和版本号;
96.抽象语法树生成模块,用于根据所述组件、页面布局和版本号生成所有页面对应的组件节点结构树和文件模型;根据所述所有页面对应的组件节点结构树和文件模型生成抽象语法树;
97.代码执行模块,用于根据所述抽象语法树生成可执行源代码并运行,存储所述可执行源代码。
98.在一种可能的实施方式中,所述根据所述组件、页面布局和版本号生成所有页面对应的组件节点结构树和文件模型,包括:
99.根据所述组件、页面布局和版本号基于文档对象化模型树生成组件节点结构树和文件模型。
100.在一种可能的实施方式中,所述系统还包括:
101.标记模块,用于遍历所述抽象语法树添加关键点标记,所述关键点标记用于维持所述抽象语法树的结构不变。
102.在一种可能的实施方式中,所述系统还包括:
103.校验模块,用于根据所述组件拖拽事件的组件、页面布局和版本号校验所述组件拖拽事件是否符合开发规则和是否破坏组件节点结构树;若符合开发规则并不会破坏组件节点结构树,则生成新的抽象语法树;若不符合开发规则和/或会破坏组件节点结构树,则停止生成新的抽象语法树并发出警告信息。
104.在一种可能的实施方式中,所述代码更新模块604,还用于存储所述新的可执行源代码,并更新版本号。
105.本技术实施方式还提供一种与前述实施方式所提供的方法对应的电子设备。请参考图7,其示出了本技术的一些实施方式所提供的一种电子设备的示意图。所述电子设备20可以包括:处理器200,存储器201,总线202和通信接口203,所述处理器200、通信接口203和存储器201通过总线202连接;所述存储器201中存储有可在所述处理器200上运行的计算机程序,所述处理器200运行所述计算机程序时执行本技术前述任一实施方式所提供的方法。
106.其中,存储器201可能包含高速随机存取存储器(ram:random access memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个物理端口203(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网、广域网、本地网、城域网等。
107.总线202可以是isa总线、pci总线或eisa总线等。所述总线可以分为地址总线、数据总线、控制总线等。其中,存储器201用于存储程序,所述处理器200在接收到执行指令后,执行所述程序,前述本技术实施例任一实施方式揭示的所述方法可以应用于处理器200中,或者由处理器200实现。
108.处理器200可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器200中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器200可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(dsp)、专用
集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器201,处理器200读取存储器201中的信息,结合其硬件完成上述方法的步骤。
109.本技术实施例提供的电子设备与本技术实施例提供的方法出于相同的发明构思,具有与其采用、运行或实现的方法相同的有益效果。
110.本技术实施方式还提供一种与前述实施方式所提供的方法对应的计算机可读存储介质,请参考图8,其示出的计算机可读存储介质为光盘30,其上存储有计算机程序(即程序产品),所述计算机程序在被处理器运行时,会执行前述任意实施方式所提供的方法。
111.需要说明的是,所述计算机可读存储介质的例子还可以包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
112.本技术的上述实施例提供的计算机可读存储介质与本技术实施例提供的方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。
113.需要说明的是:
114.在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备有固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本技术也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本技术的内容,并且上面对特定语言所做的描述是为了披露本技术的最佳实施方式。
115.在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本技术的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
116.类似地,应当理解,为了精简本技术并帮助理解各个发明方面中的一个或多个,在上面对本技术的示例性实施例的描述中,本技术的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本技术要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本技术的单独实施例。
117.本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何
组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
118.此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本技术的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
119.本技术的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本技术实施例的虚拟机的创建装置中的一些或者全部部件的一些或者全部功能。本技术还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本技术的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
120.应该注意的是上述实施例对本技术进行说明而不是对本技术进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本技术可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
121.以上所述,仅为本技术较佳的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)等非易失性存储介质,或随机存储记忆体(random access memory,ram)等。
122.以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
123.以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
技术特征:
1.一种低代码开发方法,其特征在于,所述方法包括:低代码平台引擎监听到组件拖拽启动事件时,判断所述组件拖拽启动事件是否为首次监听到;若不是首次监听到,则读取当前平台页面的可执行源代码,并解析所述可执行源代码得到抽象语法树;根据所述抽象语法树生成组件节点结构树和文件模型,并根据所述组件节点结构树和文件模型生成平台页面,以供用户拖拽;待监听到组件拖拽事件后,根据所述组件拖拽事件的组件、页面布局和版本号生成新的抽象语法树,再根据新的抽象语法树生成新的可执行源代码并运行。2.如权利要求1所述的方法,其特征在于,若所述组件拖拽启动事件为首次监听到,所述方法还包括:获取组件拖拽启动事件的组件、页面布局和版本号;根据所述组件、页面布局和版本号生成所有页面对应的组件节点结构树和文件模型;根据所述所有页面对应的组件节点结构树和文件模型生成抽象语法树;根据所述抽象语法树生成可执行源代码并运行,存储所述可执行源代码。3.如权利要求2所述的方法,其特征在于,所述根据所述组件、页面布局和版本号生成所有页面对应的组件节点结构树和文件模型,包括:根据所述组件、页面布局和版本号基于文档对象化模型树生成组件节点结构树和文件模型。4.如权利要求1所述的方法,其特征在于,所述解析所述可执行源代码得到抽象语法树之后,所述方法还包括:遍历所述抽象语法树添加关键点标记,所述关键点标记用于维持所述抽象语法树的结构不变。5.如权利要求1所述的方法,其特征在于,所述待监听到组件拖拽事件后根据所述组件拖拽事件的组件、页面布局和版本号生成新的抽象语法树,所述方法还包括:根据所述组件拖拽事件的组件、页面布局和版本号校验所述组件拖拽事件是否符合开发规则和是否破坏组件节点结构树;若符合开发规则并不会破坏组件节点结构树,则生成新的抽象语法树;若不符合开发规则和/或会破坏组件节点结构树,则停止生成新的抽象语法树并发出警告信息。6.如权利要求1所述的方法,其特征在于,所述根据新的抽象语法树生成新的可执行源代码并运行之后,所述方法还包括:存储所述新的可执行源代码,并更新版本号。7.一种低代码开发系统,其特征在于,所述系统包括:判断模块,用于低代码平台引擎监听到组件拖拽启动事件时,判断所述组件拖拽启动事件是否为首次监听到;抽象语法树还原模块,用于若不是首次监听到,则读取当前平台页面的可执行源代码,并解析所述可执行源代码得到抽象语法树;页面还原模块,用于根据所述抽象语法树生成组件节点结构树和文件模型,并根据所
述组件节点结构树和文件模型生成平台页面,以供用户拖拽;代码更新模块,用于待监听到组件拖拽事件后,根据所述组件拖拽事件的组件、页面布局和版本号生成新的抽象语法树,再根据新的抽象语法树生成新的可执行源代码并运行。8.如权利要求7所述的系统,其特征在于,所述系统还包括:信息获取模块,用于获取组件拖拽启动事件的组件、页面布局和版本号;抽象语法树生成模块,用于根据所述组件、页面布局和版本号生成所有页面对应的组件节点结构树和文件模型;根据所述所有页面对应的组件节点结构树和文件模型生成抽象语法树;代码执行模块,用于根据所述抽象语法树生成可执行源代码并运行,存储所述可执行源代码。9.一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器运行所述计算机程序时执行以实现如权利要求1-6任一项所述的方法。10.一种计算机可读存储介质,其特征在于,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现如权利要求1-6任一项所述的方法。
技术总结
本发明涉及一种低代码开发方法、系统、设备和可读存储介质,所述方法包括:低代码平台引擎监听到组件拖拽启动事件时,判断所述组件拖拽启动事件是否为首次监听到;若不是首次监听到,则读取当前平台页面的可执行源代码,并解析所述可执行源代码得到抽象语法树;根据所述抽象语法树生成组件节点结构树和文件模型,并根据所述组件节点结构树和文件模型生成平台页面,以供用户拖拽;待监听到组件拖拽事件后,根据所述组件拖拽事件的组件、页面布局和版本号生成新的抽象语法树,再根据新的抽象语法树生成新的可执行源代码并运行。优化了源码管理方式,适应于快速迭代的项目,可多次快速建立平台,并对于频繁的项目更改提供支持。并对于频繁的项目更改提供支持。并对于频繁的项目更改提供支持。
技术研发人员:贾鹏辉
受保护的技术使用者:平安付科技服务有限公司
技术研发日:2023.03.14
技术公布日:2023/7/18
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
