CN112925561A - 一种软件开发方法、装置、计算机设备及存储介质 - Google Patents

一种软件开发方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN112925561A
CN112925561A CN202110308679.0A CN202110308679A CN112925561A CN 112925561 A CN112925561 A CN 112925561A CN 202110308679 A CN202110308679 A CN 202110308679A CN 112925561 A CN112925561 A CN 112925561A
Authority
CN
China
Prior art keywords
functional module
modified
module
functional
path
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
CN202110308679.0A
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 CN202110308679.0A priority Critical patent/CN112925561A/zh
Publication of CN112925561A publication Critical patent/CN112925561A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/72Code refactoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management

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

一种软件开发方法、装置、计算机设备及存储介质
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种软件开发方法、装置、计算机设备及存储介质。
背景技术
随着互联网技术的飞速发展,软件更新迭代的速度也日益加快,为了节省开发成本,软件公司一般会复制已有软件的代码,并通过对代码的编辑来进行软件开发。
在这一过程中,若已有软件的开发人员对模块代码进行优化,而软件公司所复制的代码中模块之间的引用关系为本地的相对路径,这就导致了软件公司所复制的代码无法自动同步其对应的已有软件的后续修改,软件公司若想同步所述后续修改,则需要软件公司的开发人员手动进行同步,从而增加了时间成本,降低了软件开发的效率。
发明内容
本公开实施例至少提供一种软件开发方法、装置、计算机设备及存储介质。
第一方面,本公开实施例提供了一种软件开发方法,包括:
响应模块确定请求,确定已有软件工程的多个功能模块中的待修改功能模块;其中,所述已有软件工程中不同的功能模块用于实现不同的功能;
获取所述待修改功能模块的处理代码,并将所述处理代码添加至目标软件对应的目标软件工程中;
调整所述待修改功能模块对非待修改功能模块的引用路径,其中,所述非待修改功能模块为所述已有软件工程中除所述待修改功能模块外的其他功能模块,调整后的引用路径在所述目标软件运行时可用于远程调用所述非待修改功能模块的功能;
响应对于所述待修改功能模块的修改指令,更新所述目标软件工程中的所述待修改功能模块。
一种可能的实施方式中,所述模块确定请求中包括第一功能模块的标识信息,所述第一功能模块为需要进行功能调整的模块;
所述响应模块确定请求,确定已有软件工程的多个功能模块中的待修改功能模块,包括:
基于所述已有软件工程中各个功能模块之间的引用关系,确定与所述第一功能模块具有引用关系的第二功能模块;
将所述第一功能模块和所述第二功能模块作为所述待修改功能模块。
一种可能的实施方式中,所述更新所述目标软件工程中所述待修改功能模块,包括:
修改所述第一功能模块的处理代码。
一种可能的实施方式中,所述调整所述待修改功能模块对非待修改功能模块的引用路径,包括:
确定所述目标软件工程中各所述待修改功能模块引用的非待修改功能模块;
针对任一所述待修改功能模块,确定该任一待修改功能模块对非待修改功能模块的待修改引用路径;
将所述待修改引用路径由相对路径调整为所述非待修改功能模块的绝对路径,其中,所述非待修改功能模块的相对路径用于表示所述非待修改功能模块在所述已有软件工程中的路径;所述非待修改功能模块的绝对路径用于表示所述非待修改功能模块的绝对存储位置。
一种可能的实施方式中,所述方法还包括:
响应针对任一功能模块的新增指令,确定新增的功能模块是否引用所述非待修改功能模块;
若是,则将所述新增的功能模块引用的非待修改功能模块的引用路径设置为该非待修改功能模块的绝对路径。
一种可能的实施方式中,所述方法还包括:
响应针对所述目标软件工程的发布操作,对所述目标软件工程进行发布。
第二方面,本公开实施例还提供一种软件开发装置,包括:
确定模块,用于响应模块确定请求,确定已有软件工程的多个功能模块中的待修改功能模块;其中,所述已有软件工程中不同的功能模块用于实现不同的功能;
获取模块,用于获取所述待修改功能模块的处理代码,并将所述处理代码添加至目标软件对应的目标软件工程中;
调整模块,用于调整所述待修改功能模块对非待修改功能模块的引用路径,其中,所述非待修改功能模块为所述已有软件工程中除所述待修改功能模块外的其他功能模块,调整后的引用路径在所述目标软件运行时可用于远程调用所述非待修改功能模块的功能;
修改模块,用于响应对于所述待修改功能模块的修改指令,更新所述目标软件工程中所述待修改功能模块。
一种可能的实施方式中,所述模块确定请求中包括第一功能模块的标识信息,所述第一功能模块为需要进行功能调整的模块;
所述确定模块,在响应模块确定请求,确定已有软件工程的多个功能模块中的待修改功能模块时,用于:
基于所述已有软件工程中各个功能模块之间的引用关系,确定与所述第一功能模块具有引用关系的第二功能模块;
将所述第一功能模块和所述第二功能模块作为所述待修改功能模块。
一种可能的实施方式中,所述修改模块,在更新所述目标软件工程中所述待修改功能模块时,用于:
修改所述第一功能模块的处理代码。
一种可能的实施方式中,所述调整模块,在调整所述待修改功能模块对非待修改功能模块的引用路径时,用于:
确定所述目标软件工程中各所述待修改功能模块引用的非待修改功能模块;
针对任一所述待修改功能模块,确定该任一待修改功能模块对非待修改功能模块的待修改引用路径;
将所述待修改引用路径由相对路径调整为所述非待修改功能模块的绝对路径,其中,所述非待修改功能模块的相对路径用于表示所述非待修改功能模块在所述已有软件工程中的路径;所述非待修改功能模块的绝对路径用于表示所述非待修改功能模块的绝对存储位置。
一种可能的实施方式中,所述调整模块,还用于:
响应针对任一功能模块的新增指令,确定新增的功能模块是否引用所述非待修改功能模块;
若是,则将所述新增的功能模块中引用的非待修改功能模块的引用路径设置为该非待修改功能模块的绝对路径。
一种可能的实施方式中,所述装置还包括:
发布模块,用于响应针对所述目标软件工程的发布操作,对所述目标软件工程进行发布。
第三方面,本公开实施例还提供一种计算机设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
第四方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
本公开实施例提供的软件开发方法、装置、计算机设备及存储介质,在获取到待修改功能模块的处理代码,并将所述处理代码添加至目标软件工程中之后,可以自动调整所述待修改功能模块对非待修改功能模块的引用路径,所述引用路径例如可以为绝对地址。这样,目标软件工程中由于对待修改功能模块的引用路径为绝对地址,因此当已有软件工程中非待修改功能模块发生更新时,目标软件工程可以直接引用更新后的非待修改功能模块,因此,可以实现对于目标软件工程的自动更新,减少目标软件工程的开发人员的工作量,提高目标软件工程的开发效率。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1a示出了已有软件所包含的功能模块的示意图;
图1b示出了现有的基于已有软件工程进行开发的软件开发方法的示意图;
图1c示出了本公开实施例提供的软件开发方法的示意图;
图2示出了本公开实施例所提供的一种软件开发方法的流程图;
图3示出了本公开实施例所提供的软件开发方法中,确定已有软件工程的多个功能模块中的待修改功能模块的具体方法的流程图;
图4示出了本公开实施例所提供的软件开发方法中,调整引用路径的具体方法的流程图;
图5示出了本公开实施例所提供的一种软件开发装置的示意图;
图6示出了本公开实施例所提供的一种计算机设备的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
经研究发现,为了节省开发成本,软件公司一般会复制已有软件全部的代码,并通过对代码的编辑来进行软件开发。
在这一过程中,若已有软件的开发人员对模块代码进行优化,而软件公司所复制的代码中模块之间的引用关系为本地的相对路径,这就导致了软件公司所复制的代码无法自动同步其对应的已有软件的后续修改,软件公司若想同步所述后续修改,则需要软件公司的开发人员手动进行同步,从而增加了时间成本,降低了软件开发的效率。
基于上述研究,本公开提供了一种软件开发方法、装置、计算机设备及存储介质,在获取到待修改功能模块的处理代码,并将所述处理代码添加至目标软件工程中之后,可以自动调整所述待修改功能模块对非待修改功能模块的引用路径,所述引用路径例如可以为绝对地址。这样,目标软件工程中由于对待修改功能模块的引用路径为绝对地址,因此当已有软件工程中非待修改功能模块发生更新时,目标软件工程可以直接引用更新后的非待修改功能模块,因此,可以实现对于目标软件工程的自动更新,减少目标软件工程的开发人员的工作量,提高目标软件工程的开发效率。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种软件开发方法与现有技术的区别技术特征进行介绍,本公开实施例与现有技术一样,都是基于已有软件的源代码进行的软件开发,所述已有软件可以是开放源代码的软件或者开发人员已经开发过的其他软件,已有软件工程也即已有软件的源代码。图1a为已有软件工程所包含的功能模块的示意图,其所包含的功能模块包括A1、B1、C1、D1、E1;图1b为现有的基于已有软件工程进行开发的软件开发方法的示意图,其开发的软件包含的功能模块包括A2、B2、C2、D2、E2,其中,各个功能模块都是在原有的已有软件工程中复制和修改后得到的,而其整体架构也是在完全复制到本地后得到,因此可以实现所述已有软件的整体功能,但另一方面,后续的修改也只能由本地完成,也即无法同步已有软件的作者或者第三方对原已有软件的更新,比如已有软件工程中A1进行了更新,为了同步的更新,需要去查找更新内容,并用更新后的内容对原有的内容进行适应性调整,这样,会明显增大本地的开发者的代码开发量和维护量;图1c为本公开实施例提供的软件开发方法的示意图,图1c中,软件包含的功能模块包括A2、B2、C1、D2、E1,也即修改发生在A-B-D这条引用路径上,所述引用路径用于表示各个功能模块之间的引用关系,比如这里的A引用B、B引用D,而C和E由于并不在软件开发范围中,因此不添加至本地的软件工程中,而是通过远程调用的方式(虚线表示不在本地软件工程中)实现其功能的完整性,可以明显看出,相较于图1b中现有的软件开发方法,本公开实施例所提供的方法,由于部分功能模块在开发时并未添加至本地,因此代码开发量和维护量都较小,而未被本地开发者维护和更新的部分则由已有软件的开发人员完成,因此可以方便地同步远程的已有软件工程的后续修改,从而缩短了软件开发所需时间。
参见图2所示,为本公开实施例提供的软件开发方法的流程图,所述方法包括步骤S201~S204,其中:
S201:响应模块确定请求,确定已有软件工程的多个功能模块中的待修改功能模块;其中,所述已有软件工程中不同的功能模块用于实现不同的功能。
S202:获取所述待修改功能模块的处理代码,并将所述处理代码添加至目标软件对应的目标软件工程中。
S203:调整所述待修改功能模块对非待修改功能模块的引用路径,其中,所述非待修改功能模块为所述已有软件工程中除所述待修改功能模块外的其他功能模块,调整后的引用路径在所述目标软件运行时可用于远程调用所述非待修改功能模块的功能。
S204:响应对于所述待修改功能模块的修改指令,更新所述目标软件工程中的所述待修改功能模块。
下面将对本公开实施例中各个步骤及对应的实施方法进行详细说明。
针对S201,所述模块确定请求可以是开发人员基于集成开发环境(IntegratedDevelopment Environment、IDE)的编辑界面发起的,其中包括请求确定需要进行功能调整的第一功能模块的标识信息。
一种可能的实施方式中,如图3所示,可以通过以下步骤确定已有软件工程的多个功能模块中的待修改功能模块:
S301:基于所述已有软件工程中各个功能模块之间的引用关系,确定与所述第一功能模块具有引用关系的第二功能模块。
这里,所述引用关系可以通过上述引用路径进行确定,以图1a为例,图1a中,如果D1为所述需要进行功能调整的第一功能模块,由于B1引用D1,而A1引用B1,所述A1和B1即为对应的所述第二功能模块,因此通过递归的引用关系即可确定出所有的所述具有引用关系的第二功能模块。
S302:将所述第一功能模块和所述第二功能模块作为所述待修改功能模块。
这里,若只将需要进行功能调整的第一功能模块添加至本地进行开发,而不将与其具有引用关系的第二功能模块添加至本地的软件开发工程中,则在处理代码编译时会报错,无法完成软件的开发。
示例性的,以功能模块D1为所述第一功能模块,功能模块A1、B1为所述第二功能模块,引用路径为A-B-D为例,在开发时需要将A1作为入口功能模块添加至本地,即为A2,若只将第一功能模块添加至本地进行开发,也即只有D2的情况下,由于入口功能模块是整个软件工程的入口,若不将入口功能模块A1添加至本地,则无法组成一个完整的软件开发工程,从而导致在处理代码编译时报错;另一方面,若A1作为入口功能模块添加至本地,也将第一功能模块添加至本地进行开发,也即同时有D2的情况下,由于A-B-D的引用路径,需要对功能模块B中的引用路径进行修改,但B并未添加至本地,从而使得针对D2的修改无法被入口功能模块所感知,同样会导致在处理代码编译时报错。
具体的,上述确定过程可以在接收到所述模块确定请求后,由脚本程序自动处理完成;或者,可以响应开发人员的相关操作,在开发人员的操作下进行。
具体实施中,在确定已有软件工程的多个功能模块中的待修改功能模块之后,可以根据S202获取对应的处理代码,并将所述处理代码添加至目标软件工程中,具体描述如下所示。
S202:获取所述待修改功能模块的处理代码,并将所述处理代码添加至目标软件对应的目标软件工程中。
这里,所述目标软件即为本地正在开发的软件,所述将处理代码添加至目标软件对应的目标软件工程中,可以是在所述目标软件工程中建立一个功能模块,并响应开发人员的粘贴操作,将与粘贴操作对应的复制操作所复制的处理代码添加至该功能模块。
承接上例,在进行添加时,需要将功能模块A1、B1以及D1添加至所述目标软件工程中时,可以复制上述功能模块对应的代码,并在所述目标软件工程中的目标位置进行粘贴;或者,可以直接选中上述三个模块,并通过触发预设的添加按钮,后续即自动完成处理代码从已有软件工程到目标软件工程的转移。
S203:调整所述待修改功能模块对非待修改功能模块的引用路径,其中,所述非待修改功能模块为所述已有软件工程中除所述待修改功能模块外的其他功能模块,调整后的引用路径在所述目标软件运行时可用于远程调用所述非待修改功能模块的功能。
承接上例,图1a中非待修改功能模块即为功能模块C1和E1,其因未被功能模块D1所引用(也即不在其引用路径上),因此无需进行修改。
一种可能的实施方式中,如图4所示,在调整所述待修改功能模块中对所述已有软件工程中非待修改功能模块的引用路径时,可以通过以下步骤:
S401:确定所述目标软件工程中各所述待修改功能模块引用的非待修改功能模块。
在具体实施中,由于使用相对路径进行引用具有节省代码量、更易进行测试等优点,因此软件工程中通常使用相对路径的方式在进行模块之间的引用,比如处理代码varmodule_C=require('./module_C'),表示该模块引用了功能模块C,而这里的功能模块C的路径是相对路径。
这里,在确定每个所述待修改功能模块引用的非待修改功能模块的同时,还可以获取引用的所述非待修改功能模块的绝对路径,这里的绝对路径一般为其的存储路径,例如可以是在git远程仓库中的存储路径。
S402:针对任一所述待修改功能模块,确定该任一待修改功能模块对非待修改功能模块的待修改引用路径。
这里,仍以上述引用功能模块C为例,处理代码var module_C=require('./module_C')中的功能模块C的路径是相对路径,即为所述待修改引用路径。
S403:将所述待修改引用路径由相对路径调整为所述非待修改功能模块的绝对路径,其中,所述非待修改功能模块的相对路径用于表示所述非待修改功能模块在所述已有软件工程中的路径;所述非待修改功能模块的绝对路径用于表示所述非待修改功能模块的绝对存储位置。
这里,仍以上述引用功能模块C为例,处理代码var module_C=require('@open_src/dist/module_C'),即可表示以绝对路径的方式引用了功能模块C,所述调整的过程,也即将上述相对路径对应的处理代码,替换为上述绝对路径对应的处理代码。
具体的,在将该任一待修改功能模块中对于所述非待修改功能模块的引用路径,由相对路径调整为所述非待修改功能模块的绝对路径时,可以由脚本程序自动处理完成,比如,可以预先开发一个路径转换脚本,并在检测到有待修改模块添加至所述目标软件工程时,自动检测其与非待修改模块之间的引用关系,并自动进行路径调整,在路径调整之后还可以自行执行编译,确保无误后可以自行执行后续自动化操作,或者提示当前开发人员自动调整完毕,请求后续操作指令,从而确保调整的完整性和准确性;另一方面,也可以通过响应开发人员的相关操作,在开发人员的操作下进行。
S204:响应对于所述待修改功能模块的修改指令,更新所述目标软件工程中的所述待修改功能模块。
一种可能的实施方式中,在所述更新所述目标软件工程中所述待修改功能模块时,可以是在响应开发人员修改指令后,对所述第一功能模块的处理代码进行修改。
具体的,开发人员可以在所述IDE所提供的代码开发模板和代码开发插件等辅助开发手段的帮助下,在所述IDE的编辑界面发起修改指令。
一种可能的实施方式中,还可以响应针对任一功能模块的新增指令,确定新增的功能模块是否引用所述非待修改功能模块;若是,则将所述新增的功能模块中引用的非待修改功能模块的引用路径设置为该非待修改功能模块的绝对路径。
另一种可能的实施方式中,在响应针对任一功能模块的新增指令后,可以先确定新增的功能模块是否引用所述非待修改功能模块;若是,则判断其引用时的引用路径是否为绝对路径,如果不是绝对路径,则将其转换为绝对路径;如果是绝对路径,则保持不变。
在一种可能的应用场景中,对所述新增的功能模块进行检测,检测其是否引用所述非待修改功能模块时,可以是由预先开发的脚本程序进行完成的,并在检测到引用所述非待修改功能模块时,自动将引用的非待修改功能模块的引用路径设置为该非待修改功能模块的绝对路径。
示例性的,所述脚本程序可以预先把已有软件工程中的各个功能模块的标识信息保存至本地,并分别为不同软件工程的功能模块添加标记信息,例如1可以表示该功能模块为待修改功能模块,2可以表示该功能模块为非待修改功能模块,在新增功能模块时,可以确定新增的功能模块引用的功能模块的标记信息,从而可以确定新增的功能模块与其引用的功能模块之间应该用绝对路径还是相对路径。
在另一种可能的应用场景中,在新增功能模块时,可以根据新增功能模块所引用的功能模块的标记信息,向开发人员展示提示信息,以提示开发人员添加绝对路径或者相对路径;或者可以在开发人员的完成新增的功能模块的开发之后,检测新增的功能模块对于其引用的功能模块的引用路径是否正确,若不正确,则向开发人员展示提示信息。
一种可能的实施方式中,还可以响应针对所述目标软件过程的发布操作,对所述目标软件工程进行发布。
具体的,目标软件工程的处理代码需要发布为软件包才能被其他人使用。比如,JavaScript软件工程,需要通过打包管理工具(Node Package Manager、npm)转换为软件包的形式,从而可以相应的发布到npm系统上,其他用户即可从npm系统上下载该软件包并使用。
本公开实施例提供的软件开发方法、装置、计算机设备及存储介质,在获取到待修改功能模块的处理代码,并将所述处理代码添加至目标软件工程中之后,可以自动调整所述待修改功能模块对非待修改功能模块的引用路径,所述引用路径例如可以为绝对地址。这样,目标软件工程中由于对待修改功能模块的引用路径为绝对地址,因此当已有软件工程中非待修改功能模块发生更新时,目标软件工程可以直接引用更新后的非待修改功能模块,因此,可以实现对于目标软件工程的自动更新,减少目标软件工程的开发人员的工作量,提高目标软件工程的开发效率。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与软件开发方法对应的软件开发装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述软件开发方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图5所示,为本公开实施例提供的一种软件开发装置的示意图,所述装置包括:确定模块501、获取模块502、调整模块503、修改模块504;其中,
确定模块501,用于响应模块确定请求,确定已有软件工程的多个功能模块中的待修改功能模块;其中,所述已有软件工程中不同的功能模块用于实现不同的功能;
获取模块502,用于获取所述待修改功能模块的处理代码,并将所述处理代码添加至目标软件对应的目标软件工程中;
调整模块503,用于调整所述待修改功能模块对非待修改功能模块的引用路径,其中,所述非待修改功能模块为所述已有软件工程中除所述待修改功能模块外的其他功能模块,调整后的引用路径在所述目标软件运行时可用于远程调用所述非待修改功能模块的功能;
修改模块504,用于响应对于所述待修改功能模块的修改指令,更新所述目标软件工程中所述待修改功能模块。
一种可能的实施方式中,所述模块确定请求中包括第一功能模块的标识信息,所述第一功能模块为需要进行功能调整的模块;
所述确定模块501,在响应模块确定请求,确定已有软件工程的多个功能模块中的待修改功能模块时,用于:
基于所述已有软件工程中各个功能模块之间的引用关系,确定与所述第一功能模块具有引用关系的第二功能模块;
将所述第一功能模块和所述第二功能模块作为所述待修改功能模块。
一种可能的实施方式中,所述修改模块504,在更新所述目标软件工程中所述待修改功能模块时,用于:
修改所述第一功能模块的处理代码。
一种可能的实施方式中,所述调整模块503,在所述调整所述待修改功能模块对非待修改功能模块的引用路径时,用于:
确定所述目标软件工程中各所述待修改功能模块引用的非待修改功能模块;
针对任一所述待修改功能模块,确定该任一待修改功能模块对非待修改功能模块的待修改引用路径;
将所述待修改引用路径由相对路径调整为所述非待修改功能模块的绝对路径,其中,所述非待修改功能模块的相对路径用于表示所述非待修改功能模块在所述已有软件工程中的路径;所述非待修改功能模块的绝对路径用于表示所述非待修改功能模块的绝对存储位置。
一种可能的实施方式中,所述调整模块503,还用于:
响应针对任一功能模块的新增指令,确定新增的功能模块是否引用所述非待修改功能模块;
若是,则将所述新增的功能模块中引用的非待修改功能模块的引用路径设置为该非待修改功能模块的绝对路径。
一种可能的实施方式中,所述装置还包括:
发布模块505,用于响应针对所述目标软件工程的发布操作,对所述目标软件工程进行发布。
本公开实施例提供的软件开发装置,在获取到待修改功能模块的处理代码,并将所述处理代码添加至目标软件工程中之后,可以自动调整所述待修改功能模块对非待修改功能模块的引用路径,所述引用路径例如可以为绝对地址。这样,目标软件工程中由于对待修改功能模块的引用路径为绝对地址,因此当已有软件工程中非待修改功能模块发生更新时,目标软件工程可以直接引用更新后的非待修改功能模块,因此,可以实现对于目标软件工程的自动更新,减少目标软件工程的开发人员的工作量,提高目标软件工程的开发效率。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
基于同一技术构思,本公开实施例还提供了一种计算机设备。参照图6所示,为本公开实施例提供的计算机设备600的结构示意图,包括处理器601、存储器602、和总线603。其中,存储器602用于存储执行指令,包括内存6021和外部存储器6022;这里的内存6021也称内存储器,用于暂时存放处理器601中的运算数据,以及与硬盘等外部存储器6022交换的数据,处理器601通过内存6021与外部存储器6022进行数据交换,当计算机设备600运行时,处理器601与存储器602之间通过总线603通信,使得处理器601在执行以下指令:
响应模块确定请求,确定已有软件工程的多个功能模块中的待修改功能模块;其中,所述已有软件工程中不同的功能模块用于实现不同的功能;
获取所述待修改功能模块的处理代码,并将所述处理代码添加至目标软件对应的目标软件工程中;
调整所述待修改功能模块对非待修改功能模块的引用路径,其中,所述非待修改功能模块为所述已有软件工程中除所述待修改功能模块外的其他功能模块,调整后的引用路径在所述目标软件运行时可用于远程调用所述非待修改功能模块的功能;
响应对于所述待修改功能模块的修改指令,更新所述目标软件工程中的所述待修改功能模块。
一种可能的实施方式中,所述处理器601的指令中,所述模块确定请求中包括第一功能模块的标识信息,所述第一功能模块为需要进行功能调整的模块;
所述响应模块确定请求,确定已有软件工程的多个功能模块中的待修改功能模块,包括:
基于所述已有软件工程中各个功能模块之间的引用关系,确定与所述第一功能模块具有引用关系的第二功能模块;
将所述第一功能模块和所述第二功能模块作为所述待修改功能模块。
一种可能的实施方式中,所述处理器601的指令中,所述更新所述目标软件工程中所述待修改功能模块,包括:
修改所述第一功能模块的处理代码。
一种可能的实施方式中,所述处理器601的指令中,所述调整所述待修改功能模块对非待修改功能模块的引用路径,包括:
确定所述目标软件工程中各所述待修改功能模块引用的非待修改功能模块;
针对任一所述待修改功能模块,确定该任一待修改功能模块对非待修改功能模块的待修改引用路径;
将所述待修改引用路径由相对路径调整为所述非待修改功能模块的绝对路径,其中,所述非待修改功能模块的相对路径用于表示所述非待修改功能模块在所述已有软件工程中的路径;所述非待修改功能模块的绝对路径用于表示所述非待修改功能模块的绝对存储位置。
一种可能的实施方式中,所述处理器601的指令中,还包括:
响应针对任一功能模块的新增指令,确定新增的功能模块是否引用所述非待修改功能模块;
若是,则将所述新增的功能模块中引用的非待修改功能模块的引用路径设置为该非待修改功能模块的绝对路径。
一种可能的实施方式中,所述处理器601的指令中,还包括:
响应针对所述目标软件工程的发布操作,对所述目标软件工程进行发布。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的软件开发方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的软件开发方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。

Claims (10)

1.一种软件开发方法,其特征在于,包括:
响应模块确定请求,确定已有软件工程的多个功能模块中的待修改功能模块;其中,所述已有软件工程中不同的功能模块用于实现不同的功能;
获取所述待修改功能模块的处理代码,并将所述处理代码添加至目标软件对应的目标软件工程中;
调整所述待修改功能模块对非待修改功能模块的引用路径,其中,所述非待修改功能模块为所述已有软件工程中除所述待修改功能模块外的其他功能模块,调整后的引用路径在所述目标软件运行时可用于远程调用所述非待修改功能模块的功能;
响应对于所述待修改功能模块的修改指令,更新所述目标软件工程中的所述待修改功能模块。
2.根据权利要求1所述的方法,其特征在于,所述模块确定请求中包括第一功能模块的标识信息,所述第一功能模块为需要进行功能调整的模块;
所述响应模块确定请求,确定已有软件工程的多个功能模块中的待修改功能模块,包括:
基于所述已有软件工程中各个功能模块之间的引用关系,确定与所述第一功能模块具有引用关系的第二功能模块;
将所述第一功能模块和所述第二功能模块作为所述待修改功能模块。
3.根据权利要求2所述的方法,其特征在于,所述更新所述目标软件工程中所述待修改功能模块,包括:
修改所述第一功能模块的处理代码。
4.根据权利要求1所述的方法,其特征在于,所述调整所述待修改功能模块对非待修改功能模块的引用路径,包括:
确定所述目标软件工程中各所述待修改功能模块引用的非待修改功能模块;
针对任一所述待修改功能模块,确定该任一待修改功能模块对非待修改功能模块的待修改引用路径;
将所述待修改引用路径由相对路径调整为所述非待修改功能模块的绝对路径,其中,所述非待修改功能模块的相对路径用于表示所述非待修改功能模块在所述已有软件工程中的路径;所述非待修改功能模块的绝对路径用于表示所述非待修改功能模块的绝对存储位置。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应针对任一功能模块的新增指令,确定新增的功能模块是否引用所述非待修改功能模块;
若是,则将所述新增的功能模块引用的非待修改功能模块的引用路径设置为该非待修改功能模块的绝对路径。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应针对所述目标软件工程的发布操作,对所述目标软件工程进行发布。
7.一种软件开发装置,其特征在于,包括:
确定模块,用于响应模块确定请求,确定已有软件工程的多个功能模块中的待修改功能模块;其中,所述已有软件工程中不同的功能模块用于实现不同的功能;
获取模块,用于获取所述待修改功能模块的处理代码,并将所述处理代码添加至目标软件对应的目标软件工程中;
调整模块,用于调整所述待修改功能模块对非待修改功能模块的引用路径,其中,所述非待修改功能模块为所述已有软件工程中除所述待修改功能模块外的其他功能模块,调整后的引用路径在所述目标软件运行时可用于远程调用所述非待修改功能模块的功能;
修改模块,用于响应对于所述待修改功能模块的修改指令,更新所述目标软件工程中所述待修改功能模块。
8.根据权利要求7所述的装置,其特征在于,所述调整模块,在调整所述待修改功能模块对非待修改功能模块的引用路径时,用于:
确定所述目标软件工程中各所述待修改功能模块引用的非待修改功能模块;
针对任一所述待修改功能模块,确定该任一待修改功能模块对非待修改功能模块的待修改引用路径;
将所述待修改引用路径由相对路径调整为所述非待修改功能模块的绝对路径,其中,所述非待修改功能模块的相对路径用于表示所述非待修改功能模块在所述已有软件工程中的路径;所述非待修改功能模块的绝对路径用于表示所述非待修改功能模块的绝对存储位置。
9.一种计算机设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至6任一所述的软件开发方法的步骤。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至6任意一项所述的软件开发方法的步骤。
CN202110308679.0A 2021-03-23 2021-03-23 一种软件开发方法、装置、计算机设备及存储介质 Pending CN112925561A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110308679.0A CN112925561A (zh) 2021-03-23 2021-03-23 一种软件开发方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110308679.0A CN112925561A (zh) 2021-03-23 2021-03-23 一种软件开发方法、装置、计算机设备及存储介质

Publications (1)

Publication Number Publication Date
CN112925561A true CN112925561A (zh) 2021-06-08

Family

ID=76175606

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110308679.0A Pending CN112925561A (zh) 2021-03-23 2021-03-23 一种软件开发方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN112925561A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113535135A (zh) * 2021-09-09 2021-10-22 深圳市蓝凌软件股份有限公司 软件开发方法、装置、计算机设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140172193A1 (en) * 2012-12-19 2014-06-19 Elwha LLC, a limited liability corporation of the State of Delaware Base station control for an unoccupied flying vehicle (ufv)
US20170024188A1 (en) * 2015-07-24 2017-01-26 Oracle International Corporation Bridging a module system and a non-module system
EP3166031A1 (en) * 2015-11-09 2017-05-10 Dassault Systemes Americas Corp. Bi-directional synchronization of data between a product lifecycle management (plm) system and a source code management (scm) system
CN110780897A (zh) * 2019-08-26 2020-02-11 华为技术有限公司 一种代码变更方法以及装置
CN111104151A (zh) * 2019-11-26 2020-05-05 深圳市华卓智能科技有限公司 一种基于Shell脚本的Git代码简化的管理方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140172193A1 (en) * 2012-12-19 2014-06-19 Elwha LLC, a limited liability corporation of the State of Delaware Base station control for an unoccupied flying vehicle (ufv)
US20170024188A1 (en) * 2015-07-24 2017-01-26 Oracle International Corporation Bridging a module system and a non-module system
EP3166031A1 (en) * 2015-11-09 2017-05-10 Dassault Systemes Americas Corp. Bi-directional synchronization of data between a product lifecycle management (plm) system and a source code management (scm) system
CN110780897A (zh) * 2019-08-26 2020-02-11 华为技术有限公司 一种代码变更方法以及装置
CN111104151A (zh) * 2019-11-26 2020-05-05 深圳市华卓智能科技有限公司 一种基于Shell脚本的Git代码简化的管理方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
J.C.MUNSON, ET AL: "Code churn: a measure for estimating the impact of code change", 《IEEE ACCESS》, pages 24 - 31 *
刘伟;: "基于PSCAD的保护逻辑C源代码级仿真方法", 《电力系统保护与控制》, no. 18, pages 1 - 4 *
曾珍珍: "SQL代码自动生成方法的研究l", 《电子技术与软件工程》, pages 222 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113535135A (zh) * 2021-09-09 2021-10-22 深圳市蓝凌软件股份有限公司 软件开发方法、装置、计算机设备和存储介质
CN113535135B (zh) * 2021-09-09 2022-02-15 深圳市蓝凌软件股份有限公司 软件开发方法、装置、计算机设备和存储介质

Similar Documents

Publication Publication Date Title
EP3011444B1 (en) Method and apparatus for code virtualization and remote process call generation
KR101999409B1 (ko) 예시에 의한 데이터 포매팅 기법
CN102681835A (zh) 代码克隆通知以及体系结构改变可视化
CN108196878A (zh) 应用程序安装包的生成方法、装置、电子设备及存储介质
US9483384B2 (en) Generation of software test code
CN110955409B (zh) 在云平台上创建资源的方法和装置
CN110750243A (zh) 项目代码开发方法和系统
CN109634591A (zh) 一种文件处理方法及装置
CN115268879A (zh) 代码处理方法、装置、电子设备及存储介质
CN113760266B (zh) 一种功能模块文件的创建方法、创建装置和电子设备
CN112000334A (zh) 页面开发方法、装置、服务器及存储介质
CN115599437A (zh) 一种软件版本的处理方法、装置、电子设备及存储介质
CN109032612B (zh) 混合型应用的接口调用方法、装置及计算机可读存储介质
CN112925561A (zh) 一种软件开发方法、装置、计算机设备及存储介质
CN112835568A (zh) 一种项目构建方法和装置
CN111984264B (zh) 一种静态库的生成方法和装置
CN106446064A (zh) 一种数据转换方法及装置
CN109725927B (zh) 代码管理系统的同步方法及装置、存储介质及终端
CN111240681A (zh) 一种不同编程语言的转换方法及装置
CN111475148A (zh) 第三方依赖库隔离方法及装置、电子设备、存储介质
CN113791809B (zh) 应用异常处理方法、装置以及计算机可读存储介质
CN111488286B (zh) 一种Android模块独立开发的方法及装置
CN113741931A (zh) 软件升级方法、装置、电子设备及可读存储介质
CN111008018A (zh) 一种can信号解包处理方法及系统
TW201516707A (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