掌桥专利:专业的专利平台
掌桥专利
首页

程序构造方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 10:24:22


程序构造方法、装置、电子设备及存储介质

技术领域

本申请涉及计算机领域,具体而言,涉及一种项程序构造方法、装置、电子设备及存储介质。

背景技术

软件是对现实世界的抽象和模拟,在开发的过程中,需要针对不同的业务来对软件做不同的设计,然而不同业务之间又存在一定共性,因此,针对不同的业务来对软件做不同的设计会进行一些重复性的开发,继而导致开发效率欠佳。

发明内容

第一方面,本申请实施例提供一种程序构造方法,应用于电子设备,所述方法包括:

获取目标程序的配置文件,其中,所述配置文件记录有所述目标程序需要的各功能模块的标识信息以及各所述功能模块的配置信息;

解析所述配置文件,获取各功能模块的标识信息以及各所述功能模块的配置信息;

针对每个所述功能模块,根据所述功能模块的标识信息以所述功能模块的配置信息,在内存中生成所述功能模块的服务实例。

在一种可能的实现方式中,监测所述配置文件是否添加了新的配置信息,其中,所述新的配置信息对应新的功能模块;

若是,则根据所述新的配置信息在内存中生成新的服务实例,其中,所述新的服务实例与所述新的功能模块相对应。

在一种可能的实现方式中,所述根据所述功能模块的标识信息以所述功能模块的配置信息,在内存中生成所述功能模块的服务实例之前,所述方法还包括:

检测内存中是否已经存在所述功能模块的服务实例;

若是,则忽略所述功能模块。

在一种可能的实现方式中,所述根据所述功能模块的标识信息以所述功能模块的配置信息,在内存中生成所述功能模块的服务实例,包括:

根据所述功能模块的标识信息确定所述功能模块的指令数据,其中,所述指令数据包括实现所述功能模块对应服务功能的计算机可执行指令;

根据所述功能模块的配置信息,初始化所述指令数据中与所述配置信息相对应的模块属性;

将初始化后的指令数据加载到内存中,生成所述功能模块的服务实例。

在一种可能的实现方式中,所述功能模块包括第一功能模块以及第二功能模块,其中,所述第一功能模块属于第一层级,所述第二功能模块属于第二层级,所述第二层级对应的功能模块基于第一层级对应的功能模块进行构建。

在一种可能的实现方式中,所述获取目标程序的配置文件之前,所述方法还包括:

提供一配置界面;

响应于所述配置界面的第一配置操作,获得所述目标程序所属的目标行业;

根据所述目标行业,提供候选功能模块的模块标识,其中,所述候选功能模块属于所述目标行业;

响应于所述配置界面的第二配置操作,生成所述配置文件。

在一种可能的实现方式中,所述电子设备配置有所述候选功能模块之间的关联关系,所述响应于所述配置界面的第二配置操作,生成所述配置文件,包括:

响应于所述配置界面的模块选取操作,确定选中的功能模块;

针对所述功能模块,响应于所述配置界面中的模块配置操作,获得所述功能模块的配置信息;

根据所述关联关系,确定与所述功能模块关联的候选功能模块;

将与所述功能模块关联的候选功能模块的模块标识,在所述配置界面进行显示;

响应于所述配置界面中的文件生成操作,根据所有的功能模块的配置信息以及模块标识,生成所述配置文件。

第二方面,本申请实施例提供一种程序构造装置,所述程序构造装置包括:

配置获取模块,用于获取目标程序的配置文件,其中,所述配置文件记录有所述目标程序需要的各功能模块的标识信息、各所述功能模块之间的架构信息以及各所述功能模块的配置信息;

配置解析模块,用于解析所述配置文件,获取所述标识信息、所述架构信息以及所述配置信息;

实例生成模块,用于针对每个所述功能模块,根据所述功能模块的标识信息、所述功能模块的架构信息以所述功能模块的配置信息,在内存中生成所述功能模块的服务实例。

第三方面,本申请实施例提供一种电子设备,所述电子设备包括处理器以及存储器,所述存储器存储有计算机程序,所述计算机程序中的计算机可执行指令被所述处理器执行时,实现所述的程序构造方法。

第四方面,本申请实施例提供一种存储介质,所述存储介质存储有计算机程序,所述计算机程序中的计算机可执行指令被处理器执行时,实现所述的程序构造方法。

相对于现有技术而言,本申请具有以下有益效果:

本申请实施例提供的程序构造方法、装置、电子设备及存储介质中,电子设备基于目标程序的配置文件,根据该配置文件中各功能模块的配置信息,在内存中生成各功能模块的服务实例。由于各功能模块能够提供独立的服务功能,因此,可以通过该配置文件复用现有功能模块的功能,继而能够提高开发效率。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的电子设备的结构示意图;

图2为本申请实施例提供的程序构造方法的步骤流程示意图;

图3为本申请实施例提供的程序抽象层次关系图;

图4为本申请实施例提供的代码层面映射关系图;

图5为本申请实施例提供的程序构造装置结构示意图。

图标:120-存储器;130-处理器;140-通信装置;1101-配置获取模块;1102-配置解析模块;1103-实例生成模块。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

相关技术中,需要针对不同的业务来对软件做不同的设计,然而不同业务之间又存在一定共性,因此,针对不同的业务来对软件做不同的设计会进行一些重复性的开发,继而导致开发效率欠佳。

鉴于此,本申请实施例提供一种程序构造方法,应用于电子设备。该电子设备通过配置文件对现有功能模块进行配置,并根据该配置文件中的配置信息,生成功能模块对应的服务实例,以达到复用现有功能模块的功能的目的。

其中,该电子设备可以是,但不限于服务器、个人电脑(Personal Computer,PC)、智能终端等。

另外,请参照图1,图1为该电子设备可能的一种结构示意图。该电子设备包括存储器120、处理器130、通信装置140。

该存储器120、处理器130以及通信装置140各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。

其中,该存储器120可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,存储器120用于存储程序,该处理器130在接收到执行指令后,执行该程序。该通信装置140用于通过网络收发数据。

该处理器130可能是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

请参照图2,图2为应用于图1所示电子设备的程序构建方法的流程图,以下将对该方法包括各个步骤进行详细阐述。如图2所示,该程序构建方法包括:

步骤S101,获取目标程序的配置文件。

其中,配置文件记录有目标程序需要的各功能模块的标识信息以及各功能模块的配置信息。

该功能模块可以是一个,还可以是多个,视目标程序的业务复杂程度而定。各功能模块为开发人员针对特定的业务功能,预先开发完成的程序模块,该程序模块可以线程或者进程的方式独立运行。当然,还以将功能模块进行相互组合,构成新的功能模块,将新的功能模块以线程或者进程的方式运行。可选地,该目标程序可以是运行在服务端的应用程序。

步骤S102,解析配置文件,获取各功能模块的标识信息以及各功能模块的配置信息。

应理解的是,本申请实施例中,程序架构划分成至少五层。如图3所示,可以包括应用接口层、业务层、逻辑层、核心层以及平台抽象层。

其中,应用接口层是对外的功能出口,平台抽象层是和具体平台相关的部分,用来隔离具体的平台差异(例如,linux操作系统平台与windows操作系统平台)。应用接口层与平台抽象层之间包括业务层、逻辑层还有核心层,用于实现具体功能的部分。

核心层用来提供最低一级的功能,封装最基本的网络通信,日志打印,以及一些用来对上层提供最基本支持的功能。

逻辑层,是将底层(例如核心层)的部分功能模块通过组合的方式,来实现一些简单的逻辑,比如实现不同网络协议下的连接进行抽象,用来统一网络通信方式等,该部分是具有类似组件的独立部分,拥有完善的状态管理功能。

业务层,是对逻辑层再按业务进行组合的实现部分,是业务的高层表示,也就是说最终用户需要的功能都在这一层组合出来的,并通过应用接口层对外发布功能。

在概念理解上,中间三层是对整体的细分过程,可统一成业务层,只是在代码较为复杂的情况下,可以更明确各部分关系并将功能和具体实现独立划分。

本申请实施例中,该配置文件可以XML(Extensible Markup Language,可扩展标记语言)格式的配置文件。例如,该配置文件可以通过如下方式对目标程序进行描述:

ProductA

Version1.0

ConnectionA

192.168.1.125

6666

http

该配置文件中,ProductA表示目标程序的名称,标签用于记录目标程序需要的功能模块。上述配置配件表示目标程序需要connection这个功能模块,并取名叫ConnectionA,具体用于进行网络连接。相应的配置信息中,网络地址为192.168.1.125,端口号为6666,通信协议为http(HyperText Transfer Protocol,超文本传输协议)协议。

基于上述配置文件,在生成服务实例时,按照该配置文件表示的层级关系映射到代码层面。如图4所示,为上述配置文件映射到代码层面的结构示意图。由于上述目标程序基于计算机语言Java,因此,如图4所示,功能模块Connection为Java中的接口Iconnection的具体实现,Part为Java中的接口IPart的具体实现。

本申请实施例中,目标程序的功能模块,可以包括第一功能模块以及第二功能模块,其中,第一功能模块属于第一层级,第二功能模块属于第二层级,第二层级对应的功能模块基于第一层级对应的功能模块进行构建。

同样以上述配置文件为例,Product实际上是属于业务层,Connection属于逻辑层,即第二层级;Product还可以包括核心层的功能模块,即第一层级。因此,虽然,逻辑层是基于核心层构建,但是在构建业务层的Product时,各功能模块不仅限于同一层级。

也就是说配置文件是对上述层级关系的抽象表示,在生成服务实例的过程将这个表示具体化到内存中,从而完成目标程序的构建。由于只需要加入接口层和业务层的组合逻辑代码就能完成业务功能,而不需要进行重复开发。因此,该程序构造方法还包括:

步骤S103,针对每个功能模块,根据功能模块的标识信息以功能模块的配置信息,在内存中生成功能模块的服务实例。

由于,各功能模块为开发人员针对特定的业务功能,预先开发完成的程序模块,即各功能模块对应有相应的计算机可执行指令,因此,该电子设备根据功能模块的标识信息确定功能模块的指令数据。

其中,指令数据包括实现功能模块对应服务功能的计算机可执行指令,但上述指令数据需要结合用户配置的配置信息才能运行,因此,该电子设备,根据功能模块的配置信息,初始化指令数据中与配置信息相对应的模块属性;将初始化后的指令数据加载到内存中,生成功能模块的服务实例。

通过上述方式,电子设备基于目标程序的配置文件,根据该配置文件中各功能模块的配置信息,在内存中生成各功能模块的服务实例。由于各功能模块能够提供独立的服务功能,因此,可以通过该配置文件复用现有功能模块的功能,继而能够提高开发效率。

另外,本申请实施例中,还可以动态加入新的功能模块。该电子设备实时监测该配置文件是否发生变更,一旦监测配置文件是添加了新的配置信息;则根据新的配置信息在内存中生成新的服务实例,其中,新的配置信息对应新的功能模块,新的服务实例与新的功能模块相对应。即该电子设备通过新的服务实例对外提供服务功能。

作为上述功能模块一种可能的实现方式,上述功能模块可以基于计算机语言Java实现,动态加载新的功能模块时,可以利用Java的反射机制实现。

因此,本申请实施例中,在加入新的功能模块时,不需要停止目标程序,可以进行动态添加。

并且,本申请实施例中,考虑到需要尽可能降低功能模块的冗余,因此,在步骤S103,根据功能模块的标识信息以功能模块的配置信息,在内存中生成功能模块的服务实例之前,该电子设备检测内存中是否已经存在功能模块的服务实例;若是,则忽略功能模块。

即本申请实施例中,电子设备在生成服务实例之前,一旦检测到内存中存在相同的服务实例,则忽略该功能模块,不再创建其对应的服务实例。

由于不同的行业之间,所业务需求同样存在一定的差异性,因此,为例方便用户筛选功能模块,本申请实施例中,该电子设备提供一配置界面。其中,该配置界面中提供有文本输入框,供用户输入目标程序所属的行业(例如,物流行业、生鲜行业、电商行业、食品行业等)。当然,该电子设备还可以提供预设的行业选项供用户进行选择。

该电子设备响应于配置界面的第一配置操作,获得目标程序所属的目标行业;根据目标行业,提供候选功能模块的模块标识,其中,候选功能模块属于该目标行业。因此,该配置界面中显示有多个候选功能模块的模块标识。用户可以浏览该配置界面,从候选功能模块中选取用于构建目标程序的功能模块,并对选中的功能模块进行配置。

因此,该电子设备响应于配置界面的第二配置操作,生成配置文件。

其中,该第二配置操作具体包括模块选取操作、模块配置操作以及文件生成操作。

基于该配置界面,该电子设备还可以响应于配置界面的模块配置操作,确定选中的功能模块;由于该电子设备通过配置界面,显示有目标程序所属行业的候选功能模块的模块标识,用户可以从中选中用于构建该目标程序所需要的功能模块。

并针对选中的功能模块,响应于配置界面中的模块配置操作,获得功能模块的配置信息。

本申请实施例中,为了提高用户对候选模块的筛选效率,电子设备配置有各候选模块之间的关联关系。该关联关系表征不同候选模块之间经常同时使用。因此,电子设备根据关联关系,确定与功能模块关联的候选功能模块;并将与功能模块关联的候选功能模块的模块标识,在配置界面进行显示。

例如,日志功能模块通常与文件读写模块或者数据库访问模块一起使用,因此,当用户选中了日志功能模块,电子设备则在配置界面中提供一个区域,显示与日志功能模块相关联的文件读写模块、数据库访问模块的模块标识。

同理,数据报表模块通常与图表模块一起使用,因此,但用户选中了数据报表模块,则在配置界面中提供一个区域,显示图表模块的模块标识。

最后,该电子设备响应于配置界面中的文件生成操作,根据所有的功能模块的配置信息以及模块标识,生成配置文件。

另外,值得说明的是,用户还可以根据该配置文件上述的语法规则,手动编辑,生成配置文件。

请参照图5,基于相同的发明构思,本申请实施例还提供一种程序构造装置,该程序构造装置包括至少一个可以软件形式存储于存储器中的功能模块。从功能上划分,程序构造装置可以包括:

配置获取模块1101,用于获取目标程序的配置文件,其中,配置文件记录有目标程序需要的各功能模块的标识信息、各功能模块之间的架构信息以及各功能模块的配置信息。

本申请实施例中,该配置获取模块1101中的计算机可执行指令被处理器执行时,实现图2中的步骤S101,关于该配置获取模块1101的详细描述,可以参考步骤S101的详细描述。

配置解析模块1102,用于解析配置文件,获取标识信息、架构信息以及配置信息。

本申请实施例中,该配置解析模块1102中的计算机可执行指令被处理器执行时,实现图2中的步骤S102,关于该配置解析模块1102的详细描述,可以参考步骤S102的详细描述。

实例生成模块1103,用于针对每个功能模块,根据功能模块的标识信息、功能模块的架构信息以功能模块的配置信息,在内存中生成功能模块的服务实例。

本申请实施例中,该实例生成模块1103中的计算机可执行指令被处理器执行时,实现图2中的步骤S103,关于该实例生成模块1103的详细描述,可以参考步骤S103的详细描述。

本申请实施例还提供一种电子设备,电子设备包括处理器以及存储器,存储器存储有计算机程序,计算机程序中的计算机可执行指令被处理器执行时,实现的程序构造方法。

本申请实施例还提供一种存储介质,存储介质存储有计算机程序,计算机程序中的计算机可执行指令被处理器执行时,实现的程序构造方法。

综上所述,本申请实施例提供的程序构造方法、装置、电子设备及存储介质中,电子设备基于目标程序的配置文件,根据该配置文件中各功能模块的配置信息,在内存中生成各功能模块的服务实例。由于各功能模块能够提供独立的服务功能,因此,可以通过该配置文件复用现有功能模块的功能,继而能够提高开发效率。

在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述,仅为本申请的各种实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

相关技术
  • 程序构造方法、装置、电子设备及存储介质
  • 地形构造方法、装置、电子设备和存储介质
技术分类

06120112533876