CN108614700A - 一种业务迭代的方法及装置 - Google Patents
一种业务迭代的方法及装置 Download PDFInfo
- Publication number
- CN108614700A CN108614700A CN201611207281.3A CN201611207281A CN108614700A CN 108614700 A CN108614700 A CN 108614700A CN 201611207281 A CN201611207281 A CN 201611207281A CN 108614700 A CN108614700 A CN 108614700A
- Authority
- CN
- China
- Prior art keywords
- code
- business
- optimized
- pure
- exploitation
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
Abstract
本发明提供一种业务迭代的方法及装置,该方法包括:在业务的当前迭代周期,获取业务的源代码的两份拷贝代码;对其中一份拷贝代码进行优化得到纯优化代码,基于另一份拷贝代码进行业务开发得到开发代码;对开发代码进行解析,判断开发代码是否包含新业务模块;如果否,则将纯优化代码确定为下一迭代周期的起始代码;如果是,则合并纯优化代码和开发代码得到新业务代码,根据新业务代码和纯优化代码,确定下一迭代周期的起始代码。本发明进行周期性的代码合并,将业务开发迭代敏捷融合到优化迭代中,有效节约代码合并的工作量,降低代码合并的难度及出错率,且根据融合的结果进行递归优化,不断增量优化,保证新加入的开发代码是经过优化评估的。
Description
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种业务迭代的方法及装置。
背景技术
为持续保持业务的用户吸引力,通常会不断对业务进行优化,以及根据新的用户需求进行业务开发,而优化及业务开发都会修改业务的源代码,因此需要将优化及业务开发产生的修改代码进行合并。
当前,由技术人员分别对业务进行优化及业务开发,记录优化产生的优化代码及开发产生的开发代码,并计算优化产生的代码修改率,以及计算开发产生的代码修改率。根据优化产生的代码修改率和开发产生的代码修改率确定优化及业务开发所产生的代码修改之间的修改差异,当修改差异过大时,将优化代码和开发代码进行代码合并。
在修改差异过大时才进行代码合并,随着修改差异的累积,当差异过大时会导致合并难度很大,合并代码时易出错。
发明内容
有鉴于此,本发明实施例的目的在于提供一种业务迭代的方法及装置,周期性进行代码合并,将业务开发迭代敏捷融合到优化迭代中,有效节约代码合并的工作量,降低了代码合并的难度及出错率。
第一方面,本发明实施例提供了一种业务迭代的方法,所述方法包括:
在业务的当前迭代周期,获取所述业务的源代码的两份拷贝代码;
对其中一份拷贝代码进行优化得到纯优化代码,基于另一份拷贝代码进行业务开发得到开发代码;
对所述开发代码进行解析,判断所述开发代码是否包含新业务模块;
若所述开发代码不包含新业务模块,则将所述纯优化代码确定为下一迭代周期的起始代码;
若所述开发代码包含新业务模块,则合并所述纯优化代码和所述开发代码得到新业务代码,根据所述新业务代码和所述纯优化代码,确定下一迭代周期的起始代码。
结合第一方面,本发明实施例提供了上述第一方面的第一种可能的实现方式,其中,所述根据所述新业务代码和所述纯优化代码,确定下一迭代周期的起始代码,包括:
根据所述新业务代码和所述纯优化代码,确定所述新业务代码是否使所述业务的性能下降;
若所述新业务代码未使所述业务的性能下降,则将所述新业务代码确定为下一迭代周期的起始代码;
若所述新业务代码使所述业务的性能下降,则优化所述新业务代码,将优化后的新业务代码确定为下一迭代周期的起始代码。
结合第一方面的第一种可能的实现方式,本发明实施例提供了上述第一方面的第二种可能的实现方式,其中,所述优化所述新业务代码,包括:
在所述新业务代码中定位出所述新业务模块对应的代码行;
对所述新业务模块对应的代码行进行优化。
结合第一方面的第一种可能的实现方式,本发明实施例提供了上述第一方面的第三种可能的实现方式,其中,所述根据所述新业务代码和所述纯优化代码,确定所述新业务代码是否使所述业务的性能下降,包括:
运行所述纯优化代码,获取所述业务对应的纯优化系统性能值;
运行所述新业务代码,获取所述业务对应的融合系统性能值;
根据所述纯优化系统性能值和所述融合系统性能值,确定所述新业务代码是否使所述业务的性能下降。
结合第一方面的第三种可能的实现方式,本发明实施例提供了上述第一方面的第四种可能的实现方式,其中,所述根据所述纯优化系统性能值和所述融合系统性能值,确定所述新业务代码是否使所述业务的性能下降,包括:
判断所述融合系统性能值是否小于所述纯优化系统性能值;
如果是,则确定所述新业务代码使所述业务的性能下降;
如果否,则确定所述新业务代码未使所述业务的性能下降。
结合第一方面,本发明实施例提供了上述第一方面的第五种可能的实现方式,其中,所述合并所述纯优化代码和所述开发代码得到新业务代码,包括:
根据所述业务的源代码和所述纯优化代码,从所述纯优化代码中确定优化修改的代码行;
根据所述业务的源代码和所述开发代码,从所述开发代码中确定开发修改的代码行;
根据所述纯优化代码、所述优化修改的代码行、所述开发代码和所述开发修改的代码行,合并所述纯优化代码和所述开发代码得到新业务代码。
第二方面,本发明实施例提供了一种业务迭代的装置,所述装置包括:
获取模块,用于在业务的当前迭代周期,获取所述业务的源代码的两份拷贝代码;
优化模块,用于对其中一份拷贝代码进行优化得到纯优化代码;
业务开发模块,用于基于另一份拷贝代码进行业务开发得到开发代码;
判断模块,用于对所述开发代码进行解析,判断所述开发代码是否包含新业务模块;
第一确定模块,用于若所述开发代码不包含新业务模块,则将所述纯优化代码确定为下一迭代周期的起始代码;
代码合并模块,用于若所述开发代码包含新业务模块,则合并所述纯优化代码和所述开发代码得到新业务代码;
第二确定模块,用于根据所述新业务代码和所述纯优化代码,确定下一迭代周期的起始代码。
结合第二方面,本发明实施例提供了上述第二方面的第一种可能的实现方式,其中,所述第二确定模块包括:
性能确定单元,用于根据所述新业务代码和所述纯优化代码,确定所述新业务代码是否使所述业务的性能下降;
起始代码确定单元,用于若所述新业务代码未使所述业务的性能下降,则将所述新业务代码确定为下一迭代周期的起始代码;
优化单元,用于若所述新业务代码使所述业务的性能下降,则优化所述新业务代码,通过所述起始代码确定单元将优化后的新业务代码确定为下一迭代周期的起始代码。
结合第二方面的第一种可能的实现方式,本发明实施例提供了上述第二方面的第二种可能的实现方式,其中,所述优化单元,包括:
定位子单元,用于在所述新业务代码中定位出所述新业务模块对应的代码行;
优化子单元,用于对所述新业务模块对应的代码行进行优化。
第三方面,本发明实施例提供了一种计算设备,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行上述第一方面及第一方面的第一至第五任一种实现方式所述的方法。
第四方面,本发明实施例提供了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述第一方面及第一方面的第一至第五任一种实现方式所述的方法。
在本发明实施例提供的方法及装置中,在业务的当前迭代周期,获取业务的源代码的两份拷贝代码;对其中一份拷贝代码进行优化得到纯优化代码,基于另一份拷贝代码进行业务开发得到开发代码;对开发代码进行解析,判断开发代码是否包含新业务模块;如果否,则将纯优化代码确定为下一迭代周期的起始代码;如果是,则合并纯优化代码和开发代码得到新业务代码,根据新业务代码和纯优化代码,确定下一迭代周期的起始代码。本发明通过进行周期性的代码合并,将业务开发迭代敏捷融合到优化迭代中,有效节约了代码合并的工作量,降低了代码合并的难度及出错率,且根据融合的结果进行递归优化,不断增量优化,保证新加入的开发代码是经过优化评估的。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例1所提供的一种业务迭代的方法流程图;
图2示出了本发明实施例1所提供的另一种业务迭代的方法流程图;
图3示出了本发明实施例2所提供的一种业务迭代装置的结构示意图;
图4示出了本发明实施例2所提供的另一种业务迭代装置的结构示意图;
图5示出了本发明实施例3所提供的一种计算设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
考虑到相关技术中,在优化及业务开发产生的修改差异过大时才进行代码合并,随着修改差异的累积,当差异过大时会导致合并难度很大,合并代码时易出错。基于此,本发明实施例提供了一种业务迭代的方法及装置,下面通过实施例进行描述。
实施例1
本发明实施例提供了一种业务迭代的方法,将业务开发迭代敏捷融合到优化迭代中,有效节约代码合并的工作量,降低代码合并的难度及出错率,并根据代码合并的结果对业务开发产生的开发代码进行递归优化,保证新加入的开发代码是经过优化评估的。参见图1,该方法具体包括以下步骤:
步骤101:在业务的当前迭代周期,获取所述业务的源代码的两份拷贝代码。
本发明实施例的执行主体可以为服务器,技术人员在服务器上事先设置业务迭代的迭代周期,迭代周期不能过长,以确保在该迭代周期内对业务进行优化及业务开发所产生的修改差异不会过大。上述迭代周期可以为3天或一周等。
由于在每个迭代周期内进行业务迭代的过程相同,因此本发明实施例中以当前迭代周期为例进行具体说明。
在当前迭代周期内服务器根据业务的源代码运行该业务,为用户提供业务服务。同时,服务器对业务的源代码进行两次复制,得到源代码的两份拷贝代码。
步骤102:对其中一份拷贝代码进行优化得到纯优化代码,基于另一份拷贝代码进行业务开发得到开发代码。
服务器获得源代码的两份拷贝代码后,将其中一份拷贝代码传输给负责业务优化的技术人员的终端,该技术人员在当前迭代周期内以该份拷贝代码为基础,通过规划优化方案、开发优化方案及验证优化方案等业务优化流程,对该业务进行优化,修改该份拷贝代码,得到该业务对应的纯优化代码。
服务器将另一份拷贝代码传输给负责业务开发的技术人员的终端,该技术人员在当前迭代周期内以该份拷贝代码为基础,根据新的用户需求,通过规划业务迭代方案、开发业务方案和验证业务方案等业务开发流程,对该业务进行二次需求开发,得到该业务的开发代码。但若在当前迭代周期内用户需求没有发生改变,则可能对业务进行二次需求开发过程中并没有对业务进行修改,那么得到的开发代码中不包含新业务模块,该开发代码实际仍与该业务的源代码相同。若当前迭代周期内用户需求发生改变,则在二次需求开发过程中对业务进行了修改,得到的开发代码中包含新业务模块。
对于开发代码包含新业务模块和不包含新业务模块两种情况,后续的迭代操作不同,所以需通过如下步骤103的操作来判断开发代码是否包含新业务模块。
步骤103:对开发代码进行解析,判断开发代码是否包含新业务模块,如果是,则执行步骤105,如果否,则执行步骤104。
获取业务的源代码,对开发代码进行解析,并逐行比较业务的源代码与该开发代码,若该开发代码中存在与源代码中不同的代码行,则判断开发代码包含新业务模块。若开发代码中不存在与源代码中不同的代码行,则判断开发代码不包含新业务模块。
步骤104:将纯优化代码确定为下一迭代周期的起始代码,结束当前迭代周期,进入下一迭代周期。
当确定当前迭代周期内的开发代码不包含新业务模块时,不需要进行代码合并操作,直接将当前迭代周期内的纯优化代码确定为下一迭代周期的起始代码,结束当前迭代周期,进入下一迭代周期。即在下一迭代周期内,运行该纯优化代码为用户提供业务服务,同时以该纯优化代码为基础进行业务优化和业务的二次需求开发。
步骤105:合并纯优化代码和开发代码得到新业务代码。
在当前迭代周期内开发代码包含新业务模块时,本发明实施例通过如下操作来合并纯优化代码和开发代码,包括:
根据业务的源代码和纯优化代码,从纯优化代码中确定优化修改的代码行;根据业务的源代码和开发代码,从开发代码中确定开发修改的代码行;根据纯优化代码、优化修改的代码行、开发代码和开发修改的代码行,合并纯优化代码和开发代码得到新业务代码。
服务器获取当前迭代周期内该业务的源代码,从该业务的源代码的第一行代码及纯优化代码的第一行代码开始,逐行比对该业务的源代码及纯优化代码中行号相同的代码,将纯优化代码中与源代码中不同的代码行确定为对该业务进行优化时优化修改的代码行。
同样的,从该业务的源代码的第一行代码及开发代码的第一行代码开始,逐行比对该业务的源代码及开发代码中行号相同的代码,将开发代码中与源代码中不同的代码行确定为对该业务进行开发时开发修改的代码行。
通过上述方式在纯优化代码中确定出优化修改的代码行,以及在开发代码中确定出开发修改的代码行后,可以通过如下第一和第二两种方式中的任一种方式来合并纯优化代码和开发代码,具体包括:
第一,以纯优化代码为基础,根据上述确定的优化修改的代码行和开发修改的代码行,从开发代码中确定出优化时未修改但开发时修改了的第一代码行,以及从开发代码中确定出优化和开发时都修改了的第二代码行。从开发代码中截取出第一代码行,在纯优化代码中定位出第一代码行的行号对应的部分代码,将定位出的部分代码替换为第一代码行。对于第二代码行,可以向技术人员提供是否替换的弹出窗口,技术人员根据第二代码行对业务的重要程度,从弹出窗口向终端提交是否替换第二代码行的指令。当终端从上述弹出窗口接收到替换指令时,从开发代码中截取出第二代码行,在纯优化代码中定位出第二代码行的行号对应的部分代码,将定位出的部分代码替换为第二代码行。当终端从上述弹出窗口接收到不替换指令时,保持纯优化代码中第二代码行的行号对应的部分代码不变。
通过上述第一种方式将只在开发代码中有修改的第一代码行及开发代码中需保留的第二代码行替换到纯优化代码中,就完成了纯优化代码和开发代码之间的融合,替换操作后的纯优化代码即为合并得到的新业务代码。
第二,以开发代码为基础,根据上述确定的优化修改的代码行和开发修改的代码行,从纯优化代码中确定出开发时未修改但优化时修改了的第三代码行。从纯优化代码中截取出第三代码行,在开发代码中定位出第三代码行的行号对应的部分代码,将开发代码中定位出的部分代码替换为第三代码行。另外,从纯优化代码中确定出优化和开发时都修改了的第四代码行,向技术人员提供是否替换的弹出窗口,当终端从上述弹出窗口接收到不替换指令时,保持开发代码中第四代码行的行号对应的部分代码不变。当终端从上述弹出窗口接收到替换指令时,从纯优化代码中截取出第四代码行,将开发代码中第四代码行的行号对应的部分代码替换为截取的第四代码行。
通过上述第二种方式将只在纯优化代码中有修改的第三代码行替换到开发代码中,以及在接收到替换指令时将纯优化代码中的第四代码行替换到开发代码中后,就完成了优化代码和开发代码之间的融合,经过上述替换操作后的开发代码即为合并得到的新业务代码。
本发明实施例中,在开发代码中包含新业务模块时,通过上述方式周期性地对纯优化代码和开发代码进行融合,将业务开发迭代敏捷融合到优化迭代中,使业务开发迭代成为优化迭代的一部分,有效节约了代码合并的工作量和合并难度,提高了代码合并效率。
步骤106:根据新业务代码和纯优化代码,确定下一迭代周期的起始代码,结束当前迭代周期,进入下一迭代周期。
根据新业务代码和纯优化代码,确定新业务代码是否使业务的性能下降;若新业务代码未使业务的性能下降,则将新业务代码确定为下一迭代周期的起始代码,结束当前周期,进入下一迭代周期;若新业务代码使业务的性能下降,则优化新业务代码,将优化后的新业务代码确定为下一迭代周期的起始代码。
本发明实施例通过如下操作来确定新业务代码是否使业务的性能下降,具体包括:
运行纯优化代码,获取业务对应的纯优化系统性能值;运行新业务代码,获取业务对应的融合系统性能值;根据纯优化系统性能值和融合系统性能值,确定新业务代码是否使该业务的系统性能下降。
在确定新业务代码是否使该业务的系统性能下降时,判断融合系统性能值是否小于纯优化系统性能值;如果是,则确定新业务代码使该业务的系统性能下降;如果否,则确定新业务代码未使该业务的系统性能下降。
上述纯优化系统性能值可以为运行纯优化代码启动该业务所需的启动时长,或者为单位时间内运行纯优化代码能够响应的用户访问数量,或者为运行纯优化代码对CPU(Central Processing Unit,中央处理器)及内存等系统资源的占用率等。上述融合系统性能值可以为运行新业务代码启动该业务所需的启动时长,或者为单位时间内运行新业务代码能够响应的用户访问数量,或者为运行新业务代码对CPU及内存等系统资源的占用率等。
通过上述方式确定新业务代码是否使该业务的性能下降,若未使业务的性能下降,则将新业务代码确定为下一迭代周期的起始代码,结束当前周期,进入下一迭代周期。即在下一迭代周期内,运行该新业务代码为用户提供业务服务,同时以该新业务代码为基础进行业务优化和业务的二次需求开发。
若新业务代码使业务的性能下降,则首先通过如下操作来优化新业务代码,具体包括:
在新业务代码中定位出新业务模块对应的代码行;对新业务模块对应的代码行进行优化。
若在步骤105中采用了第一种方式来合并纯优化代码和开发代码得到新业务代码,则新业务模块对应的代码行即为在合并过程中替换到纯优化代码中的第一代码行和第二代码行。若在步骤105中采用第二种方式来合并纯优化代码和开发代码得到新业务代码,则从新业务代码中扣除合并过程中替换到开发代码中的第三代码行和第四代码行,扣除操作后将新业务代码中剩余的代码行与该业务的源代码中相同行号的代码行进行比较,从剩余的代码行中确定出与源代码中不同的代码行,这些不同的代码行即为新业务模块对应的代码行。
通过上述方式确定出新业务模块对应的代码行后,运行新业务模块对应的代码行,获取运行过程中对CPU及内存等系统资源的占用情况,根据对系统资源的占用情况,分析出新业务模块对应的代码行中可优化的部分代码,对可优化的部分代码进行迭代优化。本发明实施例中,仅对新业务模块对应的代码行进行优化,减少了优化工作量,且保证新增加的新业务模块是经过优化评估的。
通过上述方式对新业务代码中新业务模块对应的代码行进行优化后,将新业务代码确定为下一迭代周期的起始代码,结束当前周期,进入下一迭代周期。即在下一迭代周期内,运行该新业务代码为用户提供业务服务,同时以该新业务代码为基础进行业务优化和业务的二次需求开发。
为了便于理解本发明实施例提供的业务迭代方法,下面以迭代周期为一周为例进行举例说明。如图2所示,在周起点,以本周内业务的源代码的拷贝代码为基础,分别进行业务优化和业务开发,在业务优化时依次进行规划优化方案、开发优化方案和验证优化方案,得到纯优化代码。在业务开发时依次进行规划业务迭代方案、开发业务方案和验证业务方案,得到开发代码。但是开发代码中并不一定会有新增加的新业务模块,所以需要判断开发代码中是否有新业务模块,如果没有,则直接以纯优化代码作为下一周期业务迭代的源代码,直接返回周起点,进入下一周期。如果有,则合并纯优化代码和开发代码,合并之后判断是否恶化了本周优化效果,即判断合并后的新业务代码的系统性能值是否低于本周纯优化代码的系统性能值。如果没有恶化,则以合并后的新业务代码作为下一周期业务迭代的源代码,返回周起点,进入下一周期。如果恶化了,则找出新业务代码中增加的新业务模块,即新增加的接口或功能模块的代码内容,将其单独进行增量优化,将增量优化后的新业务代码作为下一周期业务迭代的源代码,返回周起点,进入下一周期。
在本发明实施例中,在业务的当前迭代周期,获取业务的源代码的两份拷贝代码;对其中一份拷贝代码进行优化得到纯优化代码,基于另一份拷贝代码进行业务开发得到开发代码;对开发代码进行解析,判断开发代码是否包含新业务模块;如果否,则将纯优化代码确定为下一迭代周期的起始代码;如果是,则合并纯优化代码和开发代码得到新业务代码,根据新业务代码和纯优化代码,确定下一迭代周期的起始代码。本发明进行周期性的代码合并,将业务开发迭代敏捷融合到优化迭代中,有效节约了代码合并的工作量,降低了代码合并的难度及出错率,且根据融合的结果进行递归优化,不断增量优化,保证新加入的开发代码是经过优化评估的。
实施例2
参见图3,本发明实施例提供了一种业务迭代的装置,该装置用于执行上述实施例1提供的业务迭代方法。该装置具体包括:
获取模块201,用于在业务的当前迭代周期,获取业务的源代码的两份拷贝代码;
优化模块202,用于对其中一份拷贝代码进行优化得到纯优化代码;
业务开发模块203,用于基于另一份拷贝代码进行业务开发得到开发代码;
判断模块204,用于对开发代码进行解析,判断开发代码是否包含新业务模块;
第一确定模块205,用于若开发代码不包含新业务模块,则将纯优化代码确定为下一迭代周期的起始代码;
代码合并模块206,用于若开发代码包含新业务模块,则合并纯优化代码和开发代码得到新业务代码;
第二确定模块207,用于根据新业务代码和纯优化代码,确定下一迭代周期的起始代码。
如图4所示,上述第二确定模块207包括:
性能确定单元2071,用于根据新业务代码和纯优化代码,确定新业务代码是否使业务的性能下降;
起始代码确定单元2072,用于若新业务代码未使业务的性能下降,则将新业务代码确定为下一迭代周期的起始代码;
优化单元2073,用于若新业务代码使业务的性能下降,则优化新业务代码,通过起始代码确定单元2072将优化后的新业务代码确定为下一迭代周期的起始代码。
上述优化单元2073,包括:定位子单元,用于在新业务代码中定位出新业务模块对应的代码行;优化子单元,用于对新业务模块对应的代码行进行优化。
上述性能确定单元2071包括:
获取子单元,用于运行纯优化代码,获取业务对应的纯优化系统性能值;运行新业务代码,获取业务对应的融合系统性能值;
确定子单元,用于根据纯优化系统性能值和融合系统性能值,确定新业务代码是否使业务的性能下降。
上述确定子单元,用于判断融合系统性能值是否小于纯优化系统性能值;如果是,则确定新业务代码使业务的性能下降;如果否,则确定新业务代码未使业务的性能下降。
如图4所示,代码合并模块206包括:
确定单元2061,用于根据业务的源代码和纯优化代码,从纯优化代码中确定优化修改的代码行;根据业务的源代码和开发代码,从开发代码中确定开发修改的代码行;
合并单元2062,用于根据纯优化代码、优化修改的代码行、开发代码和开发修改的代码行,合并纯优化代码和开发代码得到新业务代码。
在本发明实施例中,在业务的当前迭代周期,获取业务的源代码的两份拷贝代码;对其中一份拷贝代码进行优化得到纯优化代码,基于另一份拷贝代码进行业务开发得到开发代码;对开发代码进行解析,判断开发代码是否包含新业务模块;如果否,则将纯优化代码确定为下一迭代周期的起始代码;如果是,则合并纯优化代码和开发代码得到新业务代码,根据新业务代码和纯优化代码,确定下一迭代周期的起始代码。本发明进行周期性的代码合并,将业务开发迭代敏捷融合到优化迭代中,有效节约了代码合并的工作量,降低了代码合并的难度及出错率,且根据融合的结果进行递归优化,不断增量优化,保证新加入的开发代码是经过优化评估的。
实施例3
参见图5,本发明实施例提供了一种计算设备,该计算设备包括存储器301和处理器302,存储器301上存储有可在处理器302上运行的计算机程序,处理器302运行该计算机程序时,执行上述实施例1所提供的业务迭代的方法。
具体地,存储器301和处理器302可以为通用的存储器和处理器,这里不做具体限定,存储器301和处理器302之间通过总线连接,当处理器302运行存储器301存储的计算机程序时,能够执行上述的业务迭代的方法,从而解决相关技术中在修改差异过大时才进行代码合并,随着修改差异的累积,当差异过大时会导致合并难度很大,合并代码时易出错的问题。实现周期性进行代码合并,将业务开发迭代敏捷融合到优化迭代中,有效节约代码合并的工作量,降低了代码合并的难度及出错率。
实施例4
本发明实施例提供了一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时,执行上述实施例1提供的业务迭代的方法。
具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该存储介质上的计算机程序被运行时,能够执行上述的业务迭代的方法,从而解决相关技术中在修改差异过大时才进行代码合并,随着修改差异的累积,当差异过大时会导致合并难度很大,合并代码时易出错的问题。实现周期性进行代码合并,将业务开发迭代敏捷融合到优化迭代中,有效节约代码合并的工作量,降低了代码合并的难度及出错率。
本发明实施例所提供的业务迭代的装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (11)
1.一种业务迭代的方法,其特征在于,所述方法包括:
在业务的当前迭代周期,获取所述业务的源代码的两份拷贝代码;
对其中一份拷贝代码进行优化得到纯优化代码,基于另一份拷贝代码进行业务开发得到开发代码;
对所述开发代码进行解析,判断所述开发代码是否包含新业务模块;
若所述开发代码不包含新业务模块,则将所述纯优化代码确定为下一迭代周期的起始代码;
若所述开发代码包含新业务模块,则合并所述纯优化代码和所述开发代码得到新业务代码,根据所述新业务代码和所述纯优化代码,确定下一迭代周期的起始代码。
2.根据权利要求1所述的方法,其特征在于,所述根据所述新业务代码和所述纯优化代码,确定下一迭代周期的起始代码,包括:
根据所述新业务代码和所述纯优化代码,确定所述新业务代码是否使所述业务的性能下降;
若所述新业务代码未使所述业务的性能下降,则将所述新业务代码确定为下一迭代周期的起始代码;
若所述新业务代码使所述业务的性能下降,则优化所述新业务代码,将优化后的新业务代码确定为下一迭代周期的起始代码。
3.根据权利要求2所述的方法,其特征在于,所述优化所述新业务代码,包括:
在所述新业务代码中定位出所述新业务模块对应的代码行;
对所述新业务模块对应的代码行进行优化。
4.根据权利要求2所述的方法,其特征在于,所述根据所述新业务代码和所述纯优化代码,确定所述新业务代码是否使所述业务的性能下降,包括:
运行所述纯优化代码,获取所述业务对应的纯优化系统性能值;
运行所述新业务代码,获取所述业务对应的融合系统性能值;
根据所述纯优化系统性能值和所述融合系统性能值,确定所述新业务代码是否使所述业务的性能下降。
5.根据权利要求4所述的方法,其特征在于,所述根据所述纯优化系统性能值和所述融合系统性能值,确定所述新业务代码是否使所述业务的性能下降,包括:
判断所述融合系统性能值是否小于所述纯优化系统性能值;
如果是,则确定所述新业务代码使所述业务的性能下降;
如果否,则确定所述新业务代码未使所述业务的性能下降。
6.根据权利要求1所述的方法,其特征在于,所述合并所述纯优化代码和所述开发代码得到新业务代码,包括:
根据所述业务的源代码和所述纯优化代码,从所述纯优化代码中确定优化修改的代码行;
根据所述业务的源代码和所述开发代码,从所述开发代码中确定开发修改的代码行;
根据所述纯优化代码、所述优化修改的代码行、所述开发代码和所述开发修改的代码行,合并所述纯优化代码和所述开发代码得到新业务代码。
7.一种业务迭代的装置,其特征在于,所述方法包括:
获取模块,用于在业务的当前迭代周期,获取所述业务的源代码的两份拷贝代码;
优化模块,用于对其中一份拷贝代码进行优化得到纯优化代码;
业务开发模块,用于基于另一份拷贝代码进行业务开发得到开发代码;
判断模块,用于对所述开发代码进行解析,判断所述开发代码是否包含新业务模块;
第一确定模块,用于若所述开发代码不包含新业务模块,则将所述纯优化代码确定为下一迭代周期的起始代码;
代码合并模块,用于若所述开发代码包含新业务模块,则合并所述纯优化代码和所述开发代码得到新业务代码;
第二确定模块,用于根据所述新业务代码和所述纯优化代码,确定下一迭代周期的起始代码。
8.根据权利要求7所述的装置,其特征在于,所述第二确定模块包括:
性能确定单元,用于根据所述新业务代码和所述纯优化代码,确定所述新业务代码是否使所述业务的性能下降;
起始代码确定单元,用于若所述新业务代码未使所述业务的性能下降,则将所述新业务代码确定为下一迭代周期的起始代码;
优化单元,用于若所述新业务代码使所述业务的性能下降,则优化所述新业务代码,通过所述起始代码确定单元将优化后的新业务代码确定为下一迭代周期的起始代码。
9.根据权利要求8所述的装置,其特征在于,所述优化单元,包括:
定位子单元,用于在所述新业务代码中定位出所述新业务模块对应的代码行;
优化子单元,用于对所述新业务模块对应的代码行进行优化。
10.一种计算设备,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器运行所述计算机程序时执行上述权利要求1至6任一项所述的方法。
11.一种存储介质,所述存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时执行上述权利要求1至6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611207281.3A CN108614700B (zh) | 2016-12-23 | 2016-12-23 | 一种业务迭代的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611207281.3A CN108614700B (zh) | 2016-12-23 | 2016-12-23 | 一种业务迭代的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108614700A true CN108614700A (zh) | 2018-10-02 |
CN108614700B CN108614700B (zh) | 2021-08-20 |
Family
ID=63657967
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611207281.3A Active CN108614700B (zh) | 2016-12-23 | 2016-12-23 | 一种业务迭代的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108614700B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103207786A (zh) * | 2013-04-28 | 2013-07-17 | 中国人民解放军信息工程大学 | 渐进式智能回溯向量化代码调优方法 |
US8689220B2 (en) * | 2011-11-30 | 2014-04-01 | International Business Machines Corporation | Job scheduling to balance energy consumption and schedule performance |
CN105302716A (zh) * | 2014-07-30 | 2016-02-03 | 腾讯科技(深圳)有限公司 | 合流开发模式下的测试方法、装置 |
CN105912461A (zh) * | 2016-04-05 | 2016-08-31 | 浪潮电子信息产业股份有限公司 | 一种软件敏捷测试方法及系统 |
-
2016
- 2016-12-23 CN CN201611207281.3A patent/CN108614700B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8689220B2 (en) * | 2011-11-30 | 2014-04-01 | International Business Machines Corporation | Job scheduling to balance energy consumption and schedule performance |
CN103207786A (zh) * | 2013-04-28 | 2013-07-17 | 中国人民解放军信息工程大学 | 渐进式智能回溯向量化代码调优方法 |
CN105302716A (zh) * | 2014-07-30 | 2016-02-03 | 腾讯科技(深圳)有限公司 | 合流开发模式下的测试方法、装置 |
CN105912461A (zh) * | 2016-04-05 | 2016-08-31 | 浪潮电子信息产业股份有限公司 | 一种软件敏捷测试方法及系统 |
Non-Patent Citations (1)
Title |
---|
李郑等: "基于抽象语法树分析的版本控制分支合并算法", 《计算机系统应用》 * |
Also Published As
Publication number | Publication date |
---|---|
CN108614700B (zh) | 2021-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103109271B (zh) | 一种平台间迁移应用的实现方法及系统 | |
CN105224606B (zh) | 一种用户标识的处理方法及装置 | |
US9300134B2 (en) | Methods and systems for power restoration planning | |
CN104484220A (zh) | 虚拟化集群的动态资源调度的方法及装置 | |
CN105099786B (zh) | 一种网络割接中业务配置的方法和设备 | |
US9813487B2 (en) | Assessment of service level agreement compliance | |
US9904741B2 (en) | Colocation and anticolocation in colocation data centers via elastic nets | |
CN107092491A (zh) | 一种配置加载方法和系统 | |
CN109474467A (zh) | 网络自动化管理方法、装置、存储介质及电子设备 | |
CN104850394A (zh) | 分布式应用程序的管理方法和分布式系统 | |
CN108833592A (zh) | 云主机调度器优化方法、装置、设备及存储介质 | |
CN109271364A (zh) | 存储方法及装置 | |
CN101495978A (zh) | 减少总线连接的消费者和产生者之间的消息流 | |
CN108199763A (zh) | 中继卫星任务调度方法与系统 | |
CN110069274A (zh) | 池化服务器ReDriver芯片配置更新方法及装置 | |
CN104506636A (zh) | 一种数据同步方法及装置 | |
CN108614700A (zh) | 一种业务迭代的方法及装置 | |
CN106708445A (zh) | 链路选择方法及装置 | |
CN104599718B (zh) | 一种硬盘的处理方法及装置 | |
CN107885527A (zh) | 一种测试系统的代码修改方法及装置 | |
CN105025040A (zh) | 好友分类方法及服务器 | |
CN105721527A (zh) | 一种数据处理方法以及服务器 | |
CN109063335A (zh) | 增量核密度估计器的生成方法、装置和计算机可读存储介质 | |
CN103984779A (zh) | 一种数据更新方法及装置 | |
CN103761617A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |