一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种代码开发方法、服务器及存储介质与流程

2022-06-02 13:15:04 来源:中国专利 TAG:


1.本技术实施例涉及程序技术领域,具体涉及一种代码开发方法、服务器及存储介质。


背景技术:

2.低代码是一种可视化应用开发方法,使用低代码开发平台进行低代码开发,能够减轻非技术开发人员的代码开发压力,帮助其免去代码编写工作,同时也为专业的代码开发人员提供支持。
3.低代码开发需要具有较高的灵活性,因此如何对代码开发方案进行优化,以提升低代码开发的灵活性,成为了本领域技术人员亟需解决的技术问题。


技术实现要素:

4.有鉴于此,本技术实施例提供一种代码开发方法、服务器及存储介质,以提升低代码开发的灵活性。
5.为实现上述目的,本技术实施例提供如下技术方案。
6.第一方面,本技术实施例提供一种代码开发方法,包括:
7.向用户终端提供ui工具,所述ui工具中的用户界面展示有底层模型的底层模型组件和顶层模型的顶层模型组件;
8.获取用户终端发送的底层模型的定义信息以及顶层模型的定义信息;所述底层模型和顶层模型的定义信息基于用户在所述用户界面的操作确定;
9.根据所述底层模型的定义信息,生成底层模型;以及根据所述顶层模型的定义信息,生成顶层模型;
10.生成所述底层模型的代码和所述顶层模型的代码,并且至少基于所述底层模型和所述顶层模型的映射关系,将所述底层模型和所述顶层模型的代码进行关联,以得到工程结构的代码;
11.将所述工程结构的代码发送给所述用户终端,以便所述用户终端基于所述工程结构的代码进行代码开发。
12.第二方面,本技术实施例提供一种代码开发方法,包括:
13.加载ui工具,显示所述ui工具中的用户界面,所述用户界面展示有底层模型的底层模型组件和顶层模型的顶层模型组件;
14.响应于用户在所述用户界面的操作,确定底层模型的定义信息以及顶层模型的定义信息;
15.将所述底层模型的定义信息以及顶层模型的定义信息发送给服务器,以便服务器生成底层模型和顶层模型;
16.获取服务器发送的工程结构的代码并展示;所述工程结构的代码至少基于所述底层模型和所述顶层模型的映射关系,将所述底层模型和所述顶层模型的代码进行关联后得
到;
17.基于所述工程结构的代码进行代码开发。
18.第三方面,本技术实施例提供一种服务器,包括至少一个存储器和至少一个处理器,所述存储器存储一条或多条计算机可执行指令,所述处理器调用所述一条或多条计算机可执行指令,以执行如上述第一方面所述的代码开发方法。
19.第四方面,本技术实施例提供一种存储介质,所述存储介质存储一条或多条计算机可执行指令,所述一条或多条计算机可执行指令被执行时实现如上述第一方面所述的代码开发方法,或者,如上述第二方面所述的代码开发方法。
20.第五方面,本技术实施例提供一种计算机程序,所述计算机程序被执行时实现如上述第一方面所述的代码开发方法,或者,如上述第二方面所述的代码开发方法。
21.本技术实施例提供的代码开发方法中,服务器可向用户提供用于定义模型的ui工具,并且ui工具的用户界面展示有底层模型的底层模型组件和顶层模型的顶层模型组件,从而支持用户定义底层模型和顶层模型。在用户定义底层模型和顶层模型之后,服务器可获得用户终端发送的底层模型的定义信息以及顶层模型的定义信息;从而,服务器可基于底层模型的定义信息,生成底层模型,基于顶层模型的定义信息,生成顶层模型。服务器在生成底层模型和顶层模型之后,可以生成所述底层模型的代码和所述顶层模型的代码,并且至少基于所述底层模型和所述顶层模型的映射关系,将所述底层模型和所述顶层模型的代码进行关联,以得到工程结构的代码。所述工程结构的代码可以表达底层模型和顶层模型的全量代码,涵盖了应用系统从顶层至底层的全量代码信息,因此服务器将工程结构的代码提供给用户,可使得用户可以在该全量代码的基础上,对应用系统进行源代码方面的低代码开发,并且在低代码开发过程中,通过应用系统从顶层至底层的代码信息,实现低代码的灵活开发,实现对应用系统的深度定制,提升代码订制的能力。
22.可见,本技术实施例提供的代码开发方法支持用户定义底层模型和顶层模型,并且服务器可通过用户定义生成底层模型和顶层模型,并且向用户提供涵盖应用系统的顶层至底层的工程结构的代码,从而用户在该工程结构的代码基础上进行低代码开发,可使得用户能够基于较为全面的模型代码进行低代码开发,提升了低代码开发的灵活性,能够降低应用深度定制需求的局限性,同时提升代码订制的能力,便于后续代码调试。
附图说明
23.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
24.图1为低代码开发的过程示例图。
25.图2为本技术实施例提供的代码开发系统的结构示意图。
26.图3为本技术实施例提供的代码开发方法的流程图。
27.图4为本技术实施例提供的得到工程结构的代码的示例图。
28.图5为本技术实施例提供的代码开发方法的另一流程图。
29.图6a为本技术实施例提供的定义表单模型的示例图。
30.图6b为本技术实施例提供的定义领域模型的示例图。
31.图6c为本技术实施例提供的定义数据模型的示例图。
32.图7a为本技术实施例提供的生成模型代码和关联代码的示例图。
33.图7b为本技术实施例提供的工程结构的代码的示例。
34.图7c为本技术实施例提供的具有表单模型、领域模型和数据模型的应用架构的示例图。
35.图8a为本技术实施例提供的代码开发装置的框图。
36.图8b为本技术实施例提供的服务器的框图。
37.图9为本技术实施例提供的代码开发装置的另一框图。
具体实施方式
38.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
39.低代码开发可通过低代码开发平台与用户的交互完成,此处所指的用户可以是代码开发人员。在进行低代码开发时,不同代码开发经验的用户,能够通过低代码开发平台提供的ui(user interface,用户界面)工具,定义模型以及通过模型驱动逻辑来创建web和移动应用。具体的,在低代码开发的过程中,低代码平台采用了模型驱动的开发模式来进行代码开发,例如通过可视化建模的方式来实现软件的代码设计和生成,因此低代码开发可以追溯到模型驱动工程(mde,model-driven engineering)。需要说明的是,模型驱动工程是软件工程的一个分支,其将模型与建模拓展到软件开发的所有方面,形成建模空间,从而将工程活动建立在模型的映射和转换之上;模型驱动工程的基本原则是将模型视为实体,将所有软件产物当做模型或模型要素。
40.为便于理解低代码开发的过程,图1示例性的示出了低代码开发的过程示例图。如图1所示,在基于模型驱动进行低代码开发时,低代码开发平台可以向用户提供ui工具,从而用户可以在ui工具的用户界面上定义模型;基于用户定义的模型,低代码开发平台可以生成模型相应的代码,并将模型相应的代码提供给用户,从而用户可通过模型相应的代码进行应用系统的低代码开发。
41.然而,目前在进行低代码开发时,模型驱动通常只基于一种模型,并且通常是顶层模型(例如表单模型),这造成模型在深度订制和优化上的局限性,导致开发出来的应用系统的代码实现机制完全由低代码开发平台掌控,无法进行应用系统特殊需求的优化(例如应用系统性能方面需求的优化);同时,代码订制的能力也局限在较小的范围(例如代码订制能力通常局限在脚本等形式),较难进行调试。具体来说,表单是面向特定的使用和交互场景;而底层领域模型是业务的本身,具有更高的抽象度和复用度,比如手机交互界面和电脑网页交互界面存在不同时,就会有两种表单模型,而这两种表单模型对应的领域模型可能是相同的。在复杂的应用系统具有众多交互接口时,如果代码开发都是基于表单驱动实现,则后端非常难以复用,应用系统也无法向支持更多更灵活的业务演进。
42.可见,低代码开发时,如果模型驱动仅基于顶层模型,则用户只能在顶层模型相应
的代码下进行低代码开发,这降低了低代码开发的灵活性,会导致应用订制需求难以优化,进而使得低代码开发无法适用较为复杂的应用系统,同时难以进行代码调试。
43.基于此,本技术实施例对代码开发方案进行改进,使得模型驱动不仅基于顶层模型(例如表单模型),还基于底层模型(例如领域模型和数据模型),通过将顶层模型和底层模型的定义开放给用户,使得用户能够基于应用系统全面的模型代码进行低代码开发,提升了低代码开发的灵活性,能够降低应用深度定制需求的局限性,同时提升代码订制的能力,便于后续代码调试。
44.基于上述思路,图2示例性的示出了本技术实施例提供的代码开发系统的可选结构示意图。如图2所示,该系统可以包括:低代码开发平台210和用户终端220。
45.其中,低代码开发平台210可以是提供低代码开发服务的服务平台,例如云服务平台,低代码开发平台可以由服务器形成(例如单一服务器或者多台服务器形成的服务器群组)。在一些实施例中,低代码开发平台可以基于中台实现,例如通过中台的服务实现低代码开发平台对外提供低代码开发服务。在一些实施例中,低代码开发平台可以通过向用户提供ui工具,使得用户能够通过用户界面中的模型组件定义模型,并且通过模型驱动逻辑来创建应用。在本技术实施例中,低代码开发平台向用户提供的用户界面中可以包括顶层模型的顶层模型组件,和底层模型的底层模型组件,以使得用户能够实现定义顶层模型和底层模型,实现模型驱动不仅基于顶层模型,还基于底层模型。
46.用户终端220可以是用户(例如代码开发人员)使用的终端设备,例如笔记本电脑、平板电脑等用户侧的设备。
47.作为可选实现,图3示例性的示出了本技术实施例提供的代码开发方法的流程图,该方法流程可由服务器(例如低代码开发平台对应的服务器)以及用户终端交互实现,如图3所示,该方法流程可以包括如下步骤。
48.在步骤s310中,服务器向用户终端提供ui工具,所述ui工具的用户界面展示有底层模型的底层模型组件和顶层模型的顶层模型组件。
49.在步骤s311中,用户终端加载服务器提供的ui工具,并显示所述用户界面。
50.在本技术实施例中,服务器可向用户终端提供ui工具,以便用户终端加载所述ui工具,从而使用用户终端的用户能够通过ui工具在低代码开发平台上进行模型定义。所述ui工具可以提供供用户操作的用户界面,从而用户可通过用户界面进行模型定义。区别于传统低代码开发平台仅向用户开放顶层模型定义的方式,本技术实施例支持向用户开放顶层模型和底层模型的定义,因此为便于用户通过用户界面定义顶层模型和底层模型,所述用户界面可展示顶层模型的顶层模型组件和底层模型的底层模型组件。
51.在一些实施例中,本技术实施例的顶层模型可以包括表单模型。表单模型可以认为是表单对应的模型,表单可以视为是收集用户数据信息的各种表单元素的集合。在代码(低代码)开发过程中,表单模型是一个应用系统直接面对人机交互时,要求用户录入的表单信息。例如,在开发一个考勤应用系统时,考勤应用系统的请假单会对应一个表单模型,请假单要求用户录入申请人、时间、审核人等信息。
52.在一些实施例中,本技术实施例的底层模型可以包括领域模型和/或数据模型。其中,领域模型关注的是领域知识,是业务领域的核心实体,体现了问题域里的关键概念以及概念之间的联系。也就是说,在代码开发过程中,领域模型是针对应用系统所面临的问题域
所定义的模型。例如,在开发一个考勤应用系统时,领域模型中有职务关系、假期、假期申请等领域对象。需要说明的是,领域模型和表单模型并不一定是一一对应的关系,例如一个请假单发送到后台后,可能会拆解对应若干领域模型,以分别调用考勤应用系统的不同领域服务。
53.数据模型关注的是数据存储,所有的业务都离不开数据,也就是说,在代码开发过程中,数据模型面对的是数据存储。例如,领域模型的需求可拆解到数据库中的表、字段、属性类型的定义。需要说明的是,数据模型与领域模型或表单模型并不一定是一一对应的关系,比如在一个订单的应用系统中,领域模型的领域对象有一个订单条目的列表,而数据模型则是通过订单条目中的订单id进行关联。
54.作为一种可选实现,用户界面可以提供表单模型的表单模型组件、领域模型的领域模型组件以及数据模型的数据模型组件,以便用户通过用户界面展示的这些模型组件分别进行表单模型、领域模型和数据模型的定义。
55.在步骤s312中,用户终端响应用户操作,从用户界面展示的模型组件中,确定用于定义底层模型的目标底层模型组件,以及用于定义顶层模型的目标顶层模型组件。
56.基于用户终端显示的用户界面,用户可通过用户界面中展示的顶层模型的顶层模型组件(例如表单模型的表单模型组件)和底层模型的底层模型组件(例如领域模型的领域模型组件和/或数据模型的数据模型组件),定义顶层模型和底层模型。
57.在一些实施例中,用户界面展示的模型组件可以是拖放式组件,支持用户通过拖放操作(例如拖拽操作)选择定义模型的目标模型组件。
58.在一些实施例中,用户界面可以基于需要定义的不同模型,展示不同的定义页面,以便用户在不同的定义页面定义不同的模型。可选的,在本技术实施例支持用户定义底层模型和顶层模型的情况下,用户界面可以展示顶层模型的定义页面,以便用户定义顶层模型,例如,用户界面可以展示表单模型的定义页面,以便用户定义表单模型。另外,用户界面可以展示底层模型的定义页面,以便用户定义底层模型。进一步的,在支持用户定义的底层模型包括领域模型和数据模型的情况下,用户界面可通过具体展示领域模型的定义页面,以便用户定义领域模型,展示数据模型的定义页面,以便用户定义数据模型。
59.作为可选实现,一个模型的定义页面可具有模型组件选择区和模型定义区,模型组件选择区可展示模型的模型组件,在进行模型定义时,用户可从模型组件选择区展示的模型组件中,选择用于定义模型的目标模型组件,并拖拽到模型定义区,从而通过模型定义区中相连接的多个目标模型组件,实现定义模型。
60.作为可选实现,在定义顶层模型时,顶层模型的定义页面可具有模型组件选择区和模型定义区,模型组件选择区可展示顶层模型的顶层模型组件,在进行顶层模型的定义时,用户可从模型组件选择区展示的顶层模型组件中,选择用于定义顶层模型的目标顶层模型组件,并拖拽到模型定义区,从而通过模型定义区中相连接的多个目标顶层模型组件,实现定义顶层模型;其中,目标顶层模型组件之间的连接关系可以由用户将目标顶层模型组件拖拽到模型定义区后,由用户操作设置。
61.作为可选实现,在进行底层模型的定义时,底层模型的定义页面可具有模型组件选择区和模型定义区,模型组件选择区可展示底层模型的底层模型组件。例如,领域模型的定义页面可以具有模型组件选择区和模型定义区,该模型组件选择区可展示领域模型的领
域模型组件;数据模型的定义页面可以具有模型组件选择区和模型定义区,该模型组件选择区可展示数据模型的数据模型组件。在进行底层模型定义时,用户可从模型组件选择区展示的底层模型组件中,选择用于定义底层模型的目标底层模型组件,并拖拽到模型定义区,从而通过模型定义区中相连接的多个目标底层模型组件,实现定义底层模型;其中,目标底层模型组件之间的连接关系可以由用户将目标底层模型组件拖拽到模型定义区后,由用户操作设置。
62.在一个示例中,以顶层模型包括表单模型,底层模型包括领域模型和数据模型为例,用户可通过用户界面展示的表单模型的定义页面,定义表单模型,通过用户界面展示的领域模型的定义页面,定义领域模型,通过用户界面展示的数据模型的定义页面,定义数据模型。也就是说,用户在低代码开发平台定义模型时,可以通过三类不同模型的定义页面,来实现定义三类模型。
63.需要说明的是,不同模型通过不同的定义页面进行定义仅是一种可选实现方式,本技术实施例也可支持用户界面通过一个定义页面定义不同的模型,比如一个定义页面中可具有不同模型的定义区和不同模型的模型组件选择区,从而便于用户在一个定义页面实现定义不同的模型。
64.作为可选实现,模型对应的模型组件可以认为是构建模型的要素,多个连接的模型组件可定义出模型;在一个示例中,领域模型的模型组件可以包括领域对象、属性、方法、是否是聚合根(领域驱动设计的术语)等;数据模型的模型组件可以包括数据对象,例如主键等。在本技术实施例中,表单模型、领域模型和数据模型对应的模型组件可根据表单模型、领域模型和数据模型的具体情况而定,本技术实施例并不设限。
65.在步骤s313中,用户终端将底层模型的定义信息,以及顶层模型的定义信息发送给服务器。
66.在一些实施例中,底层模型和顶层模型的定义信息可以基于用户在所述用户界面的操作确定。作为可选实现,底层模型的定义信息可以包括:用户通过所述用户界面从所述底层模型组件中,定义的多个目标底层模型组件以及连接关系;顶层模型的定义信息可以包括:用户通过所述用户界面从所述顶层模型组件中,定义的多个目标顶层模型组件以及连接关系。
67.用户在完成目标底层模型组件的选择,并设置目标底层模型组件之间的连接关系,同时完成目标顶层模型组件的选择,以及设置目标顶层模型组件之间的连接关系后,可确认完成底层模型和顶层模型的定义。例如,用户可点击用户界面的提交按钮等,以触发确认完成底层模型和顶层模型的定义。从而,用户终端可将用户定义底层模型的定义信息和定义顶层模型的定义信息,发送给服务器,以便服务器基于用户的定义信息生成底层模型和顶层模型。
68.在一些实施例中,顶层模型的定义信息可以包括表单模型的定义信息,例如定义表单模型的多个目标表单模型组件以及多个目标表单模型组件的连接关系。在一些实施例中,底层模型的定义信息可以包括领域模型的定义信息和/或数据模型的定义信息。其中,领域模型的定义信息例如定义领域模型的多个目标领域模型组件以及该多个目标领域模型组件的连接关系;数据模型的定义信息例如定义数据模型的多个目标数据模型组件以及该多个目标数据模型组件的连接关系。
69.在步骤s314中,服务器根据所述底层模型的定义信息,生成底层模型;以及根据所述顶层模型的定义信息,生成顶层模型。
70.用户终端在将底层模型和顶层模型的定义信息发送给服务器之后,服务器可分别基于底层模型和顶层模型的定义信息,通过模型驱动,生成底层模型和顶层模型。在一些实施例中,基于顶层模型使用的目标顶层模型组件以及它们之间的连接关系,服务器可通过模型驱动,生成顶层模型,例如,基于表单模型使用的目标表单模型组件以及它们之间的连接关系,服务器可生成表单模型。
71.在一些实施例中,基于底层模型使用的目标底层模型组件以及它们之间的连接关系,服务器可通过模型驱动,生成底层模型。在一个示例中,以底层模型包括领域模型和数据模型为例,服务器可基于领域模型使用的目标领域模型组件以及它们之间的连接关系,生成领域模型;基于数据模型使用的目标数据模型组件以及它们之间的连接关系,生成数据模型。当然,服务器生成的底层模型也可能只是领域模型或者数据模型。
72.在步骤s315中,服务器生成所述底层模型的代码和所述顶层模型的代码,并且至少基于所述底层模型和所述顶层模型的映射关系,将所述底层模型和所述顶层模型的代码进行关联,以得到工程结构的代码。
73.服务器在生成底层模型和顶层模型之后,可以分别为底层模型和顶层模型生成代码。在为一个模型生成代码的一种可选实现,本技术实施例可基于该模型使用的多个目标模型组件,确定各目标模型组件的代码,并基于该多个目标模型组件之间的连接关系,将各目标模型组件的代码进行关联,以实现为该模型生成代码。例如,在为底层模型生成代码的一种可选实现中,本技术实施例可确定底层模型使用的各目标底层模型组件的代码,并基于目标底层模型组件之间的连接关系,将各目标底层模型组件的代码进行关联,以得到底层模型的代码。为顶层模型生成代码的方式可同理实现,例如确定顶层模型使用的各目标顶层模型组件的代码,并基于目标顶层模型组件之间的连接关系,将各目标顶层模型组件的代码进行关联,以得到顶层模型的代码。
74.在得到底层模型的代码和顶层模型的代码之后,本技术实施例可至少基于底层模型和顶层模型的映射关系,将底层模型和顶层模型的代码进行关联,从而得到工程结构的代码。
75.在进一步的可选实现,本技术实施例可基于底层模型和顶层模型的映射关系,生成底层模型和顶层模型的映射层的代码,底层模型和顶层模型的映射层可以例如app(应用)层,用于沟通应用系统的顶层和底层。从而本技术实施例可通过映射层的代码,将底层模型的代码与顶层模型的代码进行关联,以实现关联底层模型和顶层模型的代码。为便于理解,图4示例性的示出了得到工程结构的代码的示例图,如图4所示,本技术实施例可生成顶层模型的代码,生成底层模型的代码,并且基于顶层模型和底层模型的映射关系,生成app层(映射层的一种实现示例)的代码,从而通过app层的代码关联顶层模型和底层模型的代码。需要进一步说明的是,在底层模型包括领域模型和数据模型的情况下,本技术实施例可针对底层模型具体生成领域模型的代码和数据模型的代码,并且将领域模型的代码和数据模型的代码进行关联,以实现底层模型的代码内部关联,并且通过将领域模型的代码与表单模型的代码进行关联(例如通过app层进行关联),以实现底层模型和顶层模型的代码关联。
76.在步骤s316中,服务器将工程结构的代码发送给用户终端。
77.在步骤s317中,用户终端基于所述工程结构的代码进行低代码开发。
78.在本技术实施例中,工程结构的代码可以视为是表达底层模型和顶层模型的全量代码(例如全量的源代码),涵盖了需要开发的应用系统从顶层至底层的代码信息。服务器通过将工程结构的代码发送给用户终端,可将工程结构的代码提供给用户,从而用户可以在该全量代码的基础上,对应用系统进行源代码方面的低代码开发,并且通过应用系统从顶层至底层的代码信息,实现低代码的灵活开发,进而实现对应用系统的深度定制,提升代码订制的能力。
79.本技术实施例提供的代码开发方法中,服务器可向用户提供用于定义模型的ui工具,并且ui工具的用户界面展示有底层模型的底层模型组件和顶层模型的顶层模型组件,从而支持用户定义底层模型和顶层模型。在用户定义底层模型和顶层模型之后,服务器可获得用户终端发送的底层模型的定义信息以及顶层模型的定义信息;从而,服务器可基于底层模型的定义信息,生成底层模型,基于顶层模型的定义信息,生成顶层模型。服务器在生成底层模型和顶层模型之后,可以生成所述底层模型的代码和所述顶层模型的代码,并且至少基于所述底层模型和所述顶层模型的映射关系,将所述底层模型和所述顶层模型的代码进行关联,以得到工程结构的代码。所述工程结构的代码可以表达底层模型和顶层模型的全量代码,涵盖了应用系统从顶层至底层的全量代码信息,因此服务器将工程结构的代码提供给用户,可使得用户可以在该全量代码的基础上,对应用系统进行源代码方面的低代码开发,并且在低代码开发过程中,通过应用系统从顶层至底层的代码信息,实现低代码的灵活开发,实现对应用系统的深度定制,提升代码订制的能力。
80.可见,本技术实施例提供的代码开发方法支持用户定义底层模型和顶层模型,并且服务器可通过用户定义生成底层模型和顶层模型,并且向用户提供涵盖应用系统的顶层至底层的工程结构的代码,从而用户在该工程结构的代码基础上进行低代码开发,可使得用户能够基于较为全面的模型代码进行低代码开发,提升了低代码开发的灵活性,能够降低应用深度定制需求的局限性,同时提升代码订制的能力,便于后续代码调试。
81.下面以顶层模型包括表单模型,底层模型包括领域模型和表单模型为例,对本技术实施例提供的代码开发方案进行介绍。作为可选实现,图5示例性的示出了本技术实施例提供的代码开发方法的另一可选流程图。参照图5,该方法流程可以包括如下步骤。
82.在步骤s510中,服务器向用户终端提供ui工具。
83.在步骤s511中,用户终端加载服务器提供的ui工具,并显示ui工具的用户界面。
84.在步骤s512中,用户终端通过所述用户界面展示表单模型的定义页面,响应于该定义页面上的用户操作,确定用于定义表单模型的目标表单模型组件以及连接关系,以得到表单模型的定义信息。
85.本技术实施例在支持用户定义表单模型、领域模型和数据模型的情况下,ui工具的用户界面可以提供表单模型、领域模型和数据模型这三类不同模型的定义页面,从而用户可通过表单模型的定义页面定义表单模型,通过领域模型的定义页面定义领域模型,通过数据模型的定义页面定义数据模型。
86.作为定义表单模型的一个示例,图6a示例性的示出了本技术实施例定义表单模型的示例图。如图6a所示,表单模型的定义页面可以具有模型组件选择区和模型定义区;模型
组件选择区可以展示表单模型的多个表单模型组件611至61n(n表示表单模型可选择的表单模型组件的数量,具体数值可根据实际设计情况设置)。用户在定义表单模型时,可从表单模型组件611至61n中选择定义表单模型使用的目标表单模型组件,并拖拽到模型定义区,并设置目标表单模型组件之间的连接关系;例如图6a所示模型定义区由多个目标表单模型组件61以及它们之间的连接关系,形成表单模型的定义信息。
87.在步骤s513中,用户终端通过所述用户界面展示领域模型的定义页面,响应于该定义页面上的用户操作,确定用于定义领域模型的目标领域模型组件以及连接关系,以得到领域模型的定义信息。
88.作为定义领域模型的一个示例,图6b示例性的示出了本技术实施例定义领域模型的示例图。如图6b所示,领域模型的定义页面可以具有模型组件选择区和模型定义区;模型组件选择区可以展示领域模型的多个领域模型组件621至62m(m表示领域模型可选择的领域模型组件的数量,具体数值可根据实际设计情况设置)。用户在定义领域模型时,可从领域模型组件621至62m中选择目标领域模型组件,并拖拽到模型定义区,并设置目标领域模型组件之间的连接关系;例如图6b所示模型定义区由多个目标领域模型组件62以及它们之间的连接关系,形成领域模型的定义信息。
89.在步骤s514中,用户终端通过所述用户界面展示数据模型的定义页面,响应于该定义页面上的用户操作,确定用于定义领域模型的目标数据模型组件以及连接关系,以得到数据模型的定义信息。
90.作为定义数据模型的一个示例,图6c示例性的示出了本技术实施例定义数据模型的示例图。如图6c所示,数据模型的定义页面可以具有模型组件选择区和模型定义区;模型组件选择区可以展示数据模型的多个数据模型组件631至63s(s表示数据模型可选择的数据模型组件的数量,具体数值可根据实际设计情况设置)。用户在定义数据模型时,可从数据模型组件631至63s中选择目标数据模型组件,并拖拽到模型定义区,并设置目标数据模型组件之间的连接关系;例如图6c所示模型定义区由多个目标数据模型组件63以及它们之间的连接关系,形成数据模型的定义信息。
91.在步骤s515中,用户终端将表单模型、领域模型和数据模型的定义信息,发送给服务器。
92.用户在确认完成表单模型、领域模型和数据模型的定义后,用户终端可将该三类模型的定义信息发送给服务器,以便服务器生成表单模型、领域模型和数据模型。
93.在步骤s516中,服务器基于表单模型的定义信息生成表单模型,基于领域模型的定义信息生成领域模型,基于数据模型的定义信息生成数据模型。
94.服务器在获取到表单模型、领域模型和数据模型的定义信息后,可分别基于各个模型的定义信息,生成各个模型,从而实现生成表单模型、领域模型和数据模型。
95.在步骤s517中,服务器生成表单模型的代码、领域模型的代码和数据模型的代码;以及,基于表单模型和领域模型的映射关系,生成映射层的代码。
96.在步骤s518中,服务器基于映射层的代码,将表单模型和领域模型的代码进行关联;并且基于领域模型和数据模型的映射关系,将领域模型和数据模型的代码进行关联,以得到工程结构的代码。
97.服务器在生成表单模型、领域模型和数据模型之后,可为表单模型、领域模型和数
据模型分别生成代码,并且通过将表单模型、领域模型和数据模型的代码依次进行关联,以得到能够表达应用系统的顶层至底层的全量代码信息(即工程结构的代码)。在一些实施例中,由于应用系统的底层和顶层需要通过app层等映射层进行沟通,因此本技术实施例还需基于表单模型和领域模型的映射关系,生成映射表单模型和领域模型的映射层的代码(例如app层的代码),从而在进行代码关联时,本技术实施例可基于映射层的代码,将表单模型的代码和领域模型的代码进行关联;同时,由于领域模型和数据模型均属于应用系统的底层,因此领域模型的代码和数据模型的代码可通过领域模型和数据模型的映射关系进行关联。
98.在一些实施例中,表单模型的信息与领域模型的领域对象、领域服务可存在映射关系,领域模型的领域对象与数据模型的表、字段、属性等存储对象可存在映射关系。
99.在进一步的一些实施例中,本技术实施例可通过为表单层生成组件代码,以实现生成表单模型的代码,表单层可以为表单模型对应的代码层,例如表单模型可以具有客户端(client)层和条目(entry)层。作为可选实现,本技术实施例可通过为客户端层和条目层,分别生成组件代码,以实现生成表单模型的代码。同时,本技术实施例可通过为app层生成组件代码,以实现生成app层的代码;以及,本技术实施例可通过为领域(domain)层生成组件代码,以实现生成领域模型的代码,领域层可以为领域模型对应的代码层。从而,本技术实施例可通过app层的组件代码,将客户端层和条目层的组件代码与领域层的组件代码进行关联,以实现关联表单模型和领域模型的代码。进一步的,本技术实施例可通过为数据模型的基础设施(infrastructure)层生成组件代码,以实现生成数据模型的代码,从而通过将领域层的组件代码与基础设施层的组件代码进行关联,以实现关联领域模型和数据模型的代码。
100.在一个实现示例中,图7a示例性的示出了生成模型代码和关联代码的示例图。如图7a所示,表单模型具有client层和entry层,client层具有结构对象dto(数据传输对象,data transfer object)、应用服务api(application programming interface,应用程序接口)和商业能力服务api等组件,entry层具有controller(控制器)组件,本技术实施例可为client层的多个组件和entry层的controller组件,分别生成组件代码,以实现生成表单模型的代码;表单模型和领域模型的映射关系对应app层,app层具有dto converter(转换器)、应用服务实现、商业能力服务实现等组件,本技术实施例可为app层的多个组件分别生成组件代码,以实现生成app层的代码;领域模型具有domain层,domain层具有领域对象、领域服务、repo(repository的缩写,repository表示存储库)接口定义等组件,本技术实施例可为domain层的多个组件分别生成组件代码,以实现生成领域模型的代码;数据模型具有infrastructure层,infrastructure层具有repo实现、do(domain object,领域对象)converter、数据对象do等组件,本技术实施例可为infrastructure层的多个组件分别生成组件代码,以实现生成数据模型的代码。
101.进一步如图7a所示,app层的组件代码可以与client层和entry层的组件代码进行关联(具体关联关系可参照图7a所示的带箭头的虚线),同时,app层的组件代码可与domain层的组件代码进行关联(例如dto converter与领域对象存在关联关系),从而app层的代码可将表单模型和领域模型的代码进行关联;并且,domain层的组件代码可与infrastructure层的组件代码进行关联(具体关联关系可参照图7a所示的带箭头的虚线),
以实现关联领域模型和数据模型的的代码。
102.在完成表单模型、领域模型、数据模型的代码生成以及实现代码关联后,本技术实施例可得到工程结构的代码,该工程结构的代码可以表达应用系统从表单模型至领域模型至数据模型的全量代码信息,从而提供应用系统全面的模型代码,以便用户灵活的进行低代码开发。为便于理解,图7b示例性的示出了工程结构的代码的一种示例,可进行参照,由图7b所示可以看出,工程结构的代码可以全面的表达表单模型至领域模型至数据模型的全量代码信息。
103.在步骤s519中,服务器将工程结构的代码发送给用户终端。
104.在步骤s520中,用户终端基于所述工程结构的代码进行低代码开发。
105.在本技术实施例中,低代码开发平台在支持用户定义表单模型、领域模型和数据模型的情况下,可基于用户对于三类模型的定义信息,生成三类模型以及三类模型的工程结构的代码,从而将该工程结构的代码提供给用户。用户可以基于该三类模型的全量代码来进行应用系统的低代码开发,实现应用系统的定制开发,图7c示例性的示出了具有表单模型、领域模型和数据模型的应用架构示例图,可进行参照。
106.本技术实施例在支持用户定义表单模型、领域模型和数据模型的情况下,三类模型可分别面对应用系统在三类层面的复杂需求,例如表单模型的定义可以面对应用系统的ui需求,领域模型的定义可以面对应用系统的业务本质,数据模型的定义可以面对应用系统的数据存储方案,从而本技术实施例在给用户提供更高开放度的模型定义的情况下,能够对需求复杂度更高的应用系统实现低代码开发的支持。
107.本技术实施例能够提升低代码开发的灵活性,降低应用系统的深度定制局限和代码开发的定制局限,能够使得低代码开发更为适合复杂需求的应用系统。
108.下面对本技术实施例提供的代码开发装置进行介绍,下文描述的装置内容可以认为是服务器为实现本技术实施例提供的代码开发方法所需设置的功能模块。下文描述的装置内容可与上文描述的内容相互对应参照。
109.作为可选实现,图8a示例性的示出了本技术实施例提供的代码开发装置的可选框图。该装置可应用于服务器(例如低代码开发平台的服务器),参照图8a,该装置可以包括:
110.工具提供模块810,用于向用户终端提供ui工具,所述ui工具中的用户界面展示有底层模型的底层模型组件和顶层模型的顶层模型组件;
111.定义信息获取模块811,用于获取用户终端发送的底层模型的定义信息以及顶层模型的定义信息;所述底层模型和顶层模型的定义信息基于用户在所述用户界面的操作确定;
112.模型生成模块812,用于根据所述底层模型的定义信息,生成底层模型;以及根据所述顶层模型的定义信息,生成顶层模型;
113.代码得到模块813,用于生成所述底层模型的代码和所述顶层模型的代码,并且至少基于所述底层模型和所述顶层模型的映射关系,将所述底层模型和所述顶层模型的代码进行关联,以得到工程结构的代码;
114.代码发送模块814,用于将所述工程结构的代码发送给所述用户终端,以便所述用户终端基于所述工程结构的代码进行代码开发。
115.在一些实施例中,所述底层模型的定义信息包括:用户通过所述用户界面从所述
底层模型组件中,定义的多个目标底层模型组件以及连接关系;所述顶层模型的定义信息包括:用户通过所述用户界面从所述顶层模型组件中,定义的多个目标顶层模型组件以及连接关系。
116.在一些实施例中,代码得到模块813,用于至少基于所述底层模型和所述顶层模型的映射关系,将所述底层模型和所述顶层模型的代码进行关联包括:
117.基于底层模型和顶层模型的映射关系,生成底层模型和顶层模型的映射层的代码;
118.通过映射层的代码将底层模型的代码与顶层模型的代码进行关联。
119.在一些实施例中,所述顶层模型包括表单模型,所述底层模型包括领域模型和数据模型。
120.在一些实施例中,所述用户界面展示的底层模型的底层模型组件包括:领域模型的领域模型组件和数据模型的数据模型组件;。
121.相应的,模型生成模块812,用于根据所述底层模型的定义信息,生成底层模型包括:
122.根据领域模型的定义信息,生成领域模型,其中,所述领域模型的定义信息包括:用户通过所述用户界面从所述领域模型组件中,定义的多个目标领域模型组件以及连接关系;
123.以及,根据数据模型的定义信息,生成数据模型,其中,所述数据模型的定义信息包括用户通过所述用户界面从所述数据模型组件中,定义的多个目标数据模型组件以及连接关系。
124.在一些实施例中,所述用户界面展示的顶层模型的顶层模型组件包括:表单模型的表单模型组件。
125.相应的,模型生成模块812,用于根据所述顶层模型的定义信息,生成顶层模型包括:
126.根据表单模型的定义信息,生成表单模型,其中,所述表单模型的定义信息包括用户通过所述用户界面从所述表单模型组件中,定义的多个目标表单模型组件以及连接关系。
127.在一些实施例中,代码得到模块813,用于生成所述底层模型的代码包括:生成领域模型的代码和数据模型的代码。
128.在一些实施例中,代码得到模块813,用于生成所述顶层模型的代码包括:生成表单模型的代码。
129.在一些实施例中,代码得到模块813,用于至少基于所述底层模型和所述顶层模型的映射关系,将所述底层模型和所述顶层模型的代码进行关联,以得到工程结构的代码包括:
130.基于表单模型和顶层模型的映射关系,生成应用层的代码;
131.通过应用层的代码将表单模型和领域模型的代码进行关联;
132.以及,基于领域模型和数据模型的映射关系,将领域模型和数据模型的代码进行关联,以得到工程结构的代码。
133.在一些实施例中,代码得到模块813,用于生成表单模型的代码包括:为客户端层
和条目层,分别生成组件代码;
134.代码得到模块813,用于生成领域模型的代码包括:为领域层生成组件代码;
135.代码得到模块813,用于生成数据模型的代码包括:为基础设施层生成组件代码;
136.相应的,代码得到模块813,用于基于表单模型和顶层模型的映射关系,生成应用层的代码包括:基于表单模型和顶层模型的映射关系,为应用层生成组件代码;
137.代码得到模块813,用于通过应用层的代码将表单模型和领域模型的代码进行关联包括:通过应用层的组件代码,将客户端层和条目层的组件代码与领域层的组件代码进行关联;
138.代码得到模块813,用于基于领域模型和数据模型的映射关系,将领域模型和数据模型的代码进行关联包括:基于领域模型和数据模型的映射关系,将领域层的组件代码与基础设施层的组件代码进行关联。
139.本技术实施例还提供一种服务器,该服务器可以通过设置上述所述的代码开发装置,以实现本技术实施例提供的服务器侧执行的代码开发方法。作为可选实现,图8b示例性的示出了本技术实施例提供的服务器的可选框图,如图8b所示,该服务器可以包括:可以包括:至少一个处理器801,至少一个通信接口802,至少一个存储器803和至少一个通信总线804。
140.在本技术实施例中,处理器801、通信接口802、存储器803、通信总线804的数量为至少一个,且处理器801、通信接口802、存储器803通过通信总线804完成相互间的通信。
141.可选的,通信接口802可以为用于进行网络通信的通信模块的接口。
142.可选的,处理器801可能是cpu,gpu(graphics processing unit,图形处理器),npu(嵌入式神经网络处理器),fpga(field programmable gate array,现场可编程逻辑门阵列),tpu(张量处理单元),ai芯片,特定集成电路asic(application specific integrated circuit),或者是被配置成实施本技术实施例的一个或多个集成电路等。
143.存储器803可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
144.其中,存储器803存储一条或多条计算机可执行指令,处理器801调用所述一条或多条计算机可执行指令,以执行本技术实施例提供的服务器侧执行的代码开发方法。
145.本技术实施例还提供一种存储介质,该存储介质存储一条或多条计算机可执行指令,该一条或多条计算机可执行指令被执行时实现如本技术实施例提供的服务器侧执行的代码开发方法。
146.本技术实施例还提供一种计算机程序,该计算机程序被执行时实现如本技术实施例提供的服务器侧执行的代码开发方法。
147.下面从用户终端的角度,对本技术实施例提供的代码开发装置进行介绍,下文描述的装置内容可以认为是用户终端为实现本技术实施例提供的代码开发方法所需设置的功能模块。下文描述的装置内容可与上文描述的内容相互对应参照。
148.作为可选实现,图9示例性的示出了本技术实施例提供的代码开发装置的另一可选框图。该装置可应用于用户终端,参照图9,该装置可以包括:
149.工具加载模块910,用于加载ui工具,显示所述ui工具中的用户界面,所述用户界面展示有底层模型的底层模型组件和顶层模型的顶层模型组件;
150.定义信息确定模块911,用于响应于用户在所述用户界面的操作,确定底层模型的定义信息以及顶层模型的定义信息;
151.定义信息发送模块912,用于将所述底层模型的定义信息以及顶层模型的定义信息发送给服务器,以便服务器生成底层模型和顶层模型;
152.代码获取并展示模块913,用于获取服务器发送的工程结构的代码并展示;所述工程结构的代码至少基于所述底层模型和所述顶层模型的映射关系,将所述底层模型和所述顶层模型的代码进行关联后得到;
153.代码开发模块914,用于基于所述工程结构的代码进行代码开发。
154.在一些实施例中,定义信息确定模块911,用于响应于用户在所述用户界面的操作,确定底层模型的定义信息以及顶层模型的定义信息包括:
155.响应于用户在所述用户界面的操作,确定用户从所述底层模型组件中,定义的多个目标底层模型组件以及连接关系,以及从所述顶层模型组件中,定义的多个目标顶层模型组件以及连接关系;
156.其中,所述用户界面展示有底层模型的定义页面和顶层模型的定义页面;所述底层模型的定义页面用于基于用户操作,定义所述多个目标底层模型组件以及连接关系;所述顶层模型的定义页面用于基于用户操作,定义所述多个目标顶层模型组件以及连接关系。
157.在一些实施例中,所述顶层模型包括表单模型,所述底层模型包括领域模型和数据模型。
158.本技术实施例还提供一种用户终端,该用户终端可以通过设置上述所述的代码开发装置,以实现本技术实施例提供的用户终端侧执行的代码开发方法。作为可选实现,用户终端的可选结构可以结合图8b所示,包括至少一个存储器和至少一个处理器,所述存储器存储一条或多条计算机可执行指令,所述处理器调用所述一条或多条计算机可执行指令,以执行如本技术实施例提供的用户终端侧执行的代码开发方法。
159.本技术实施例还提供一种存储介质,该存储介质存储一条或多条计算机可执行指令,该一条或多条计算机可执行指令被执行时实现如本技术实施例提供的用户终端侧执行的代码开发方法。
160.本技术实施例还提供一种计算机程序,该计算机程序被执行时实现如本技术实施例提供的用户终端侧执行的代码开发方法。
161.上文描述了本技术实施例提供的多个实施例方案,各实施例方案介绍的各可选方式可在不冲突的情况下相互结合、交叉引用,从而延伸出多种可能的实施例方案,这些均可认为是本技术实施例披露、公开的实施例方案。
162.虽然本技术实施例披露如上,但本技术并非限定于此。任何本领域技术人员,在不脱离本技术的精神和范围内,均可作各种更动与修改,因此本技术的保护范围应当以权利要求所限定的范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献