CN115599361A - 一种软件的开发方法、装置、设备及介质 - Google Patents
一种软件的开发方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN115599361A CN115599361A CN202211272842.3A CN202211272842A CN115599361A CN 115599361 A CN115599361 A CN 115599361A CN 202211272842 A CN202211272842 A CN 202211272842A CN 115599361 A CN115599361 A CN 115599361A
- Authority
- CN
- China
- Prior art keywords
- data
- page
- formatted
- code
- determining
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/33—Intelligent editors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及软件开发技术领域,具体涉及一种软件的开发方法、装置、设备及介质,其中该方法包括:确定目标页面的页面类型,基于已确定的页面类型确定数据抓取策略,并基于数据抓取策略,抓取目标页面的页面数据;按照预设规则解析页面数据,确定页面数据中的格式化数据;格式化数据包括接口地址段数据、参数说明段数据以及返回的数据实体段数据;基于预设模板,将格式化数据转换为模型层代码以及网络层代码;整合页面数据、格式化数据、模型层代码以及网络层代码并写入预设文件中,得到开发文件。本发明减少了开发工程师因开发接口数据繁多,重复性代码编写带来的代码编写错误率。
Description
技术领域
本发明涉及软件开发技术领域,具体涉及一种软件的开发方法、装置、设备及介质。
背景技术
现有的手机应用程序(application,app)类软件开发过程中,通常需要创建对应的模型类,代码会通过操作模型类对象,而不是直接操作复杂的数据来编写代码。然而,由于软件开发中的网络层和模型层之间自上而下强依赖,网路层代码需要依赖模型层代码,网络层的工作需要模型层相关工作完成后才能开始启动,存在细小的差别时,就可能会出现软件代码生成失败或者数据异常的问题,进而导致整体开发的敏捷性较差,工作效率较低,通过工具开发的代码又存在网络层代码确实、代码孤立的问题,并不能达到直接使用的标准,需要后续的二次人工调整。
发明内容
有鉴于此,本发明提供一种软件的开发方法、装置、设备及介质,以解决现有技术中软件开发网络层和模型层的开发敏捷性较差、工作效率低的问题。
第一方面,本实施例提供了确定目标页面的页面类型,基于已确定的页面类型确定数据抓取策略,并基于数据抓取策略,抓取目标页面的页面数据;当页面类型为动态数据类型时,页面数据是通过脚本工具确定触发行为并得到执行结果,并基于执行结果得到的;触发行为是利用模拟的人为操作触发页面数据得到的;
按照预设规则解析页面数据,确定页面数据中的格式化数据;格式化数据包括接口地址段数据、参数说明段数据以及返回的数据实体段数据;
基于预设模板,将格式化数据转换为模型层代码以及网络层代码;
整合页面数据、格式化数据、模型层代码以及网络层代码并写入预设文件中,得到开发文件。
结合第一方面,在第一方面第一实施方式中,所述确定目标页面的页面类型,基于已确定的页面类型确定数据抓取策略,并基于数据抓取策略,抓取目标页面的页面数据,具体包括:
确定目标页面的页面类型;
确定为第一页面类型时,基于第一数据抓取策略抓取目标页面的页面数据;第一页面类型用于表征静态页面类型;
确定为第二页面类型时,基于第二数据抓取策略抓取目标页面的页面数据;第二页面类型用于表征动态页面类型。
结合第一方面第一实施方式,在第一方面第二实施方式中,所述确定为第二页面类型时,基于第二数据抓取策略抓取目标页面的页面数据;第二页面类型用于表征动态页面类型,具体包括:
确定目标页面所包含的元素数据;
基于模拟的人为操作,触发已确定的元素数据,确定元素数据对应的触发行为;模拟的人为操作存储在操作库中,操作库中存储有多种模拟的人为操作;
利用脚本工具确定触发行为得到执行结果;
解析执行结果,得到页面数据。
结合第一方面第一实施方式,在第一方面第三实施方式中,第一数据抓取策略为基于网络请求页面数据;
相应的,所述确定为第一页面类型时,基于第一数据抓取策略抓取目标页面的页面数据,具体包括:
确定为第一页面类型时,基于网络请求页面数据抓取目标页面的页面数据。
结合第一方面,在第一方面第四实施方式中,所述基于预设模板,将格式化数据转换为模型层代码以及网络层代码,具体包括:
基于模型层预设模板,将格式化数据填充至模型层预设模板的第一占位符中并替换第一占位符,得到模型层代码;
基于网络层预设模板以及模型层代码,将格式化数据填充至模型层预设模板的第二占位符中并替换第二占位符,得到网络层代码。
结合第一方面,在第一方面第五实施方式中,所述整合页面数据、格式化数据、模型层代码以及网络层代码并写入预设文件中,得到开发文件,具体包括:
将模型层代码以及网络层代码格式化,得到模型层格式化代码以及网络层格式化代码;
整合页面数据、格式化数据、模型层格式化代码以及网络层格式化代码并写入预设文件中,形成开发文件。
第二方面,本实施例提供了一种软件的开发装置,所述装置包括:
数据抓取模块,用于确定目标页面的页面类型,基于已确定的页面类型确定数据抓取策略,并基于数据抓取策略,抓取目标页面的页面数据;页面数据是通过脚本工具确定触发行为并得到执行结果,并基于执行结果得到的;触发行为是利用模拟的人为操作触发页面数据得到的;
数据解析模块,用于按照预设规则解析页面数据,确定页面数据中的格式化数据;格式化数据包括接口地址段数据、参数说明段数据以及返回的数据实体段数据;
代码生成模块,用于基于预设模板,将格式化数据转换为模型层代码以及网络层代码;
软件开发模块,用于整合页面数据、格式化数据、模型层代码以及网络层代码并写入预设文件中,得到开发文件。
第三方面,本实施例提供了一种电子设备,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行第一方面或第一方面中任一项优选实施例所述的软件的开发方法。
第四方面,本实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行第一方面或第一方面中任一项优选实施例所述的软件的开发方法。
第五方面,本实施例提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述软件的开发方法的步骤。
本发明提供的软件的开发方法、装置、设备及介质,通过页面类型确定数据抓取策略,并基于数据抓取策略,抓取目标页面的页面数据,解析得到的页面数据得到所需的格式化数据,在软件开发过程中,不需要关注模型层、网络层代码的编写,通过预设模板自动完成相关代码的自动生成,开发工程师只需要关注业务逻辑层、视图层代码实现即可,有效提升了软件的研发效率,并且通过通过预设模板的自动化生成相关代码,减少了开发工程师因开发接口数据繁多,重复性代码编写带来的代码编写错误率。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本申请实施例的软件的开发方法的流程示意图之一;
图2是根据本申请实施例的软件的开发方法的流程示意图之二;
图3是根据本申请实施例的软件的开发方法的流程示意图之三;
图4是根据本申请实施例的软件的开发方法的流程示意图之四;
图5是根据本申请实施例的软件的开发方法的流程示意图之五;
图6是根据本申请实施例的软件的开发装置的结构示意图;
图7是本申请实施例提供的电子设备的硬件结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了便于对app进行开发和维护,提升代码的可读性以及可维护性,现有的app类软件开发方法一般为:通常是先对软件项目进行分层,例如将客户端划分为界面层、接入层、逻辑层、视图层和网络层等工作层,其中,网络层为app提供基本网络请求能力,通过与网络服务器集群的接入层应用程序接口(Application Programming Interface,API)调用,实现网络数据的获取、序列化、数据模型(model)转换等,app通过和网络层通信,实现app网络数据的获取和解析,并为应用层功能实现提供能力支撑;模型层为网络层数据提供app端的数据序列化,提供数据定义能力,增强了数据的可读性、可操作性、可维护性,同时,app类软件开发需要创建对应的模型类,代码会通过操作模型类对象,而不是直接操作复杂的数据来编写代码。
因此,现有技术中需要针对每一工作层分别指派相应的开发人员进行开发和维护,进而极大的增加了人力成本。并且这些工作层自上而下强依赖,因此下层的工作需要等待上层工作发成后才能开始启动,进而导致整体开发的敏捷性较差,工作效率较低,例如对于app类的软件开发,网路层代码需要依赖模型层代码,而通过工具开发的代码存在网络层代码缺失、代码孤立的问题,并不能达到直接使用的标准,需要后续的二次人工调整。
正是由于需要依赖前期的各种约束配置,app类软件开发过程中存在细小的差别时,就可能会出现软件代码生成失败或者数据异常的问题,因此相邻工作层之间的开发人员之间需要约定好接口,针对一个业务需求,每层的开发人员对应约定的接口实现,进行相关的联调接入测试。
目前网络层需要负责至少以下功能:网络请求获取Json数据,对Json数据进行映射得到数据模型,然而,在数据类型扩展、代码规范调整等方面,现有代码生成专注于模型类本身,没有网络层代码生成能力或者生成的代码可维护性低,扩展性差,在数据模型复用等方面并不支持扩展。
为了解决上述问题,在本实施例中提供了一种软件的开发方法,本发明实施例的软件的开发方法可用于电子设备,电子设备包括但不局限于:电脑、手机、平板电脑等,图1是根据本发明实施例的软件的开发方法的流程示意图,如图1所示,该方法包括如下步骤:
S11、确定目标页面的页面类型,基于已确定的页面类型确定数据抓取策略,并基于数据抓取策略,抓取目标页面的页面数据。在本发明实施例中,页面数据是通过脚本工具确定触发行为并得到执行结果,并基于执行结果得到的,其中,触发行为是利用模拟的人为操作触发页面数据得到的,模拟的人为操作。
在本发明实施例中,脚本工具为JS脚本,上述的触发行为会触发JS脚本,之后便能够得到JS脚本的执行结果。
具体的,在本发明实施例中,页面类型包括第一页面类型和第二页面类型,第一页面类型对应静态页面,第二页面类型对应动态页面,并且根据不同的页面类型,确定不同的数据抓取策略,第一页面类型对应的是第一数据抓取策略,第二页面类型对应的是第二数据抓取策略。
其中,当确定为第一数据抓取策略时,与现有技术类似,通过网络请求获取静态的页面数据;当确定为第二数据抓取策略时,会先获取页面中的元素数据,之后模拟人为操作去触发获取到的上述元素数据,以此触发脚本文件,再抓取脚本文件的执行结果数据,对执行结果数据进行分析得到动态的页面数据。上述的脚本文件为JS脚本。不同的数据抓取策略如何进行具体的页面数据抓取,将在下文进行具体阐述。
S12、按照预设规则解析页面数据,确定页面数据中的格式化数据。在本发明实施例中,格式化数据包括接口地址段数据、参数说明段数据以及返回的数据实体段数据。
作为本发明实施例的一种优选的实施方式,由于页面数据是JS脚本返回的数据,数据的格式为markdown格式,包含了一些软件开发中所谓的冗余数据,该方法中会设置一个预设的规则引擎,规则引擎中包含了对应的预设规则,规则引擎用于解析页面数据,得到其中的软件开发过程真实所需数据也就是有效数据,也即为上述的格式化数据,包括:接口地址段数据、参数说明段数据以及返回的数据实体段数据。
需要说明的是,预设规则可以需求进行相关的修改与更新,预设规则的目的是解析出真实所需的数据。
S13、基于预设模板,将格式化数据转换为模型层代码以及网络层代码。
模型层主要存储的是模型类对象实体,这些模型类对象实体的组合叫做实体类库,它是数据库表的映射对象,在软件实际开发的过程中,要建立对象实例,将关系数据库表采用对象实体化的方式表现出来,辅助软件开发中对各个系统功能的控制与操作执行,并且还会把数据库表中的所有字段映射为系统对象,建立实体类库,进而实现各个工作层的参数传输,提高代码的阅读性。
需要说明的是,模型层主要作为中间介质在各个工作层之间传递数据,也就是模型层相当于中间介质,模型层包含所有与数据表相对应的实体类,工作层之间通过传输实体类对象来实现通信。
在本发明实施例中,模型层代码是形成网络层代码的基础,也就是,先生成的模型层代码再生成的网络层代码。同时,预设模板包括模型层预设模板以及网络层预设模板,可以理解的是,模型层预设模板用于将格式化数据转换为模型层代码,网络层预设模板用于基于已经生成的模型层代码将格式化数据转换为网络层代码。
S14、整合页面数据、格式化数据、模型层代码以及网络层代码并写入预设文件中,形成开发文件。
得到相应的开发文件后,预设文件是一个固定文件,因此,可以借助脚本工具以相对路径或者是绝对路径的方式从预设文件中读取该开发文件,进行相关的软件开发工作。
本发明的软件的开发方法,通过页面类型确定数据抓取策略,并基于数据抓取策略,抓取目标页面的页面数据,解析得到的页面数据得到所需的格式化数据,在软件开发过程中,不需要关注模型层、网络层代码的编写,通过预设模板自动完成相关代码的自动生成,开发工程师只需要关注业务逻辑层、视图层代码实现即可,有效提升了软件的研发效率,并且通过通过预设模板的自动化生成相关代码,减少了开发工程师因开发接口数据繁多,重复性代码编写带来的代码编写错误率。
在本实施例中提供了一种软件的开发方法,本发明实施例的软件的开发方法可用于上述电子设备,图2是根据本发明实施例的软件的开发方法的流程示意图,如图2所示,该方法包括如下步骤:
S211、确定目标页面的页面类型。
S212、确定为第一页面类型时,基于第一数据抓取策略抓取目标页面的页面数据,在本发明实施例中,第一页面类型用于表征静态页面类型。
S213、确定为第二页面类型时,基于第二数据抓取策略抓取目标页面的页面数据,在本发明实施例中,第二页面类型用于表征动态页面类型。
在步骤S211至步骤S213中,会基于目标页面的页面类型确定不同的数据抓取策略,进行不同方式的抓取策略,并抓取页面数据。
更具体的,在本发明实施例中,第一数据抓取策略为基于网络请求页面数据,相对应的,步骤S212具体为:确定为第一页面类型时,基于网络请求目标页面的页面数据。
作为本发明实施例中的一种优选实施方式,第一数据抓取策略通过网络请求框架request直接获取到目标页面的页面数据。
S22、按照预设规则解析页面数据,确定页面数据中的格式化数据。在本发明实施例中,格式化数据包括接口地址段数据、参数说明段数据以及返回的数据实体段数据。
详细请参见如图1所示实施例的步骤S12,在此不再赘述。
S23、基于预设模板,将格式化数据转换为模型层代码以及网络层代码。
详细请参见如图1所示实施例的步骤S13,在此不再赘述。
S24、整合页面数据、格式化数据、模型层代码以及网络层代码并写入预设文件中,形成开发文件。
详细请参见如图1所示实施例的步骤S14,在此不再赘述。
为了解决上述问题,在本实施例中提供了一种软件的开发方法,本发明实施例的软件的开发方法可用于上述电子设备,图3是根据本发明实施例的软件的开发方法的流程示意图,如图3所示,步骤S213具体包括:
S2131、确定目标页面所包含的元素数据。
现有技术中,内嵌了页面执行脚本,直接通过网络请求框架例如request获取的是页面模版数据,并无法直接获取到页面的真实数据。在步骤S2131中,会先获取目标页面中所有元素数据,还会记录每个元素数据的元素唯一编码(Identity Document,ID),方便之后记录对各个元素数据的操作结果。在此,对如何获取某个网页页面的元素数据以及元素数据ID的方式不做任何限制,只要确保到能够获取到目标页面的元素数据ID以及元素数据ID即可。
作为本发明实施例的一种可选实施方式,步骤S2131会使用到selenium python框架中的webDriver驱动浏览器模拟人工访问接口的地址(Uniform Resource Locator,URL),获取到动态的网页页面中包含的各项元素数据。
在本发明实施例中,接口的地址(Uniform Resource Locator,URL)、模型类对象的名称、模型类对象所支持的前缀可以进行配置,具体可以通过以下方式进行配置:在W命令模式下交互式录入相应的规则;基于用户传输的配置文件进行相关配置;基于用户传输的脚本执行文件直接的录入。
S2132、基于模拟的人为操作,触发已确定的元素数据,确定元素数据对应的触发行为。
S2133、利用脚本工具确定触发行为得到执行结果。优选的,脚本工具为JS脚本。
在本发明实施例中,步骤S2133也会使用到selenium python框架中的webDriver模拟所需的人为操作。
区别于现有技术,在本发明实施例中,还会抓取到目标页面中的元素ID并且借助webdriver等工具模拟人为行为去操纵各个元素数据,以此触发脚本文件也就是JS脚本的执行,最后获取JS脚本执行所得到的结果数据,将结果数据作为页面数据。
作为本发明实施例的一种可选实施方式,模拟的人为操作,例如人为点击操作、人为框选操作、人为刷新操作等等,会预先存储在电子设备的操作库中,操作库用于保存各种预先配置好的模拟的人为操作,配置的内容包括但不局限于:操作内容、操作时长、操作顺序等,配置的内容与各项模拟的人为操作相对应并且进行绑定。需要说明的是,操作库中保存的各项模拟的人为操作可以根据需求进行修改、删减等。
S2134、解析执行结果,得到页面数据。在本发明实施例中,通过分析并解析执行结果,得到生成代码需要使用的关键性数据,也就是动态目标页面的页面数据。
在本实施例中提供了一种软件的开发方法,本发明实施例的软件的开发方法可用于上述电子设备,图4是根据本发明实施例的软件的开发方法的流程示意图,如图4所示,该方法包括如下步骤:
S31、确定目标页面的页面类型,基于已确定的页面类型确定数据抓取策略,并基于数据抓取策略,抓取目标页面的页面数据。在本发明实施例中,页面数据是通过脚本工具确定触发行为并得到执行结果,并基于执行结果得到的,其中,触发行为是利用模拟的人为操作触发页面数据得到的,模拟的人为操作。
详细请参见如图1所示实施例的步骤S11,在此不再赘述。
S32、按照预设规则解析页面数据,确定页面数据中的格式化数据。在本发明实施例中,格式化数据包括接口地址段数据、参数说明段数据以及返回的数据实体段数据。
详细请参见如图1所示实施例的步骤S12,在此不再赘述。
S331、基于模型层预设模板,将格式化数据填充至模型层预设模板的第一占位符中并替换第一占位符,得到模型层代码。
S332、基于网络层预设模板以及模型层代码,将格式化数据填充至模型层预设模板的第二占位符中并替换第二占位符,得到网络层代码。
模型层预设模板有规定的范式代码,生成时,只需要替换模型层预设模板范式代码里面的固定占位符(第一占位符)即可生成模型层代码,同样,网络层预设模板有规定的范式代码,生成时,只需要替换网络层预设模板范式代码里面的固定占位符(第二占位符)即可生成网络层代码。通过范式代码形成的模型层代码以及网络层代码均具有相应的代码注释信息,上述注释信息包括注释、属性注释、网络层方法注释、方法入参出参注释等,方便快捷的同时,零误差,准确性很高代码生成过程准确、迅速、可读性强,能够非常便捷地适应版本迭代;基于范式代码的预设模板规范统一,生成的代码严格按照代码规范进行生成,不会出现不一致的情况,有效提升了代码可读性、可维护性
在本发明实施例中,模型层预设模板以及网络层预设模板模型层预设模板以及网络层预设模板均存储在电子设备的模板库中,模板库中的模板可以是模版引擎负责加载本地模版或者是服务器端代码模版,然后存储在模板库中。
无论是模型层预设模版和网络层预设模板的作用均是为了规范代码的生成,不同目标平台代码风格的制定,例如:生成的代码命名时,前缀所要带的名称/前缀名;不同类型的数据在不同平台对应的数据类型名称,比如int在ios平台对应的是NSInteger,android对应的是long int;IOS系统的模型类对象,需要通过protocol方式指定协议。
上述的预设模板支持自定义进修改,包括规则自定义的改动,使得后续开发非常方便,增强了可读性。避免每次做规则调整,都要梳理代码,梳理改动方案,费时费力还容易出错,之后新生成的代码只需要替换旧的文件中的固定占位符即可,非常方便,减少人工干预,有效避免了人为因素带来的各种问题。
在本发明实施例中,通过抽离封装各端平台的网络层预设模板以及模型层模版,通过对模版引擎做定制化开发,即可实现跨端代码生成。
S34、整合页面数据、格式化数据、模型层代码以及网络层代码并写入预设文件中,形成开发文件。
详细请参见如图1所示实施例的步骤S14,在此不再赘述。
在本实施例中提供了一种软件的开发方法,本发明实施例的软件的开发方法可用于上述电子设备,图5是根据本发明实施例的软件的开发方法的流程示意图,如图5所示,该方法包括如下步骤:
S41、确定目标页面的页面类型,基于已确定的页面类型确定数据抓取策略,并基于数据抓取策略,抓取目标页面的页面数据。在本发明实施例中,页面数据是通过脚本工具确定触发行为并得到执行结果,并基于执行结果得到的,其中,触发行为是利用模拟的人为操作触发页面数据得到的,模拟的人为操作。
详细请参见如图1所示实施例的步骤S11,在此不再赘述。
S42、按照预设规则解析页面数据,确定页面数据中的格式化数据。在本发明实施例中,格式化数据包括接口地址段数据、参数说明段数据以及返回的数据实体段数据。
详细请参见如图1所示实施例的步骤S12,在此不再赘述。
S43、基于预设模板,将格式化数据转换为模型层代码以及网络层代码。
详细请参见如图1所示实施例的步骤S13,在此不再赘述。
S441、将模型层代码以及网络层代码格式化,得到模型层格式化代码以及网络层格式化代码。
在本发明实施例中,通过format_objc等代码格式化工具格式化模型层代码以及网络层代码,便于之后写入固定路径的预设文件中,形成开发人员所需的代码。
S442、整合页面数据、格式化数据、模型层格式化代码以及网络层格式化代码并写入预设文件中,形成开发文件。
由于现有方式中是借助Json数据映射得到数据模型,Json数据需要先拷贝并且粘贴到固定文件,之后再配置脚本环境,执行脚本,拷贝生成的结果,数据过多时,拷贝特别费时费力,对用户的体验性非常不好。在本发明实施例中,不需要再拷贝Json数据至固定文件,形成开发文件的过程更加灵活。
下面对本发明提供的软件的开发装置进行描述,下文描述的软件的开发装置与上文描述的软件的开发方法可相互对应参照。
在本实施例中提供了一种软件的开发装置,本发明实施例的软件的开发装置可用于电子设备,电子设备包括但不局限于:电脑、手机、平板电脑等,图1是根据本发明实施例的软件的开发装置的结构示意图,如图6所示,该装置包括如下步骤:
数据抓取模块11,用于确定目标页面的页面类型,基于已确定的页面类型确定数据抓取策略,并基于数据抓取策略,抓取目标页面的页面数据。在本发明实施例中,当页面类型为动态数据类型时,通过脚本工具确定触发行为得到执行结果,并基于执行结果得到的,触发行为是利用模拟的人为操作触发页面数据得到的。
在本发明实施例中,脚本工具为JS脚本,上述的触发行为会触发JS脚本,之后便能够得到JS脚本的执行结果。
具体的,在本发明实施例中,页面类型包括第一页面类型和第二页面类型,第一页面类型对应静态页面,第二页面类型对应动态页面,并且根据不同的页面类型,确定不同的数据抓取策略,第一页面类型对应的是第一数据抓取策略,第二页面类型对应的是第二数据抓取策略。
其中,当确定为第一数据抓取策略时,与现有技术类似,通过网络请求获取静态的页面数据也就是Json数据;当确定为第二数据抓取策略时,会先获取页面中的元素数据,之后模拟人为操作去触发获取到的上述元素数据,以此触发JS脚本,再抓取JS脚本的执行结果数据,对执行结果数据进行分析得到动态的页面数据。不同的数据抓取策略如何进行具体的页面数据抓取,将在下文进行具体阐述。
数据解析模块12,用于按照预设规则解析页面数据,确定页面数据中的格式化数据。在本发明实施例中,格式化数据包括接口地址段数据、参数说明段数据以及返回的数据实体段数据。
作为本发明实施例的一种优选的实施方式,由于页面数据是JS脚本返回的数据,数据的格式为markdown格式,包含了一些软件开发中所谓的冗余数据,该装置中会设置一个预设的规则引擎,规则引擎中包含了对应的预设规则,规则引擎用于解析页面数据,得到其中的软件开发过程真实所需数据也就是有效数据,也即为上述的格式化数据,包括:接口地址段数据、参数说明段数据以及返回的数据实体段数据。
需要说明的是,预设规则可以需求进行相关的修改与更新,预设规则的目的是解析出真实所需的数据。
代码生成模块13,用于基于预设模板,将格式化数据转换为模型层代码以及网络层代码。
模型层主要存储的是模型类对象实体,这些模型类对象实体的组合叫做实体类库,它是数据库表的映射对象,在软件实际开发的过程中,要建立对象实例,将关系数据库表采用对象实体化的方式表现出来,辅助软件开发中对各个系统功能的控制与操作执行,并且还会把数据库表中的所有字段映射为系统对象,建立实体类库,进而实现各个工作层的参数传输,提高代码的阅读性。
需要说明的是,模型层主要作为中间介质在各个工作层之间传递数据,也就是模型层相当于中间介质,模型层包含所有与数据表相对应的实体类,工作层之间通过传输实体类对象来实现通信。
在本发明实施例中,模型层代码是形成网络层代码的基础,也就是,先生成的模型层代码再生成的网络层代码。
软件开发模块14,用于整合页面数据、格式化数据、模型层代码以及网络层代码并写入预设文件中,形成开发文件。
得到相应的开发文件后,预设文件是一个固定文件,因此,可以借助脚本工具以相对路径或者是绝对路径的方式从预设文件中读取该开发文件,进行相关的软件开发工作。
图7示例了一种电子设备的实体结构示意图,如图7所示,该电子设备可以包括:处理器(processor)510、通信接口(Communications Interface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储器530中的逻辑命令,以执行软件的开发方法,该方法包括:
确定目标页面的页面类型,基于已确定的页面类型确定数据抓取策略,并基于数据抓取策略,抓取目标页面的页面数据;当页面类型为动态数据类型时,页面数据是通过脚本工具确定触发行为并得到执行结果,并基于执行结果得到的;触发行为是利用模拟的人为操作触发页面数据得到的;
按照预设规则解析页面数据,确定页面数据中的格式化数据;格式化数据包括接口地址段数据、参数说明段数据以及返回的数据实体段数据;
基于预设模板,将格式化数据转换为模型层代码以及网络层代码;
整合页面数据、格式化数据、模型层代码以及网络层代码并写入预设文件中,得到开发文件。
此外,上述的存储器530中的逻辑命令可以通过软件功能单元的形式实现并作为独立的介质销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件介质的形式体现出来,该计算机软件介质存储在一个存储介质中,包括若干命令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序介质,所述计算机程序介质包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的软件的开发方法,该方法包括:
确定目标页面的页面类型,基于已确定的页面类型确定数据抓取策略,并基于数据抓取策略,抓取目标页面的页面数据;当页面类型为动态数据类型时,页面数据是通过脚本工具确定触发行为并得到执行结果,并基于执行结果得到的;触发行为是利用模拟的人为操作触发页面数据得到的;
按照预设规则解析页面数据,确定页面数据中的格式化数据;格式化数据包括接口地址段数据、参数说明段数据以及返回的数据实体段数据;
基于预设模板,将格式化数据转换为模型层代码以及网络层代码;
整合页面数据、格式化数据、模型层代码以及网络层代码并写入预设文件中,得到开发文件。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的软件的开发方法,该方法包括:
确定目标页面的页面类型,基于已确定的页面类型确定数据抓取策略,并基于数据抓取策略,抓取目标页面的页面数据;当页面类型为动态数据类型时,页面数据是通过脚本工具确定触发行为并得到执行结果,并基于执行结果得到的;触发行为是利用模拟的人为操作触发页面数据得到的;
按照预设规则解析页面数据,确定页面数据中的格式化数据;格式化数据包括接口地址段数据、参数说明段数据以及返回的数据实体段数据;
基于预设模板,将格式化数据转换为模型层代码以及网络层代码;
整合页面数据、格式化数据、模型层代码以及网络层代码并写入预设文件中,得到开发文件。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件介质的形式体现出来,该计算机软件介质可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干命令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种软件的开发方法,其特征在于,所述方法包括:
确定目标页面的页面类型,基于已确定的页面类型确定数据抓取策略,并基于数据抓取策略,抓取目标页面的页面数据;当页面类型为动态数据类型时,页面数据是通过脚本工具确定触发行为并得到执行结果,并基于执行结果得到的;触发行为是利用模拟的人为操作触发页面数据得到的;
按照预设规则解析页面数据,确定页面数据中的格式化数据;格式化数据包括接口地址段数据、参数说明段数据以及返回的数据实体段数据;
基于预设模板,将格式化数据转换为模型层代码以及网络层代码;
整合页面数据、格式化数据、模型层代码以及网络层代码并写入预设文件中,得到开发文件。
2.根据权利要求1所述的软件的开发方法,其特征在于,所述确定目标页面的页面类型,基于已确定的页面类型确定数据抓取策略,并基于数据抓取策略,抓取目标页面的页面数据,具体包括:
确定目标页面的页面类型;
确定为第一页面类型时,基于第一数据抓取策略抓取目标页面的页面数据;第一页面类型用于表征静态页面类型;
确定为第二页面类型时,基于第二数据抓取策略抓取目标页面的页面数据;第二页面类型用于表征动态页面类型。
3.根据权利要求2所述的软件的开发方法,其特征在于,所述确定为第二页面类型时,基于第二数据抓取策略抓取目标页面的页面数据;第二页面类型用于表征动态页面类型,具体包括:
确定目标页面所包含的元素数据;
基于模拟的人为操作,触发已确定的元素数据,确定元素数据对应的触发行为;模拟的人为操作存储在操作库中,操作库中存储有多种模拟的人为操作;
利用脚本工具确定触发行为得到执行结果;
解析执行结果,得到页面数据。
4.根据权利要求2所述的软件的开发方法,其特征在于,第一数据抓取策略为基于网络请求页面数据;
相应的,所述确定为第一页面类型时,基于第一数据抓取策略抓取目标页面的页面数据,具体包括:
确定为第一页面类型时,基于网络请求页面数据抓取目标页面的页面数据。
5.根据权利要求1所述的软件的开发方法,其特征在于,所述基于预设模板,将格式化数据转换为模型层代码以及网络层代码,具体包括:
基于模型层预设模板,将格式化数据填充至模型层预设模板的第一占位符中并替换第一占位符,得到模型层代码;
基于网络层预设模板以及模型层代码,将格式化数据填充至模型层预设模板的第二占位符中并替换第二占位符,得到网络层代码。
6.根据权利要求1所述的软件的开发方法,其特征在于,所述整合页面数据、格式化数据、模型层代码以及网络层代码并写入预设文件中,得到开发文件,具体包括:
将模型层代码以及网络层代码格式化,得到模型层格式化代码以及网络层格式化代码;
整合页面数据、格式化数据、模型层格式化代码以及网络层格式化代码并写入预设文件中,形成开发文件。
7.一种软件的开发装置,其特征在于,所述装置包括:
数据抓取模块,用于确定目标页面的页面类型,基于已确定的页面类型确定数据抓取策略,并基于数据抓取策略,抓取目标页面的页面数据;页面数据是通过脚本工具确定触发行为并得到执行结果,并基于执行结果得到的;触发行为是利用模拟的人为操作触发页面数据得到的;
数据解析模块,用于按照预设规则解析页面数据,确定页面数据中的格式化数据;格式化数据包括接口地址段数据、参数说明段数据以及返回的数据实体段数据;
代码生成模块,用于基于预设模板,将格式化数据转换为模型层代码以及网络层代码;
软件开发模块,用于整合页面数据、格式化数据、模型层代码以及网络层代码并写入预设文件中,得到开发文件。
8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述软件的开发的步骤。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述软件的开发的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述软件的开发的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211272842.3A CN115599361A (zh) | 2022-10-18 | 2022-10-18 | 一种软件的开发方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211272842.3A CN115599361A (zh) | 2022-10-18 | 2022-10-18 | 一种软件的开发方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115599361A true CN115599361A (zh) | 2023-01-13 |
Family
ID=84846196
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211272842.3A Pending CN115599361A (zh) | 2022-10-18 | 2022-10-18 | 一种软件的开发方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115599361A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116719986A (zh) * | 2023-08-10 | 2023-09-08 | 深圳传趣网络技术有限公司 | 基于Python的数据抓取方法、装置、设备及存储介质 |
-
2022
- 2022-10-18 CN CN202211272842.3A patent/CN115599361A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116719986A (zh) * | 2023-08-10 | 2023-09-08 | 深圳传趣网络技术有限公司 | 基于Python的数据抓取方法、装置、设备及存储介质 |
CN116719986B (zh) * | 2023-08-10 | 2023-12-26 | 深圳传趣网络技术有限公司 | 基于Python的数据抓取方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10705942B1 (en) | Simulated testing of API | |
CN109117131B (zh) | 代码生成方法及装置、存储介质及电子终端 | |
US7739697B2 (en) | System and method for creating web services from an existing web site | |
CN108762743B (zh) | 一种数据表操作代码生成方法及装置 | |
JP2003256202A (ja) | 整合性検査支援プログラム、整合性検査支援方法および整合性検査支援装置 | |
WO2010118416A2 (en) | Software database system and process of building and operating the same | |
US20130198333A1 (en) | Method and device for recording and reproducing web operation | |
CN111722873A (zh) | 代码重构方法、装置、设备及介质 | |
CN115599361A (zh) | 一种软件的开发方法、装置、设备及介质 | |
US11604662B2 (en) | System and method for accelerating modernization of user interfaces in a computing environment | |
CN111078529B (zh) | 客户端写入模块测试方法、装置、电子设备 | |
CN115470152B (zh) | 测试代码生成方法、测试代码生成装置以及存储介质 | |
US10922075B2 (en) | System and method for creating and validating software development life cycle (SDLC) digital artifacts | |
CN111581051A (zh) | 基于web前端的系统运行日志处理方法、装置、设备及介质 | |
CN111258802A (zh) | 捕获应用程序崩溃信息的方法及相关设备 | |
CN116400914A (zh) | 一种基于数据模型快速构建web应用的方法 | |
CN113590564B (zh) | 数据存储方法、装置、电子设备及存储介质 | |
CN114995790A (zh) | 一种组件开发方法、装置、计算机可读介质及电子设备 | |
CN114253537A (zh) | 表单生成方法及装置、电子设备和存储介质 | |
US8631393B2 (en) | Custom database system and method of building and operating the same | |
CN111008018A (zh) | 一种can信号解包处理方法及系统 | |
JP2020087087A (ja) | 修正候補特定プログラム | |
CN117473871B (zh) | 一种基于CATIA Magic的形式化系统建模方法 | |
KR102190795B1 (ko) | 사회복지정보 통합연계 관리를 지원하기 위한 연계프레임워크, 이를 이용한 사회복지정보 통합연계 관리 시스템 | |
CN111488150B (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 |