代码管理方法和装置与流程

文档序号:12818718阅读:229来源:国知局
代码管理方法和装置与流程

本发明实施例涉及计算机应用技术领域,尤其涉及一种代码管理方法和装置。



背景技术:

目前,计算机技术和网络的迅速发展,极大地方便了人们的日常生活。在科技化的今天,为了满足人们生活、工作、娱乐等各方面对便捷性和高效性的需求,越来越多的设备趋向于采用计算机软件进行智能化控制。

对于电视、手机等系列开发的智能设备,往往会出现同一种功能模块或者应用软件共用一套代码进行开发的情况。为了避免实现不同功能的代码之间的相互影响,工程师新增功能的代码或代码块会采用宏定义的形式表示,以防止出错,提高可移植性,可读性,方便性。但是,由于多人、多客户可能会同时使用一套代码,若宏定义对应的功能添加后未经测试验证,便被其他工程师使用,尤其工程师可能会对代码进行变更,如参数替换等,导致未被测试验证的代码变更被引入生产软件中,则生产软件会存在比较严重质量风险。



技术实现要素:

本发明提供一种代码管理方法和装置,以解决未经测试验证的代码直接被使用导致的安全问题,实现代码的自动管理,提高代码使用的可靠性与安全性。

第一方面,本发明实施例提供了一种代码管理方法,该方法包括:

获取宏定义调用请求中待编译的第一宏定义值;

当基于检测脚本检测到所述第一宏定义值与预先存储的宏定义的第二宏定义值不一致时,确定所述宏定义的测验标记参数的变化状态;

根据确定结果响应所述宏定义调用请求。

第二方面,本发明实施例还提供了一种代码管理装置,该装置包括:

获取模块,用于获取宏定义调用请求中待编译的第一宏定义值;

变化状态确定模块,用于当基于检测脚本检测到所述第一宏定义值与预先存储的宏定义的第二宏定义值不一致时,确定所述宏定义的测验标记参数的变化状态;

响应模块,用于根据确定结果响应所述宏定义调用请求。

本发明实施例的技术方案,在检测到宏定义调用请求中待编译的第一宏定义值与预先存储的宏定义的第二宏定义值是不一致时,即宏定义被调用且发生变更时,并不是直接响应宏定义调用请求,通过确定宏定义的测验标记参数的变化状态,确定宏定义是否经过测验,进而根据确定结果响应宏定义调用请求,能够有效保证宏定义的安全调用。

附图说明

为了更加清楚地说明本发明示例性实施例的技术方案,下面对描述实施例中所需要用到的附图做一简单介绍。显然,所介绍的附图只是本发明所要描述的一部分实施例的附图,而不是全部的附图,对于本领域普通技术人员,在不付出创造性劳动的前提下,还可以根据这些附图得到其他的附图。

图1为本发明实施例一所提供的一种代码管理方法的流程图;

图2为本发明实施例二所提供的一种代码管理方法的流程图;

图3为本发明实施例三所提供的一种代码管理装置的结构框图。

具体实施方式

下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。

实施例一

图1为本发明实施例一提供的一种代码管理方法的流程图。本实施例的方法可以由代码管理装置来执行,该装置可通过硬件和/或软件的方式实现,并一般可由服务器和终端配合实现本实施例的方法。

本实施例的方法具体包括:

s110、获取宏定义调用请求中待编译的第一宏定义值。

在代码管理中,宏定义的使用可提高程序的通用性和易读性,减少不一致性,减少输入错误。尤其在程序中包含参数时,宏定义的应用使得程序调试更加方便。宏定义调用请求中通常包括用户需求的或者调用该宏定义所需求的第一宏定义值。示例性的,第一宏定义值可以是表示宏定义括起来的代码段中具体的一个或多个参数,也可以是表示宏定义开关状态的常量。具体地,第一宏定义值可以用数值、单词和/或字符串等表示。

s120、当基于检测脚本检测到所述第一宏定义值与预先存储的宏定义的第二宏定义值不一致时,确定宏定义的测验标记参数的变化状态。

为了便于程序代码的管理和调试,通常会将可能用到的代码块一宏定义的形式预先存储,而预先存储的宏定义的第二宏定义值也就是初始设置的宏定义值或者说是默认值。由于获取到的宏定义调用请求中包括待编译的第一宏定义值,此时可基于检测脚本检测第一宏定义值与第二宏定义值是否一致,若不一致,说明用户此时要启用该宏定义或者要变更该宏定义的代码。为了保证代码的安全实用,可以进一步确定宏定义的测验标记参数的变化状态,以确认所调用的宏定义是否通过了测试验证。

示例性地,可以通过添加或者删除测验标记的方式来确定所述宏定义的测验标记参数的变化状态。具体可以是,对首次添加的宏定义进行未测验标记,若检测到所述宏定义存在所述未测验标记,则确定所述宏定义的测验标记参数未发生变化。可以理解的是,由于对宏定义添加进行未测验标记是为了区分该宏定义是否通过了测试验证,因此一旦未通过测试验证的宏定义通过了测试验证则可以删除未测验标记或者置换为已测验标记,检测到宏定义存在已测验标记,则确定所述宏定义的测验标记参数发生变化。当然,也可以是在首次添加的宏定义时不进行任何标记,当检测到系统中存在宏定义的通过测验记录时,为该宏定义添加已测验标记;若检测到宏定义存在已测验标记,则确定所述宏定义的测验标记参数发生变化。

考虑到宏定义调用过程中往往需要识别宏定义的存储路径,因此,还可以根据宏定义的存储路径确定宏定义的测验标记参数的变化状态。进一步地,在根据宏定义的存储路径确定宏定义的测验标记参数的变化状态之前,还可以包括:可以实时或者间隔设定时间获取系统记录的该宏定义的测试验证的记录;根据系统记录的该宏定义的测试验证的结果,对宏定义进行存储。例如,可以创建不同的头文件作为测验标记,分别用于存储未通过测试验证的宏定义和已通过测试验证的宏定义。这样只需要识别宏定义存储于哪个头文件中就可以确定宏定义是否通过了测试验证,简单方便。

可以理解的是,以上仅仅示出了确定宏定义的测验标记参数的变化状态的有限几种可行方式,并非限定。由于确定结果随宏定义的测验标记参数的设置和判断标准的不同而变化。本发明目的旨在保证代码安全实用,具体可通过宏定义的测验标记参数确定宏定义是否经过测试验证,在宏定义未经过测试验证的情况下,提示用户可能存在的风险,并且尽可能的调试代码通过测试验证后再使用,而对于已经通过测试验证的宏定义可以直接响应调用请求。因此,测验标记的参数可以由用户或者工程师根据实际需求进行设置。

s130、根据确定结果响应所述宏定义调用请求。

在本实施例中,确定结果通常包括宏定义的测验标记参数未发生变化或者发生了变化。若确定出宏定义的测验标记参数发生变化,则可能说明该宏定义在添加后已经通过了测试验证,可以直接调用该宏定义,响应宏定义中代码段对应的功能。若确定出宏定义的测验标记参数未发生变化,可能说明所调用的宏定义尚未通过测试验证,则可输出提示信息,以便用户及时了解该宏定义当前的状态,进一步地,还可以询问是否进行调试并测试验证,若不进行测试验证则提示可能存在的风险。若调试后通过测试了验证,则可以通过修改测验标记参数,在再次调用该宏定义时,直接响应宏定义中代码段对应的功能。

本发明实施例的技术方案,在检测到宏定义调用请求中待编译的第一宏定义值与预先存储的宏定义的第二宏定义值是不一致时,即宏定义被调用且发生变更时,并不是直接响应宏定义调用请求,通过确定宏定义的测验标记参数的变化状态,确定宏定义是否经过测验,进而根据确定结果响应宏定义调用请求,能够有效保证宏定义的安全调用。

实施例二

图2为本发明实施例二提供的代码管理方法的流程图,如图2所示,本实施例在上述各实施例的基础上,可选地,所述确定所述宏定义的测验标记参数的变化状态可包括:根据所述宏定义的存储路径确定所述宏定义的测验标记参数的变化状态。

在上述技术方案的基础上,进一步地,根据确定结果响应所述宏定义调用请求具体可包括:若所述宏定义的测验标记参数未发生变化,则输出提示信息。

本实施例的方法具体包括:

s210、获取宏定义调用请求中待编译的第一宏定义值。

s220、当基于检测脚本检测到所述第一宏定义值与预先存储的宏定义的第二宏定义值不一致时,根据宏定义的存储路径确定宏定义的测验标记参数的变化状态。

在本实施例中,终端或服务器可以采用宏定义的形式预先存储一种或者多种用户可能会用到的功能模块,调用宏定义时只要获取宏定义的存储路径即可确定宏定义的测验标记参数的变化状态。可选地,可以创建第一头文件用于存储未通过测试验证的宏定义,创建第二头文件用于存储已经通过了测试验证的宏定义。具体地,若所述宏定义存在于预先创建好的第一头文件中,则确定所述宏定义的测验标记参数未发生变化,即宏定义的测验标记参数未发生变化。若该宏定义从第一头文件中转存到第二头文件中,则确定宏定义的测验标记参数发生变化。

在代码管理过程中,只需要根据宏定义的存储在第一头文件中还是第二头文件中,即可确定宏定义的测验标记参数的变化状态,从而确定该宏定义是否通过了测试验证。由于在调用宏定义时可以直接获取到宏定义的存储路径,因此不用增加额外的操作,即可简单快捷地确定出宏定义是否通过了测试验证,不仅能够通过对代码的质量监管提高宏定义的安全性,而且能够更高效地响应用户的宏定义调用请求。

s230、若宏定义的测验标记参数未发生变化,则输出提示信息。

示例性地,提示信息可以宏定义的测验标记参数所表示的宏定义当前的状态即自身属性等。例如,具体可以是该宏定义未经测试验证,或者该宏定义已通过测试验证等。若宏定义未经测试验证时还可以输出风险提示,提醒用户直接使用可能会存在的风险。若用户进入调试以及测试验证状态,还可以实时提醒用户当前调试是否通过测试验证等。这样设置的好处在于,用户或工程师可以通过提示信息及时地、直观地了解宏定义当前的状态,提升用户体验。

考虑到宏定义在添加时往往未通过质量测试验证,而且系统一般会记录宏定义的初始状态,所以若宏定义的测验标记参数未发生变化,则可以输出提示信息,以免用户在不知情的情况下直接调用未通过质量测试验证的宏定义而对执行设备或者终端等造成不必要的损伤。

本实施例的技术方案,通过宏定义的存储路径确定所述宏定义的测验标记参数的变化状态,可以简单快速有效地确定出宏定义是否经过测验,而且在宏定义的测验标记参数未发生变化时,输出提示信息,能够自动发出警告、提醒用户,有效地监控宏定义的状态,保证宏定义安全调用,优化代码管理方法。

以电视机中添加dvd功能的应用场景为例,本实施例所适用的一种代码管理方法的具体流程可陈述如下:厂商或研发工程师a考虑到客户可能有在电视机中内置dvd功能模块的需求,而原来代码不支持此功能,于是工程师a添加了此功能,并用宏定义cvt_en_dvd将实现dvd功能的代码段括起来,且默认关闭这个宏定义,此时默认的宏定义值即预先存储的第二宏定义值可以为0或false,以保证在默认情况下代码编译不到,不会影响到其他订单软件的功能。但是,该宏定义中的代码段未经质量部qa测试,将未经测试的宏定义存储于第一头文件global_default_draft.h中。

工程师b遇到客户c1提出在生产软件中添加内置dvd功能模块的需求,且工程师b发现现有的代码中已经存在用宏cvt_en_dvd控制的dvd功能模块,于是直接在配置软件时,调用该宏定义cvt_en_dvd,即直接打开cvt_en_dvd宏定义,使用这个功能,此时获取到的宏定义待编译的第一宏定义值可以为1或true。

由于宏定义存储在第一头文件global_default_draft.h中,软件再编译时,基于draft_check.sh检测脚本,检测到待编译的生产软件的cvt_en_dvd的第一宏定义值与global_default_draft.h中预先登记存储的cvt_en_dvd的第二宏定义值不一致,则输出提示信息,自动报警,提示软件工程师b这个功能对应的宏定义未经测试验证,如果要在生产软件中使用,必须先提交qa测试验证。

工程师b把编译出来的软件,按系统提示信息的要求,提交了dvd模块的专项测试验证。若qa测试验证如果发现问题,会要求软件工程师b持续修改并继续提交测试验证。最终测试验证通过后,工程师b或者系统自动将global_default_draft.h文件中的宏定义cvt_en_dvd登记到宏定义公共配置区即第二头文件global_default_config.h中,并将global_default_draft.h文件中的宏定义cvt_en_dvd删除。若有其他客户需要使用dvd功能时,直接从global_default_config.h中调用宏定义即可。

需要说明的是,由于global_default_config.h中的dvd功能模块已经通过测试,此时无论宏定义调用请求中的宏定义的第一宏定义值是否与第二头文件中存储的宏定义的第二宏定义值(与第一头文件中存储的宏定义的第二宏定义相同)是否一致,都可以直接使用该dvd功能模块。

该方案避免了不同软件工程师对未经验证的软件进行变更后被生产软件直接使用所导致的质量问题,通过上述代码管理方法,实现了软件变更的闭环质量管控,保证代码安全,同时减少了沟通成本,节省了效率。

实施例三

图3所示为本发明实施例三提供的一种代码管理装置的结构示意图,该装置可通过硬件和/或软件的方式实现,并一般可由终端和服务器配合实现本实施例的方法。如图3所示,所述代码管理装置具体包括:获取模块310、变化状态确定模块320和响应模块330。

其中,获取模块310,用于获取宏定义调用请求中待编译的第一宏定义值;变化状态确定模块320,用于当基于检测脚本检测到所述第一宏定义值与预先存储的宏定义的第二宏定义值不一致时,确定所述宏定义的测验标记参数的变化状态;响应模块330,用于根据确定结果响应所述宏定义调用请求。

本发明实施例的技术方案,在检测到宏定义调用请求中待编译的第一宏定义值与预先存储的宏定义的第二宏定义值是不一致时,即宏定义被调用且发生变更时,并不是直接响应宏定义调用请求,通过确定宏定义的测验标记参数的变化状态,确定宏定义是否经过测验,进而根据确定结果响应宏定义调用请求,能够有效保证宏定义的安全调用。

在上述技术方案的基础上,所述变化状态确定模块可用于:

对首次添加的宏定义进行未测验标记,若检测到所述宏定义存在所述未测验标记,则确定所述宏定义的测验标记参数未发生变化。

在上述各技术方案的基础上,所述变化状态确定模块还可用于:

根据所述宏定义的存储路径确定所述宏定义的测验标记参数的变化状态。

在上述各技术方案的基础上,所述变化状态确定模块具体可用于:

若所述宏定义存在于预先创建好的第一头文件中,则确定所述宏定义的测验标记参数未发生变化。

在上述各技术方案的基础上,所述响应模块可用于:

若所述宏定义从第一头文件中转存到第二头文件中,则确定所述宏定义的测验标记参数发生变化。

在上述各技术方案的基础上,所述响应模块还可用于:

若所述宏定义的测验标记参数发生变化,则输出提示信息。

上述实施例中提供的代码管理装置及移动终端可执行本发明任意实施例所提供的代码管理方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的代码管理方法。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1