CN117785160B - 一种低代码应用的行为逻辑开发调试方法、系统及装置 - Google Patents
一种低代码应用的行为逻辑开发调试方法、系统及装置 Download PDFInfo
- Publication number
- CN117785160B CN117785160B CN202410218961.3A CN202410218961A CN117785160B CN 117785160 B CN117785160 B CN 117785160B CN 202410218961 A CN202410218961 A CN 202410218961A CN 117785160 B CN117785160 B CN 117785160B
- Authority
- CN
- China
- Prior art keywords
- code
- debugging
- behavior
- logic
- dsl
- 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.)
- Active
Links
- 238000011161 development Methods 0.000 title claims abstract description 70
- 238000000034 method Methods 0.000 title claims abstract description 57
- 230000003542 behavioural effect Effects 0.000 claims abstract description 64
- 238000010586 diagram Methods 0.000 claims abstract description 18
- 230000006870 function Effects 0.000 claims abstract description 13
- 238000013507 mapping Methods 0.000 claims description 30
- 238000012545 processing Methods 0.000 claims description 9
- 230000001419 dependent effect Effects 0.000 claims description 8
- 238000004891 communication Methods 0.000 claims description 6
- 230000001360 synchronised effect Effects 0.000 claims description 4
- 238000012795 verification Methods 0.000 claims description 3
- 238000012544 monitoring process Methods 0.000 claims description 2
- 238000004806 packaging method and process Methods 0.000 claims description 2
- 238000004321 preservation Methods 0.000 claims description 2
- 238000002408 directed self-assembly Methods 0.000 description 79
- 230000008569 process Effects 0.000 description 8
- 238000013461 design Methods 0.000 description 3
- 239000000725 suspension Substances 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Abstract
本发明提出一种低代码应用的行为逻辑开发调试方法、系统及装置,包括步骤S1:编辑行为逻辑节点;步骤S2:行为逻辑流程图数据操作与行为DSL代码生成;步骤S3:通过低代码平台编译应用程序,遍历低代码应用的行为DSL文件,对每一个行为DSL进行编译;步骤S4:行为逻辑的解析与转换;步骤S5:部署低代码应用程序,启动服务,开启浏览器调试模式,开始行为逻辑调试;步骤S6:行为逻辑调试。本发明提供了强大的调试功能,包括断点设置和执行流程控制,允许开发人员精准定位到代码中的错误或逻辑不符合预期的地方,通过集成的行为逻辑流程图和DSL代码编辑器,开发人员可以方便地访问和修改代码,从而更快速地解决行为逻辑问题。
Description
技术领域
本发明涉及软件开发与工程领域,具体涉及一种低代码应用的行为逻辑开发调试方法、系统及装置。
背景技术
传统的软件开发过程通常需要大量的编码和开发工作,这对于业务需求迅速变化和时间敏感的项目来说可能效率较低。低代码开发技术的出现是为了解决这些挑战。它提供了一种更简化、更快速的应用开发方法,使开发人员能够使用图形化界面和少量的编码来创建应用程序。低代码开发中应用程序的逻辑交互开发是低代码开发中相对比较困难的部分,需要开发人员具备一定的开发能力。
行为逻辑交互开发中一般通过可视化拖放界面设计、事件与行为设置、规则引擎、数据绑定等方式进行开发,这部分灵活度比较高,因此也会容易产生错误,所以一般需要对应的调试器,帮助开发人员快速定位错误,提高开发效率。
目前低代码开发调试器一般内置在低代码开发平台,通过错误校验、输出日志等方式进行调试,缺乏直观的调试界面和功能,使得开发人员在调试复杂的行为逻辑时难以准确定位和解决问题;低代码开发平台通常对调试能力施加一些限制。例如,不能在特定的组件或事件中设置断点,不能单步执行或跟踪代码的执行流程。这些限制会限制开发人员对应用程序的深入调试,增加调试的复杂性和困难度;低代码开发平台往往在错误信息的反馈上比较简单和模糊。当应用程序出现错误时,开发人员只能获得一般性的错误提示,而无法得知具体的错误原因和位置。这给调试过程带来了困扰,需要花费更多的时间和精力来定位和修复问题。低代码开发平台通常缺乏有效的模拟和测试环境。这使得开发人员很难在真实环境之外进行行为逻辑的开发和调试。缺乏合适的测试环境会导致开发人员无法全面地测试应用程序的各种功能和场景,增加了发布潜在错误的风险。
发明内容
为克服现有技术的不足,本发明提出一种低代码应用的行为逻辑开发调试方法、系统及装置,提供了强大的调试功能,包括断点设置和执行流程控制,允许开发人员精准定位到代码中的错误或逻辑不符合预期的地方。
为实现上述目的,本发明提供一种低代码应用的行为逻辑开发调试方法,包括:
步骤S1:编辑行为逻辑节点;
步骤S2:行为逻辑流程图数据操作与行为DSL代码生成;
步骤S3:通过低代码平台编译应用程序,遍历低代码应用的行为DSL文件,对每一个行为DSL进行编译;
步骤S4:行为逻辑的解析与转换;
步骤S5:部署低代码应用程序,启动服务,开启浏览器调试模式,开始行为逻辑调试;
步骤S6:行为逻辑调试。
进一步地,步骤S1具体为添加编辑行为逻辑节点到流程图,包括处理用户输入、表单验证、控制页面元素状态、发送请求给后端服务、给变量赋值,以及逻辑判断和循环。
进一步地,步骤S2具体为:
步骤S21:保存流程图为树数据结构,生成抽象语法树;
步骤S22:利用babel编译工具生成对应的行为DSL代码;
步骤S23:直接编辑行为DSL代码,解析为抽象语法树,转换为JSON格式,生成行为逻辑流程图。
进一步地,步骤S4包括:
步骤S41:利用babel编译工具解析行为DSL代码;
步骤S42:创建对应的抽象语法树,替换节点成TypeScript代码节点;
步骤S43:转换成async/await异步模式,搜集依赖资源,添加行为DSL所需依赖节点;
步骤S44:输出行为逻辑函数,生成中间态TypeScript语言代码;
步骤S45:编译生成中间态代码和映射数据,打包编译输出页面和可执行代码。
进一步地,步骤S6包括:
步骤S61:识别和选择调试的行为逻辑;
步骤S62:设置和同步调试断点,计算代码位置数据;
步骤S63:使用浏览器Debugger API进行调试操作,如设置断点、继续、下一步、进入等;
步骤S64:监听调试暂停事件,展示断点位置和高亮展示;
步骤S65:进行调试控制,包括不同逻辑节点的进入操作;
步骤S66:展示运行时的所有变量值,识别和展示DSL中的变量;
步骤S67:关闭调试线程,让应用程序正常执行。
一种低代码应用的行为逻辑开发调试系统包括:
低代码开发平台逻辑行为开发模块和低代码开发平台逻辑行为调试插件模块;
进一步地,低代码开发平台逻辑行为开发模块包括行为逻辑流程图编辑器、DSL代码生成器、编译器和部署器;
所述行为逻辑流程图编辑器用于提供一个图形化界面供开发人员绘制和编辑行为逻辑流程图, 流程图可保存为树数据结构,生成对应的抽象语法树(AST);
所述DSL代码生成器基于AST生成对应的行为DSL代码,允许开发人员编辑DSL,再解析生成AST;
所述编译器将所有行为DSL代码编译生成中间态代码和映射数据文件,结合应用页面和中间态代码,编译输出最终浏览器可执行代码(JavaScript)和映射数据文件;
所述部署器将编译好的代码和文件部署到指定服务器,使其对用户可访问。
进一步地,低代码开发平台逻辑行为调试插件模块包括插件接口、调试窗口模块、断点处理模块和服务器通信模块;
所述插件接口用于识别低代码应用,并弹出调试窗口,支持在逻辑流程图或代码编辑器上添加断点,同步展示;
所述调试窗口模块展示应用程序逻辑行为列表、行为DSL详情、逻辑流程图、代码编辑器等,行为DSL变量模块展示运行时变量值,调试控制模块控制调试线程后续操作;
所述断点处理模块利用映射数据计算实际断点位置,在浏览器内部设置断点,暂停时高亮展示断点位置;
所述服务器通信模块与服务器端进行通信,以获取实时的调试信息和发送控制指令。
一种低代码应用的行为逻辑开发调试装置,包括以下组件:
行为逻辑流程图编辑器装置,用于提供绘制和编辑行为逻辑流程图的功能,能够将流程图保存为树数据结构并生成抽象语法树(AST);
DSL代码生成器装置负责基于AST生成和解析行为DSL代码;
编译器装置,用于将所有行为DSL代码编译成中间态代码和映射数据文件;输出最终浏览器可执行代码(JavaScript);
部署器装置,用于负责将编译后的代码和文件部署到服务器;
插件接口装置,用于识别低代码应用,提供调试窗口的访问入口;支持断点的添加和同步展示;
调试窗口装置,提供包括行为列表、DSL详情、流程图、代码编辑器等在内的调试界面,展示运行时变量值并提供调试控制;
断点处理装置,用于计算实际断点位置并在浏览器内部进行设置,在暂停时高亮展示断点位置;
服务器通信装置,负责与服务器端进行通信,实时获取调试信息和发送控制指令。
与现有技术相比,本发明的有益效果是:
1.本发明提供了一种低代码应用的行为逻辑开发调试方法、系统及装置,通过实时展示运行时的动态变量值,装置使开发人员能够迅速理解程序在执行过程中的状态。这有利于理解程序的运作方式并发现可能的问题。
2.本发明提供了一种低代码应用的行为逻辑开发调试方法、系统及装置,提供了强大的调试功能,包括断点设置和执行流程控制,允许开发人员精准定位到代码中的错误或逻辑不符合预期的地方。
3.本发明提供了一种低代码应用的行为逻辑开发调试方法、系统及装置, 通过集成的行为逻辑流程图和DSL代码编辑器,开发人员可以方便地访问和修改代码,从而更快速地解决行为逻辑问题。
4.本发明提供了一种低代码应用的行为逻辑开发调试方法、系统及装置,构成了一个协同工作的系统,使得开发人员在调试过程中的工作效率大大提高,能够在更短的时间内完成更多的工作。
5.本发明提供了一种低代码应用的行为逻辑开发调试方法、系统及装置,通过简化和自动化许多开发和调试过程中的任务,装置降低了整个开发周期所需的时间和人力资源,从而减少了开发调试的总体成本。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明方法流程图;
图2是本发明提供的一种低代码平台行为DSL开发调试流程图;
图3为本发明中提供的行为DSL开发模块流程图;
图4为本发明中提供的解析行为DSL并渲染行为流程图的过程图示;
图5为本发明中提供的在调试模块中设置DSL断点转化为浏览器内部断点的示意图;
图6为本发明中提供的调试模块监听浏览器断点事件,并在行为流程图展示的过程图示。
具体实施方式
下面将结合附图、通过对本发明的优选实施方式的描述,更加清楚、完整地阐述本发明的技术方案。
根据本发明的实施例,提供了一种低代码应用的行为逻辑开发调试系统、方法及装置,应用于低代码平台。如图1所示具体为:
步骤S1:编辑行为逻辑节点;
步骤S2:行为逻辑流程图数据操作与行为DSL代码生成;
步骤S3:通过低代码平台编译应用程序,遍历低代码应用的行为DSL文件,对每一个行为DSL进行编译;
步骤S4:行为逻辑的解析与转换;
步骤S5:部署低代码应用程序,启动服务,开启浏览器调试模式,开始行为逻辑调试;
步骤S6:行为逻辑调试。
如图2所示,本发明实施例提供一种针对低代码应用的行为逻辑开发调试系统、方法及装置,应用于低代码平台。包括:低代码开发平台行为逻辑开发模块和行为逻辑调试模块。
低代码开发平台行为开发模块,包括:
基于行为逻辑流程图,在存储设备上行为逻辑流程图保存为树数据结构,遍历所述树数据,生成对应的抽象语法树。基于行为逻辑流程图的抽象语法树,生成对应的行为DSL代码;
开发人员编辑行为DSL,开发模块解析所述行为DSL生成抽象语法树。针对该抽象语法树,把抽象语法树转换为树数据结构,深度遍历该树数据,生成行为逻辑流程图;
开发模块对所有行为DSL代码编译生成中间态代码和映射数据文件;
结合应用页面和所有行为逻辑的中间态代码,编译输出最终浏览器可执行代码和映射数据文件,并部署到服务;
遍历所有行为DSL,对每一个行为DSL进行编译,生成对应的中间态代码文件和映射数据文件,包括:
解析行为DSL代码,创建对应的抽象语法树,通过映射算法遍历抽象树节点并替换成中间态代码节点;
遍历行为抽象语法树,搜集依赖资源,在顶部节点上添加依赖资源节点;
为抽象树添加最后一个节点,输出行为所述逻辑函数;
基于抽象树生成中间态代码文件和第一道映射数据文件;
结合应用页面和中间态代码,编译输出最终浏览器可执行代码(JS语言)和映射数据文件,部署到服务上,包括;
低代码开发平台结合前端页面和中间态代码,安装中间态代码中的三方依赖库,最终整合在一起编译输出针对浏览器的可执行页面和代码(JavaScript语言)和映射数据文件;
低代码开发平台部署低代码应用,启动服务用于用户访问低代码应用;
另一方面,低代码开发平台行为逻辑调试插件模块,包括:
低代码调试插件模块支持调试应用程序行为逻辑DSL;
调试模块弹出调试窗口,支持开发人员添加断点;
当暂停在断点处暂停后,支持开发人员操作控制后续调试步骤;
通过浏览器访问低代码应用后,低代码调试插件支持调试低代码应用逻辑行为DSL,包括;
低代码调试插件识别当前应用是否为低代码应用,当识别为低代码应用时,高亮展示调试插件;
插件高亮时点击调试插件,则弹出调试窗口;调试窗口里展示调试界面,包括:
调试界面左侧展示,所有应用程序逻辑行为列表;
调试界面右侧展示,选中的行为DSL详情,包括行为DSL逻辑流程图,以及行为DSL代码编辑器;
调试界面底部为行为DSL调试面板,包括调试控制模块,以及行为DSL变量模块;
行为DSL详情中可对行为DSL添加断点,包括:
对行为DSL逻辑流程图上的节点添加断点,在行为DSL代码编辑器上的对应代码行数同步展示断点;
在行为DSL代码编辑器上对DSL代码添加断点,在对应行为DSL逻辑流程图上同步展示断点;
在行为DSL代码中添加断点时,利用上述映射数据,计算出可执行代码的实际断点位置,在浏览器内部在可执行代码断点位置设置断点,低代码应用程序运行到断点处时,发送通知给调试插件,调试插件捕获到该通知,调试插件在行为DSL中高亮展示断点位置,包括:
低代码应用程序运行到断点处时暂停时,行为逻辑流程图中在断点处节点上高亮展示;
低代码应用程序运行到断点处时暂停时,行为DSL代码编辑器中高亮展示对应的DSL代码;
低代码应用程序运行到断点处时,DSL变量模块展示,包括:
行为DSL变量模块识别出所述行为DSL里的所用变量,并按照树结构展示变量的运行时值;
当变量为JavaScript对象类型时,可展开展示该对象,直到所有属性值为JavaScript基础类型的值;
隐藏其他与该行为DSL无关的临时变量和闭包变量,以及其他DSL中未用到的变量属性;
低代码应用程序暂停在断点处时,调试控制模块可控制调试线程后续操作,包括:
应用程序运行后在断点处暂停后,进行“下一步”操作,程序执行到下一个节点后暂停;
应用程序运行后在断点处暂停后,进行“继续”操作,程序执行到结束;
当断点节点为if条件节点时,可通过选择进入菜单,程序进入判定为true的分支,并在分支上第一个节点暂停;
当断点节点为for循环节点时,可通过选择进入菜单,程序进入for循环体,并在循环体第一个节点暂停;
当断点节点为while循环节点时,可通过选择进入菜单,程序进入while循环体,并在循环体第一个节点暂停;
当断点节点为switch节点时,可通过选择进入菜单,程序进入对应的case分支,并在分支上第一个节点暂停
基于低代码应用行为开发模块进行行为逻辑开发方法,包括以下步骤:
开发人员在行为逻辑流程图上添加编辑行为逻辑节点,包括:处理用户输入数据、表单验证、控制页面元素状态、发送请求给后端服务获取数据或给后端服务提交数据等、给变量赋值,if条件判断逻辑,switch条件判断逻辑,for循环逻辑,while循环逻辑等;
在存储设备上行为逻辑流程图数据保存为树数据结构,遍历所述行为逻辑流程图树数据,生成对应的抽象语法树。基于所述流程图抽象语法树,利用babel编译工具的generator方法生成对应的行为DSL代码;
另一方面,低代码开发人员也可直接编辑行为DSL代码,利用babel编译工具的parse方法解析所述行为DSL代码生成抽象语法树。基于所述抽象语法树,把抽象语法树转换为JSON格式树数据结构,深度遍历所述JSON格式树数据生成行为逻辑流程图;
保存行为逻辑流程图之后,开发人员通过低代码平台开始编译应用程序;
如图3所示,行为逻辑开发模块开始遍历所有低代码应用的行为DSL文件,对每一个行为DSL单独进行编译,具体操作步骤为:
行为逻辑开发模块利用babel编译工具parse方法解析所述行为DSL代码,创建对应的抽象语法树,利用babel编译工具的traverse方法遍历抽象树,通过映射算法把节点替换成中间态TypeScript语言代码节点,把行为DSL函数转换成async/await异步模式。
遍历所述行为抽象语法树时,搜集依赖资源,在顶部添加行为DSL所需依赖节点;
为抽象语法树添加最后一个节点,输出所述行为逻辑函数;
基于抽象语法树,利用babel编译工具的generator方法生成中间态TypeScript语言代码和第一道映射数据,保存到对应的文件中;
行为逻辑开发模块按照上述步骤,为所有行为逻辑编译生成中间态TypeScript语言代码和第一道映射数据,并结合应用前端页面和中间态TypeScript语言代码,安装中间态TypeScript语言代码的所需三方依赖库,利用webpack打包编译工具最终编译输出针对浏览器的页面(HTML语言)和可执行代码(JavaScript语言)和第二道映射数据文件;
低代码开发平台部署低代码应用程序,启动服务用于用户访问低代码应用;
另一方面,开发人员利用浏览器访问低代码应用时,打开低代码调试模块插件弹窗,这时调试模块插件利用debugger.sendCommand方法给浏览器发送命令,其中method参数为Debugger.enable,开启浏览器调试模式并开始行为逻辑调试,具体操作步骤为:
如图4所示,行为DSL调试插件识别低代码应用程序里的所有行为逻辑,并展示所述行为逻辑列表;
开发人员选中所要调试的行为逻辑,行为DSL调试插件模块利用babel编译工具的parse方法解析所述行为DSL代码生成抽象语法树。基于所述抽象语法树,把抽象语法树转换为JSON格式树数据结构,深度遍历所述JSON格式树数据生成行为逻辑流程图;
在行为逻辑流程图的节点上选择节点为调试断点时,在行为DSL代码渲染器上的对应代码行数上同步展示断点;同理,在行为DSL代码编辑器上对DSL代码添加断点时,在对应行为逻辑流程图节点上同步展示调试断点;
如图5所示,在行为逻辑流程图节点上设置节点为调试断点时,计算出节点对应DSL代码断点位置,结合第一道映射数据,计算出行为中间态TypeScript代码位置数据,进一步结合第二道映射数据,计算出最终JavaScript可执行代码位置数据;
利用浏览器Debugger API,利用debugger.sendCommand方法给浏览器发送命令给可执行代码设置调试断点, 其中method命令参数为Debugger.setBreakpoint,setBreakpoint参数为所述最终JavaScript可执行代码位置数据;
如图6所示,调试插件监听应用程序调试暂停事件,当应用程序运行到调试断点处时,暂停运行并广播程序调试暂停事件,调试插件捕获到所述暂停事件,该事件中携带的数据为JS可执行代码的调试断点位置,结合第二道映射数据,计算出中间态TypeScript代码位置数据; 进一步结合第一道映射数据,计算出行为DSL代码位置数据,在对应行为DSL渲染器代码行高亮展示;进一步基于行为DSL代码位置,计算出行为流程图对应节点,高亮展示所述节点,调试线程等待开发人员的后续操作;
应用程序运行后在断点处暂停后,开发人员在调试控制模块进行后续操作,包括:
进行“继续”操作时,利用浏览器debugger.sendCommand方法给调试线程发送“继续”命令,其中method参数为Debugger.resume,调试线程继续执行直到程序结束或者遇到下一个调试断点;
进行“下一步”操作时,利用浏览器debugger.sendCommand方法给调试线程发送“下一步”命令,其中method参数为Debugger.stepOver,调试线程执行下一步操作并暂停执行;
进行“下一节点”操作时,调试控制模块基于下一个流程图节点,按照上述步骤计算出JavaScript可执行代码位置数据,利用debugger.sendCommand方法给浏览器发送命令给可执行代码设置调试断点,发送断点命令后行为调试模块监听设置调试断点事件,设置断点成功之后,利用浏览器debugger.sendCommand方法给调试线程发送“继续”命令,调试线程继续执行,并在下一个流程图节点暂停执行;
当前节点为if条件节点时,调试控制模块进行“进入”操作,利用浏览器debugger.sendCommand方法给调试线程发送“进入”命令,其中method参数为Debugger.stepInto,则调试线程继续执行,程序进入判定条件为true的分支,并在分支的第一个节点处暂停执行;
当前节点为for循环节点时,调试控制模块进行“进入”操作,利用浏览器debugger.sendCommand方法给调试线程发送“进入”命令,其中method参数为Debugger.stepInto,则调试线程继续执行,程序进入判定条件为true的分支,并在分支的第一个节点暂停;
当前节点为while循环节点时,调试控制模块进行“进入”操作,利用浏览器debugger.sendCommand方法给调试线程发送“进入”命令,其中method参数为Debugger.stepInto,则调试线程继续执行,程序进入判定条件为true的分支,并在分支的第一个节点暂停;
当前节点为switch节点时,调试控制模块进行“进入”操作,利用浏览器DebuggerAPI给调试线程发送“下一步”命令,则调试线程继续执行,程序进入判定条件为true的分支,并在分支的第一个节点暂停;
低代码应用程序运行到断点处时,利用debugger.sendCommand方法给调试线程发送命令,其中method参数为Runtime.getProperties,sendCommand回调函数参数为当前运行时的所有变量值, 并按照树结构展示变量值,包括:
调试插件的DSL变量模块识别行为DSL中的所用变量,并过滤所述当前运行时的变量和属性, 包括:当运行时变量为JavaScript对象类型(包括数组类型)时,可展开展示该对象;开发人员展开对象时,调试插件利用debugger.sendCommand方法给调试线程发送命令,其中method参数为Runtime.getProperties,获取所述变量的属性值,属性值为JavaScript对象类型时可继续展开展示,依次类推直到属性值为JavaScript基本数据类型。
步骤210: 关闭调试插件弹窗之前,利用debugger.sendCommand方法给调试线程发送命令,其中method参数为Debugger.disable,关闭调试线程以便应用程序正常执行;
在本发明所提供的实施例中,应该理解到所揭露的设备、装置和方法具有灵活性和可变性,可以通过其他方式进行实现。以下是对上述观点的进一步丰富:装置实施方式的灵活性:所描述的装置实施例仅为示意性的,旨在说明该发明的基本原理和功能。在实际实施时,可以根据需求和具体情况进行不同的模块划分和组合方式。模块的划分只是一种逻辑功能划分,可以根据实际需求和系统设计的要求进行灵活调整。模块的物理实现方式:作为分离部件说明的模块可以是物理上分开的,也可以是集成在同一物理单元中。这意味着所描述的模块可以位于同一设备或分布在不同的网络单元上。具体的实现方式可以根据实际需求和系统架构的要求进行选择。部分或全部模块的选择:根据实际需要,可以选择部分或全部模块来实现本发明的目的。这意味着在实际应用中,可以根据具体需求和系统要求选择性地引入和使用该发明的各个模块,以满足特定的需求和目标。本发明提供的实施例具有灵活性和可变性,可以根据具体情况和实际需求进行不同的实现方式。模块划分、物理实现方式和模块的选择都可以根据系统要求和设计考虑进行调整和优化,以实现本发明的目的为准。
上述具体实施方式仅仅对本发明的优选实施方式进行描述,而并非对本发明的保护范围进行限定。在不脱离本发明设计构思和精神范畴的前提下,本领域的普通技术人员根据本发明所提供的文字描述、附图对本发明的技术方案所作出的各种变形、替代和改进,均应属于本发明的保护范畴。本发明的保护范围由权利要求确定。
Claims (6)
1.一种低代码应用的行为逻辑开发调试方法,其特征在于,包括:
步骤S1:编辑行为逻辑节点;
步骤S2:行为逻辑流程图数据操作与行为DSL代码生成;步骤S2具体为:
步骤S21:保存流程图为树数据结构,生成抽象语法树;
步骤S22:利用babel编译工具生成对应的行为DSL代码;
步骤S23:直接编辑行为DSL代码,解析为抽象语法树,转换为JSON格式,生成行为逻辑流程图;
步骤S3:通过低代码平台编译应用程序,遍历低代码应用的行为DSL文件,对每一个行为DSL进行编译;
步骤S4:行为逻辑的解析与转换;包括:
步骤S41:利用babel编译工具解析行为DSL代码;
步骤S42:创建对应的抽象语法树,替换节点成TypeScript代码节点;
步骤S43:转换成async/await异步模式,搜集依赖资源,添加行为DSL所需依赖节点;
步骤S44:输出行为逻辑函数,生成中间态TypeScript语言代码;
步骤S45:编译生成中间态代码和映射数据,打包编译输出页面和可执行代码
步骤S5:部署低代码应用程序,启动服务,开启浏览器调试模式,开始行为逻辑调试;
步骤S6:行为逻辑调试,包括:
步骤S61:识别和选择调试的行为逻辑;
步骤S62:设置和同步调试断点,计算代码位置数据;
步骤S63:使用浏览器Debugger API进行调试操作,如设置断点、继续、下一步、进入等;
步骤S64:监听调试暂停事件,展示断点位置和高亮展示;
步骤S65:进行调试控制,包括不同逻辑节点的进入操作;
步骤S66:展示运行时的所有变量值,识别和展示DSL中的变量;
步骤S67:关闭调试线程,让应用程序正常执行。
2.根据权利要求1所述的一种低代码应用的行为逻辑开发调试方法,其特征在于,步骤S1具体为添加编辑行为逻辑节点到流程图,包括处理用户输入、表单验证、控制页面元素状态、发送请求给后端服务、给变量赋值,以及逻辑判断和循环。
3.一种低代码应用的行为逻辑开发调试系统,适用于权利要求1-2中任一项所述的一种低代码应用的行为逻辑开发调试方法,其特征在于,包括:
低代码开发平台逻辑行为开发模块和低代码开发平台逻辑行为调试插件模块。
4.根据权利要求3所述的一种低代码应用的行为逻辑开发调试系统,其特征在于,低代码开发平台逻辑行为开发模块包括行为逻辑流程图编辑器、DSL代码生成器、编译器和部署器;
所述行为逻辑流程图编辑器用于提供一个图形化界面供开发人员绘制和编辑行为逻辑流程图, 流程图可保存为树数据结构,生成对应的抽象语法树;
所述DSL代码生成器基于抽象语法树生成对应的行为DSL代码,允许开发人员编辑DSL,再解析生成抽象语法树;
所述编译器将所有行为DSL代码编译生成中间态代码和映射数据文件,结合应用页面和中间态代码,编译输出最终浏览器可执行代码和映射数据文件;
所述部署器将编译好的代码和文件部署到指定服务器,使其对用户可访问。
5.根据权利要求3所述的一种低代码应用的行为逻辑开发调试系统,其特征在于,低代码开发平台逻辑行为调试插件模块包括插件接口、调试窗口模块、断点处理模块和服务器通信模块;
所述插件接口用于识别低代码应用,并弹出调试窗口,支持在逻辑流程图或代码编辑器上添加断点,同步展示;
所述调试窗口模块展示应用程序逻辑行为列表、行为DSL详情、逻辑流程图、代码编辑器等,行为DSL变量模块展示运行时变量值,调试控制模块控制调试线程后续操作;
所述断点处理模块利用映射数据计算实际断点位置,在浏览器内部设置断点,暂停时高亮展示断点位置;
所述服务器通信模块与服务器端进行通信,以获取实时的调试信息和发送控制指令。
6.一种低代码应用的行为逻辑开发调试装置,适用于权利要求3-5中任一项所述的一种低代码应用的行为逻辑开发调试系统,其特征在于,包括以下组件:
行为逻辑流程图编辑器装置,用于提供绘制和编辑行为逻辑流程图的功能,能够将流程图保存为树数据结构并生成抽象语法树;
DSL代码生成器装置负责基于抽象语法树生成和解析行为DSL代码;
编译器装置,用于将所有行为DSL代码编译成中间态代码和映射数据文件;输出最终浏览器可执行代码;
部署器装置,用于负责将编译后的代码和文件部署到服务器;
插件接口装置,用于识别低代码应用,提供调试窗口的访问入口;支持断点的添加和同步展示;
调试窗口装置,提供包括行为列表、DSL详情、流程图、代码编辑器等在内的调试界面,展示运行时变量值并提供调试控制;
断点处理装置,用于计算实际断点位置并在浏览器内部进行设置,在暂停时高亮展示断点位置;
服务器通信装置,负责与服务器端进行通信,实时获取调试信息和发送控制指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410218961.3A CN117785160B (zh) | 2024-02-28 | 一种低代码应用的行为逻辑开发调试方法、系统及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410218961.3A CN117785160B (zh) | 2024-02-28 | 一种低代码应用的行为逻辑开发调试方法、系统及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117785160A CN117785160A (zh) | 2024-03-29 |
CN117785160B true CN117785160B (zh) | 2024-05-14 |
Family
ID=
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007114953A2 (en) * | 2006-04-04 | 2007-10-11 | Insightful Corporation | Method and system for providing a visual debugger for an interpreted statistical language |
EP2434396A1 (en) * | 2010-09-24 | 2012-03-28 | Group Business Software AG | Automatic synchronous-to-asynchronous software application converter |
CN114296779A (zh) * | 2021-12-27 | 2022-04-08 | 中电九天智能科技有限公司 | 一种基于spa的代码编辑方法及系统 |
CN115202648A (zh) * | 2022-09-06 | 2022-10-18 | 浩鲸云计算科技股份有限公司 | 一种基于领域专用语言的低代码前端视图层实现的方法 |
CN115951875A (zh) * | 2022-12-28 | 2023-04-11 | 科大国创云网科技有限公司 | 一种DSL语言与Vue代码互相转换的解决方法及系统 |
CN117093224A (zh) * | 2023-08-28 | 2023-11-21 | 浪潮通用软件有限公司 | 一种支持TypeScript智能感知的代码编辑方法、设备及介质 |
CN117234470A (zh) * | 2023-10-08 | 2023-12-15 | 开物数智(安徽)智能科技有限公司 | 一种基于低代码平台的跨端表单开发系统及方法 |
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007114953A2 (en) * | 2006-04-04 | 2007-10-11 | Insightful Corporation | Method and system for providing a visual debugger for an interpreted statistical language |
EP2434396A1 (en) * | 2010-09-24 | 2012-03-28 | Group Business Software AG | Automatic synchronous-to-asynchronous software application converter |
CN114296779A (zh) * | 2021-12-27 | 2022-04-08 | 中电九天智能科技有限公司 | 一种基于spa的代码编辑方法及系统 |
CN115202648A (zh) * | 2022-09-06 | 2022-10-18 | 浩鲸云计算科技股份有限公司 | 一种基于领域专用语言的低代码前端视图层实现的方法 |
CN115951875A (zh) * | 2022-12-28 | 2023-04-11 | 科大国创云网科技有限公司 | 一种DSL语言与Vue代码互相转换的解决方法及系统 |
CN117093224A (zh) * | 2023-08-28 | 2023-11-21 | 浪潮通用软件有限公司 | 一种支持TypeScript智能感知的代码编辑方法、设备及介质 |
CN117234470A (zh) * | 2023-10-08 | 2023-12-15 | 开物数智(安徽)智能科技有限公司 | 一种基于低代码平台的跨端表单开发系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2668973C2 (ru) | Отладка машинного кода путем перехода от исполнения в собственном режиме к исполнению в интерпретируемом режиме | |
KR100248376B1 (ko) | 동적-비주얼 통합 병렬 디버깅 장치 및 디버깅 방법 | |
US8327340B2 (en) | Executable high-level trace file generation method | |
WO2007139840A2 (en) | Method and tool for automatic verification of software protocols | |
EP1089172A2 (en) | Compiler and method for compiling specification language into implementation language | |
CN111367511B (zh) | 一种仿真模型接口适配开发系统及其工作方法 | |
JPH07182194A (ja) | コンピュータ装置で試験機能を選択的に実行するための試験ドライバを自動的に発生する方法および装置 | |
Wu et al. | Grammar‐driven generation of domain‐specific language debuggers | |
Nakagawa et al. | Towards a Reference Architecture for Software Testing Tools. | |
Sentilles et al. | Save-ide-a tool for design, analysis and implementation of component-based embedded systems | |
CN104317580A (zh) | 虚拟试验应用集成开发环境 | |
Van Mierlo | A multi-paradigm modelling approach for engineering model debugging environments | |
Samuel et al. | A novel test case design technique using dynamic slicing of UML sequence diagrams | |
Zhang et al. | Automated unit testing intelligent agents in PDT | |
CN117785160B (zh) | 一种低代码应用的行为逻辑开发调试方法、系统及装置 | |
Ahmadi et al. | mCUTE: a model-level concolic unit testing engine for UML state machines | |
CN117785160A (zh) | 一种低代码应用的行为逻辑开发调试方法、系统及装置 | |
JP3196675B2 (ja) | 言語処理方式 | |
CN114281709A (zh) | 一种单元测试方法、系统、电子设备及存储介质 | |
Lutz et al. | Testing tools (software) | |
CN113434387A (zh) | 一种基于脚本驱动的自动化测试工具及系统 | |
Kacsuk et al. | Systematic Debugging of Parallel Programs in DIWIDE Based on Collective Breakpoints and Macrosteps1 | |
JP2004287869A (ja) | プログラム実行監視装置および方法 | |
Rüegg et al. | Interactive transformations for visual models. | |
Gambi et al. | Action-based test carving for android apps |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |