CN113590134A - 一种项目生成方法及装置 - Google Patents

一种项目生成方法及装置 Download PDF

Info

Publication number
CN113590134A
CN113590134A CN202110937909.XA CN202110937909A CN113590134A CN 113590134 A CN113590134 A CN 113590134A CN 202110937909 A CN202110937909 A CN 202110937909A CN 113590134 A CN113590134 A CN 113590134A
Authority
CN
China
Prior art keywords
processing logic
software code
generator
logic
generating
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
Application number
CN202110937909.XA
Other languages
English (en)
Inventor
曹慧琳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing ByteDance Network Technology Co Ltd
Original Assignee
Beijing ByteDance Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing ByteDance Network Technology Co Ltd filed Critical Beijing ByteDance Network Technology Co Ltd
Priority to CN202110937909.XA priority Critical patent/CN113590134A/zh
Publication of CN113590134A publication Critical patent/CN113590134A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/449Object-oriented method invocation or resolution

Abstract

本公开提供了一种项目生成方法及装置,首先响应于针对目标项目的生成指令,加载所述目标项目的第一生成器,并执行所述第一生成器中的第一处理逻辑,然后,若所述第一处理逻辑引用第二生成器的第二处理逻辑,则在基于所述第一处理逻辑生成第一软件代码的过程中,加载所述第二生成器,并执行所述第二生成器中的第二处理逻辑生成第二软件代码,最后,基于所述第一软件代码和所述第二软件代码,确定所述目标项目对应的第三软件代码。本公开实施例通过设置多个生成器,将目标项目的生成器分解为多个,并通过处理逻辑调用多个生成器,从而在进行项目开发的过程复用生成器,提高开发效率。

Description

一种项目生成方法及装置
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种项目生成方法及装置。
背景技术
在软件项目的开发过程中,可以通过脚手架工具创建初始化项目代码,初始化项目代码可以作为一个项目框架,用户只需要向初始化项目代码中填充核心功能的代码,即可得到一个完整的项目。脚手架工具能够从数据库中调用各种数据来生成的初始化项目代码。
脚手架工具通常由一个生成器实现,在通过脚手架工具生成项目后,脚手架的生成器便被抛弃,若要对项目的部分内容进行更新迭代,需要重新编写整个项目的脚手架生成器,效率较低。
发明内容
本公开实施例至少提供一种项目生成方法及装置。
第一方面,本公开实施例提供了一种项目生成方法,包括:
响应于针对目标项目的生成指令,加载所述目标项目的第一生成器,并执行所述第一生成器中的第一处理逻辑;
若所述第一处理逻辑引用第二生成器的第二处理逻辑,则在基于所述第一处理逻辑生成第一软件代码的过程中,加载所述第二生成器,并执行所述第二生成器中的第二处理逻辑生成第二软件代码;
基于所述第一软件代码和所述第二软件代码,确定所述目标项目对应的第三软件代码。
一种可选的实施方式中,所述执行所述第二生成器中的第二处理逻辑生成第二软件代码,包括:
若所述第二处理逻辑引用第三生成器的第三处理逻辑,则在基于所述第二处理逻辑生成第四软件代码的过程中,加载所述第三生成器,并执行所述第三生成器中的第三处理逻辑生成第五软件代码;
基于所述第四软件代码及所述第五软件代码,确定所述第二软件代码。
一种可选的实施方式中,所述基于所述第一处理逻辑生成第一软件代码,包括:
基于所述第一处理逻辑中的代码生成逻辑,和/或,所述第一处理逻辑中的模板调用逻辑及所述第一生成器对应的第一模板文件,生成所述第一软件代码。
一种可选的实施方式中,所述执行所述第一生成器中的第一处理逻辑,包括:
获取并加载当前执行环境对应的环境信息及配置参数;
基于所述环境信息及配置参数,执行所述第一生成器中的第一处理逻辑。
一种可选的实施方式中,所述基于所述第一软件代码和所述第二软件代码,确定所述目标项目对应的第三软件代码,包括:
对所述第一软件代码及所述第二软件代码进行数据校验;
在所述第一软件代码及所述第二软件代码通过所述数据校验的情况下,将所述第一软件代码及所述第二软件代码融合,得到所述第三软件代码。
一种可选的实施方式中,所述加载所述目标项目的第一生成器,包括:
在所述第一处理逻辑中存在模板调用逻辑的情况下,将所述第一生成器对应的第一模板文件加载至模板管理模块,以使所述模板管理模块对所述第一模板文件进行预处理;
所述基于所述第一处理逻辑中的代码生成逻辑,和/或,所述第一处理逻辑中的模板调用逻辑及所述第一生成器对应的第一模板文件,生成所述第一软件代码,包括:
基于所述第一处理逻辑中的代码生成逻辑,和/或,所述第一处理逻辑中的模板调用逻辑及预处理后的所述第一模板文件,生成所述第一软件代码。
第二方面,本公开实施例还提供一种项目生成装置,包括:
加载模块,用于响应于针对目标项目的生成指令,加载所述目标项目的第一生成器,并执行所述第一生成器中的第一处理逻辑;
调用模块,用于若所述第一处理逻辑引用第二生成器的第二处理逻辑,则在基于所述第一处理逻辑生成第一软件代码的过程中,加载所述第二生成器,并执行所述第二生成器中的第二处理逻辑生成第二软件代码;
确定模块,用于基于所述第一软件代码和所述第二软件代码,确定所述目标项目对应的第三软件代码。
一种可选的实施方式中,所述调用模块在执行所述第二生成器中的第二处理逻辑生成第二软件代码时,用于:
若所述第二处理逻辑引用第三生成器的第三处理逻辑,则在基于所述第二处理逻辑生成第四软件代码的过程中,加载所述第三生成器,并执行所述第三生成器中的第三处理逻辑生成第五软件代码;
基于所述第四软件代码及所述第五软件代码,确定所述第二软件代码。
一种可选的实施方式中,所述调用模块在基于所述第一处理逻辑生成第一软件代码时,用于:
基于所述第一处理逻辑中的代码生成逻辑,和/或,所述第一处理逻辑中的模板调用逻辑及所述第一生成器对应的第一模板文件,生成所述第一软件代码。
一种可选的实施方式中,所述加载模块在执行所述第一生成器中的第一处理逻辑时,用于:
获取并加载当前执行环境对应的环境信息及配置参数;
基于所述环境信息及配置参数,执行所述第一生成器中的第一处理逻辑。
一种可选的实施方式中,所述调用模块在基于所述第一软件代码和所述第二软件代码,确定所述目标项目对应的第三软件代码时,用于:
对所述第一软件代码及所述第二软件代码进行数据校验;
在所述第一软件代码及所述第二软件代码通过所述数据校验的情况下,将所述第一软件代码及所述第二软件代码融合,得到所述第三软件代码。
一种可选的实施方式中,所述加载模块在加载所述目标项目的第一生成器时,用于:
在所述第一处理逻辑中存在模板调用逻辑的情况下,将所述第一生成器对应的第一模板文件加载至模板管理模块,以使所述模板管理模块对所述第一模板文件进行预处理;
所述调用模块在基于所述第一处理逻辑中的代码生成逻辑,和/或,所述第一处理逻辑中的模板调用逻辑及所述第一生成器对应的第一模板文件,生成所述第一软件代码时,用于:
基于所述第一处理逻辑中的代码生成逻辑,和/或,所述第一处理逻辑中的模板调用逻辑及预处理后的所述第一模板文件,生成所述第一软件代码。
第三方面,本公开实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
第四方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
本公开实施例提供的项目生成方法及装置,首先响应于针对目标项目的生成指令,加载所述目标项目的第一生成器,并执行所述第一生成器中的第一处理逻辑,然后,若所述第一处理逻辑引用第二生成器的第二处理逻辑,则在基于所述第一处理逻辑生成第一软件代码的过程中,加载所述第二生成器,并执行所述第二生成器中的第二处理逻辑生成第二软件代码,最后,基于所述第一软件代码和所述第二软件代码,确定所述目标项目对应的第三软件代码。本公开实施例通过设置多个生成器,将目标项目的生成器分解为多个,并通过处理逻辑调用多个生成器,从而在进行项目开发的过程复用生成器,提高开发效率。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种项目生成方法的流程图;
图2示出了本公开实施例所提供的生成器调用关系的示意图;
图3示出了本公开实施例所提供的另一种项目生成方法的流程图;
图4示出了本公开实施例所提供的一种项目生成装置的示意图;
图5示出了本公开实施例所提供的一种电子设备的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
针对与现有技术中生成器不能复用,开发效率较低的技术问题,本公开提供了一种项目生成方法,通过设置多个生成器,将目标项目的生成器分解为多个,并通过处理逻辑调用多个生成器,从而在进行项目开发的过程复用生成器,提高开发效率。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种项目生成方法进行详细介绍,本公开实施例所提供的项目生成方法的执行主体一般为具有一定计算能力的计算机设备。在一些可能的实现方式中,该项目生成方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
参见图1所示,为本公开实施例提供的项目生成方法的流程图,所述方法包括步骤S101~S103,其中:
S101、响应于针对目标项目的生成指令,加载所述目标项目的第一生成器,并执行所述第一生成器中的第一处理逻辑。
该步骤中,可以响应于针对目标项目的生成指令,获取目标项目的生成器名称,从生成器数据库中查找到生成器名称对应的第一生成器,并加载第一生成器。生成器数据库可以设置在本地和/或其他设备上。
上述第一生成器可以为目标项目整体的生成器,也可以为目标项目的一个功能模块的生成器。在加载第一生成器时,可以将其加载至内存中,以便后续执行第一生成器中的第一处理逻辑。
进一步的,若第一生成器中的处理逻辑中存在模板调用逻辑,则可以将第一生成器携带的第一模板文件加载至模板管理模块,从而使模板管理模块对第一模板文件进行预处理,使得在执行处理逻辑时能够调用预处理后的第一模板文件,确保第一模板文件能够被正确调用。
第一生成器中的处理逻辑用于生成目标项目对应的代码,其中,处理逻辑可以包括代码生成逻辑和/或模板调用逻辑,代码生成逻辑可以用于生成依赖、命令等代码,模板调用代码可以调用其对应的模板,利用模板生成对应的代码。
在执行第一处理逻辑之前,可以获取并加载当前执行环境对应的环境信息及配置参数,再基于加载的环境信息及配置参数执行第一处理逻辑,使得第一处理逻辑能够正确执行。
其中,环境信息可以包括环境变量,终端设备能够对当前执行环境进行判断,并获取其对应的环境信息,配置参数可以包括依赖、插件等文件的路径信息、用户输入的参数等。
S102、若所述第一处理逻辑引用第二生成器的第二处理逻辑,则在基于所述第一处理逻辑生成第一软件代码的过程中,加载所述第二生成器,并执行所述第二生成器中的第二处理逻辑生成第二软件代码。
该步骤中,第一处理逻辑可能会引用其他的生成器中的处理逻辑,比如,若第一生成器用于生成目标项目整体的代码,其可能引用一些功能模块的生成器,用于生成这些功能模块的代码,再将这些功能模块的代码与自身生成的代码组合至一起,得到目标项目整体的代码。
这样,将目标项目拆分成多个功能模块或更小的代码片段,并实现这些功能模块或代码片段的生成器,在对目标项目进行开发迭代的过程中,这些生成器就能够得到复用,甚至在其他项目的开发中也能够复用,极大的提高了开发效率。
进一步的,若所述第二处理逻辑引用第三生成器的第三处理逻辑,则在基于所述第二处理逻辑生成第四软件代码的过程中,可以加载所述第三生成器,并执行所述第三生成器中的第三处理逻辑生成第五软件代码;基于所述第四软件代码及所述第五软件代码,确定所述第二软件代码。
同样的,被调用的第三生成器也可以调用其他生成器。
示例性的,如图2所示,为本公开实施例提供的生成器调用关系的示意图,图中生成器A为目标项目整体的生成器,其调用了生成器B及生成器C,生成器B与生成器C可以为目标项目不同功能模块的生成器,生成器B又调用了生成器D及生成器E,用于生成功能模块中特定的代码,生成器C同样调用生成器D,且又调用了生成器F。
S103、基于所述第一软件代码和所述第二软件代码,确定所述目标项目对应的第三软件代码。
该步骤中,第一处理逻辑生成的第一软件代码和第二处理逻辑生成的第二软件代码可以组合到一起,生成第三软件代码,该第三软件代码即为第一生成器所对应的代码,可以为目标项目整体的代码,也可以为目标项目的一功能模块的代码。
在组合之前,可以先对第一软件代码及第二软件代码进行数据校验,确定第一软件代码及第二软件代码的完整性,以及两者之间的是否能够融合,在通过数据校验的情况下,再将第一软件代码及第二软件代码融合,得到第三软件代码。
参见图3所示,为本公开实施例提供的另一种项目生成方法,首先获取需要的微生成器(上述生成器)的名称,然后加载微生成器,若微生成器的处理逻辑中存在模板调用逻辑则将魏胜成其中的模板信息放入物料管理模块(上述模板管理模块),然后准备执行环境及上下文信息(环境信息及配置参数),再执行微生成器中的处理逻辑,若在执行过程中发现调用了子生成器(如上述第二生成器),则采用与调用微生成器相同的方式执行子生成器,直到所有微生成器与子生成器均执行完毕,得到需要的项目代码。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与项目生成方法对应的项目生成装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述项目生成方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图4所示,为本公开实施例提供的一种项目生成装置的示意图,所述装置包括:
加载模块410,用于响应于针对目标项目的生成指令,加载所述目标项目的第一生成器,并执行所述第一生成器中的第一处理逻辑;
调用模块420,用于若所述第一处理逻辑引用第二生成器的第二处理逻辑,则在基于所述第一处理逻辑生成第一软件代码的过程中,加载所述第二生成器,并执行所述第二生成器中的第二处理逻辑生成第二软件代码;
确定模块430,用于基于所述第一软件代码和所述第二软件代码,确定所述目标项目对应的第三软件代码。
一种可选的实施方式中,所述调用模块420在执行所述第二生成器中的第二处理逻辑生成第二软件代码时,用于:
若所述第二处理逻辑引用第三生成器的第三处理逻辑,则在基于所述第二处理逻辑生成第四软件代码的过程中,加载所述第三生成器,并执行所述第三生成器中的第三处理逻辑生成第五软件代码;
基于所述第四软件代码及所述第五软件代码,确定所述第二软件代码。
一种可选的实施方式中,所述调用模块420在基于所述第一处理逻辑生成第一软件代码时,用于:
基于所述第一处理逻辑中的代码生成逻辑,和/或,所述第一处理逻辑中的模板调用逻辑及所述第一生成器对应的第一模板文件,生成所述第一软件代码。
一种可选的实施方式中,所述加载模块410在执行所述第一生成器中的第一处理逻辑时,用于:
获取并加载当前执行环境对应的环境信息及配置参数;
基于所述环境信息及配置参数,执行所述第一生成器中的第一处理逻辑。
一种可选的实施方式中,所述调用模块420在基于所述第一软件代码和所述第二软件代码,确定所述目标项目对应的第三软件代码时,用于:
对所述第一软件代码及所述第二软件代码进行数据校验;
在所述第一软件代码及所述第二软件代码通过所述数据校验的情况下,将所述第一软件代码及所述第二软件代码融合,得到所述第三软件代码。
一种可选的实施方式中,所述加载模块410在加载所述目标项目的第一生成器时,用于:
在所述第一处理逻辑中存在模板调用逻辑的情况下,将所述第一生成器对应的第一模板文件加载至模板管理模块,以使所述模板管理模块对所述第一模板文件进行预处理;
所述调用模块420在基于所述第一处理逻辑中的代码生成逻辑,和/或,所述第一处理逻辑中的模板调用逻辑及所述第一生成器对应的第一模板文件,生成所述第一软件代码时,用于:
基于所述第一处理逻辑中的代码生成逻辑,和/或,所述第一处理逻辑中的模板调用逻辑及预处理后的所述第一模板文件,生成所述第一软件代码。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
对应于图1中的项目生成方法,本公开实施例还提供了一种电子设备500,如图5所示,为本公开实施例提供的电子设备500结构示意图,包括:
处理器51、存储器52、和总线53;存储器52用于存储执行指令,包括内存521和外部存储器522;这里的内存521也称内存储器,用于暂时存放处理器51中的运算数据,以及与硬盘等外部存储器522交换的数据,处理器51通过内存521与外部存储器522进行数据交换,当所述电子设备500运行时,所述处理器51与所述存储器52之间通过总线53通信,使得所述处理器51执行以下指令:
响应于针对目标项目的生成指令,加载所述目标项目的第一生成器,并执行所述第一生成器中的第一处理逻辑;
若所述第一处理逻辑引用第二生成器的第二处理逻辑,则在基于所述第一处理逻辑生成第一软件代码的过程中,加载所述第二生成器,并执行所述第二生成器中的第二处理逻辑生成第二软件代码;
基于所述第一软件代码和所述第二软件代码,确定所述目标项目对应的第三软件代码。
一种可选的实施方式中,所述处理器51执行的步骤中,所述执行所述第二生成器中的第二处理逻辑生成第二软件代码,包括:
若所述第二处理逻辑引用第三生成器的第三处理逻辑,则在基于所述第二处理逻辑生成第四软件代码的过程中,加载所述第三生成器,并执行所述第三生成器中的第三处理逻辑生成第五软件代码;
基于所述第四软件代码及所述第五软件代码,确定所述第二软件代码。
一种可选的实施方式中,所述处理器51执行的步骤中,所述基于所述第一处理逻辑生成第一软件代码,包括:
基于所述第一处理逻辑中的代码生成逻辑,和/或,所述第一处理逻辑中的模板调用逻辑及所述第一生成器对应的第一模板文件,生成所述第一软件代码。
一种可选的实施方式中,所述处理器51执行的步骤中,所述执行所述第一生成器中的第一处理逻辑,包括:
获取并加载当前执行环境对应的环境信息及配置参数;
基于所述环境信息及配置参数,执行所述第一生成器中的第一处理逻辑。
一种可选的实施方式中,所述处理器51执行的步骤中,所述基于所述第一软件代码和所述第二软件代码,确定所述目标项目对应的第三软件代码,包括:
对所述第一软件代码及所述第二软件代码进行数据校验;
在所述第一软件代码及所述第二软件代码通过所述数据校验的情况下,将所述第一软件代码及所述第二软件代码融合,得到所述第三软件代码。
一种可选的实施方式中,所述处理器51执行的步骤中,所述加载所述目标项目的第一生成器,包括:
在所述第一处理逻辑中存在模板调用逻辑的情况下,将所述第一生成器对应的第一模板文件加载至模板管理模块,以使所述模板管理模块对所述第一模板文件进行预处理;
所述基于所述第一处理逻辑中的代码生成逻辑,和/或,所述第一处理逻辑中的模板调用逻辑及所述第一生成器对应的第一模板文件,生成所述第一软件代码,包括:
基于所述第一处理逻辑中的代码生成逻辑,和/或,所述第一处理逻辑中的模板调用逻辑及预处理后的所述第一模板文件,生成所述第一软件代码。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的项目生成方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的项目生成方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。

Claims (10)

1.一种项目生成方法,其特征在于,包括:
响应于针对目标项目的生成指令,加载所述目标项目的第一生成器,并执行所述第一生成器中的第一处理逻辑;
若所述第一处理逻辑引用第二生成器的第二处理逻辑,则在基于所述第一处理逻辑生成第一软件代码的过程中,加载所述第二生成器,并执行所述第二生成器中的第二处理逻辑生成第二软件代码;
基于所述第一软件代码和所述第二软件代码,确定所述目标项目对应的第三软件代码。
2.根据权利要求1所述的方法,其特征在于,所述执行所述第二生成器中的第二处理逻辑生成第二软件代码,包括:
若所述第二处理逻辑引用第三生成器的第三处理逻辑,则在基于所述第二处理逻辑生成第四软件代码的过程中,加载所述第三生成器,并执行所述第三生成器中的第三处理逻辑生成第五软件代码;
基于所述第四软件代码及所述第五软件代码,确定所述第二软件代码。
3.根据权利要求1所述的方法,其特征在于,所述基于所述第一处理逻辑生成第一软件代码,包括:
基于所述第一处理逻辑中的代码生成逻辑,和/或,所述第一处理逻辑中的模板调用逻辑及所述第一生成器对应的第一模板文件,生成所述第一软件代码。
4.根据权利要求1所述的方法,其特征在于,所述执行所述第一生成器中的第一处理逻辑,包括:
获取并加载当前执行环境对应的环境信息及配置参数;
基于所述环境信息及配置参数,执行所述第一生成器中的第一处理逻辑。
5.根据权利要求1所述的方法,其特征在于,所述基于所述第一软件代码和所述第二软件代码,确定所述目标项目对应的第三软件代码,包括:
对所述第一软件代码及所述第二软件代码进行数据校验;
在所述第一软件代码及所述第二软件代码通过所述数据校验的情况下,将所述第一软件代码及所述第二软件代码融合,得到所述第三软件代码。
6.根据权利要求3所述的方法,其特征在于,所述加载所述目标项目的第一生成器,包括:
在所述第一处理逻辑中存在模板调用逻辑的情况下,将所述第一生成器对应的第一模板文件加载至模板管理模块,以使所述模板管理模块对所述第一模板文件进行预处理;
所述基于所述第一处理逻辑中的代码生成逻辑,和/或,所述第一处理逻辑中的模板调用逻辑及所述第一生成器对应的第一模板文件,生成所述第一软件代码,包括:
基于所述第一处理逻辑中的代码生成逻辑,和/或,所述第一处理逻辑中的模板调用逻辑及预处理后的所述第一模板文件,生成所述第一软件代码。
7.一种项目生成装置,其特征在于,包括:
加载模块,用于响应于针对目标项目的生成指令,加载所述目标项目的第一生成器,并执行所述第一生成器中的第一处理逻辑;
调用模块,用于若所述第一处理逻辑引用第二生成器的第二处理逻辑,则在基于所述第一处理逻辑生成第一软件代码的过程中,加载所述第二生成器,并执行所述第二生成器中的第二处理逻辑生成第二软件代码;
确定模块,用于基于所述第一软件代码和所述第二软件代码,确定所述目标项目对应的第三软件代码。
8.根据权利要求7所述的装置,其特征在于,所述调用模块在基于所述第一处理逻辑生成第一软件代码时,用于:
基于所述第一处理逻辑中的代码生成逻辑,和/或,所述第一处理逻辑中的模板调用逻辑及所述第一生成器对应的第一模板文件,生成所述第一软件代码。
9.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至6任一所述的项目生成方法的步骤。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至6任意一项所述的项目生成方法的步骤。
CN202110937909.XA 2021-08-16 2021-08-16 一种项目生成方法及装置 Pending CN113590134A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110937909.XA CN113590134A (zh) 2021-08-16 2021-08-16 一种项目生成方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110937909.XA CN113590134A (zh) 2021-08-16 2021-08-16 一种项目生成方法及装置

Publications (1)

Publication Number Publication Date
CN113590134A true CN113590134A (zh) 2021-11-02

Family

ID=78258207

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110937909.XA Pending CN113590134A (zh) 2021-08-16 2021-08-16 一种项目生成方法及装置

Country Status (1)

Country Link
CN (1) CN113590134A (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040205696A1 (en) * 2001-03-12 2004-10-14 International Business Machines Corporation Framework for code generators
US20070174814A1 (en) * 2006-01-11 2007-07-26 Bea Systems, Inc. System and method for build script generation in a software development environment
CN101589366A (zh) * 2006-12-01 2009-11-25 莫雷克斯公司 面向生成器图形的编程框架中的并行化和植入
CN101960425A (zh) * 2008-02-29 2011-01-26 国际商业机器公司 用于事件处理的虚拟机和编程语言
CN106104482A (zh) * 2014-03-10 2016-11-09 微软技术许可有限责任公司 应用到应用的调用期间的应用脱水和再水合
CN110989986A (zh) * 2019-12-02 2020-04-10 浙江大搜车软件技术有限公司 基于软件模板的软件生成方法、装置和计算机设备
CN111722839A (zh) * 2020-06-24 2020-09-29 北京航天数据股份有限公司 一种代码生成方法、装置、电子设备及存储介质
CN111782207A (zh) * 2020-06-23 2020-10-16 北京青云科技股份有限公司 任务流代码生成方法、装置、设备及存储介质
CN113076084A (zh) * 2021-03-30 2021-07-06 网易(杭州)网络有限公司 资源文件处理方法、装置、设备及存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040205696A1 (en) * 2001-03-12 2004-10-14 International Business Machines Corporation Framework for code generators
US20070174814A1 (en) * 2006-01-11 2007-07-26 Bea Systems, Inc. System and method for build script generation in a software development environment
CN101589366A (zh) * 2006-12-01 2009-11-25 莫雷克斯公司 面向生成器图形的编程框架中的并行化和植入
CN101960425A (zh) * 2008-02-29 2011-01-26 国际商业机器公司 用于事件处理的虚拟机和编程语言
CN106104482A (zh) * 2014-03-10 2016-11-09 微软技术许可有限责任公司 应用到应用的调用期间的应用脱水和再水合
CN110989986A (zh) * 2019-12-02 2020-04-10 浙江大搜车软件技术有限公司 基于软件模板的软件生成方法、装置和计算机设备
CN111782207A (zh) * 2020-06-23 2020-10-16 北京青云科技股份有限公司 任务流代码生成方法、装置、设备及存储介质
CN111722839A (zh) * 2020-06-24 2020-09-29 北京航天数据股份有限公司 一种代码生成方法、装置、电子设备及存储介质
CN113076084A (zh) * 2021-03-30 2021-07-06 网易(杭州)网络有限公司 资源文件处理方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN112764753B (zh) 一种项目的部署方法、装置、电子设备及存储介质
CN110096263A (zh) Web前端代码自动生成方法及装置
CN114089975B (zh) 计算软件的扩展方法、装置、非易失性存储介质及处理器
CN106990955A (zh) 一种对应用程序进行打点的方法和系统
CN115185550A (zh) 服务部署方法、装置、计算机设备及存储介质
CN111158800B (zh) 基于映射关系构建任务dag的方法及装置
CN110795162A (zh) 生成容器镜像文件的方法和装置
CN114398040A (zh) 一种神经网络推理方法、装置、计算机设备及存储介质
CN109766123A (zh) 应用程序封装方法及装置
CN113032202A (zh) 芯片验证方法、系统、装置、计算机设备及存储介质
CN109508193B (zh) 一种应用部署运行方法、装置、终端设备和介质
CN113590134A (zh) 一种项目生成方法及装置
CN111951114B (zh) 一种任务执行方法、装置、电子设备及可读存储介质
CN114706586A (zh) 代码编译、代码运行方法、装置、计算机设备及存储介质
JP6665576B2 (ja) 支援装置、支援方法及びプログラム
CN112328241B (zh) 一种应用程序开发中创建Android库模块依赖关系的方法及装置
CN114356342A (zh) 一种编译方法及装置
CN113127005A (zh) 一种可执行文件生成的方法、装置以及计算机存储介质
CN113703753A (zh) 用于产品开发的方法、装置和产品开发系统
CN107798614B (zh) 数据处理的方法及装置
CN111552510A (zh) 文件构建方法及装置、电子设备、计算机可读存储介质
CN112631620B (zh) 一种制作操作系统的方法、系统、设备及介质
CN110008073B (zh) 硬件平台差异化屏蔽方法、装置、设备及可读存储介质
CN112650488A (zh) 参数校验方法及装置、存储介质、服务终端
CN111142859A (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
CB02 Change of applicant information

Address after: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Applicant after: Douyin Vision Co.,Ltd.

Address before: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Applicant before: Tiktok vision (Beijing) Co.,Ltd.

Address after: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Applicant after: Tiktok vision (Beijing) Co.,Ltd.

Address before: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Applicant before: BEIJING BYTEDANCE NETWORK TECHNOLOGY Co.,Ltd.

CB02 Change of applicant information