特征标志之间的依赖性的制作方法

文档序号:9383057阅读:338来源:国知局
特征标志之间的依赖性的制作方法
【专利说明】
【背景技术】
[0001]持续交付(CD)是软件开发寿命周期的成长实践。CD可有助于自动化代码交付管线,例如从建筑和单元测试阶段(例如连续集成(Cl))到将多个软件实现部署到环境内和执行应用编程接口(API)到功能和性能测试。在一些实例中,当测试被成功地完成时,CD可将软件实现部署到生产环境内。
【附图说明】
[0002]图1描绘根据本公开的用于处理特征标志(feature flags)之间的依赖性的示例性方法的框图。
[0003]图2不出根据本公开的不例性特征标志图的框图。
[0004]图3示出根据本公开的用于处理特征标志之间的依赖性的示例性系统的框图。
[0005]图4示出根据本公开的用于处理特征标志之间的依赖性的示例性计算系统的框图。
【具体实施方式】
[0006]CD和/或Cl的从业者可开发在主线上的指令代码的大部分而无需对代码库(例如源配置管理(SCM)库)进行分支。这个实践可减少代码合,并且可导致代码在整个开发和/或实现中“处于生产中” 一一开发者可考虑的因素。
[0007]特征标志的利用(例如特征翻转、特征切换以及其它术语)在⑶和/或Cl中日益增多。⑶和/或Cl的从业者可利用特征标志作为切换,以特别地且动态地激活并去激活(例如开启和关闭)由处理资源可执行的过程的相关特征,从而例如减小可能通过允许特征代码的持续交付和/或集成而引起过程的故障的风险。
[0008]例如,特征(例如软件项目和/或代码特别是在功能上相对于其它软件项目和/或代码的有意区分开的特征)可能不是强大的和/或独立的软件项目和/或代码。也就是说,在很多实例中,一个或多个特征的功能可依赖于一个或多个其它特征的激活或去激活。例如,第二特征可交付“搜索”功能内部的“搜索项目完成”功能,且第一特征可交付图形用户界面(GUI)上的“搜索”功能。在这样的情形中,如果开发者例如激活第二特征而没有也开启第一特征,则该过程(例如软件应用)可被置于“搜索项目完成”功能是活动的但实际“搜索”功能是不活动的状态中,可能引起过程的故障(例如导致错误和/或在运行时间上的性能降级)。
[0009]特征标志可通过将代码包括在逻辑“ if then”子句中来起作用,其中“ if ”语句可检查变量以查看特征是否应是活动的。在子句内的代码可以是用于激活特征的主要(且可能唯一的)代码路径(例如用户可用来访问特征的GUI,以及很多其它可能性)。例如,当变量被设置为“假”时,代码可以是不可访问的,使得特征不通过GUI被呈现给用户,特征因此“被隐藏”。另一示例是当子句围绕API定义时,从而“隐藏”它而不被其它应用调用(例如在表述性状态转移(REST)服务的情况下,以及其它可能性)。
[0010]另一选择是基于条件是否被满足来激活或去激活特征标志(例如开启或关闭特征标志)。作为一个示例,这样的条件可以是用户的特性是否被满足,例如经由有管理权的用户而不是只读用户的特征标志来开启特征。另一示例是经由在给定时间跨度(例如2天)内用户的一部分(例如10% )的特征标志来开启特征,这可例如被完成以防止过程的某些部分、计算资源等的过度使用。另一示例是对使用真实用户的样本尺寸的A/B测试(例如开裂测试)。
[0011]如在本公开中所描述的,处理特征标志之间的依赖性可包括通过处理资源执行指令(例如存储在非临时性介质上的指令),定义在由处理资源可执行的过程中多个特征标志之间的依赖性。该方法可包括通过处理资源执行指令,在第一特征的激活期间通过确定将一特征标志利用为第二特征的切换的利用有效性来实施依赖性,如在本文所描述的。如在本文使用的,“一个”、“至少一个”或“多个”元件(例如特征标志和/或特征以及本文的其它元件)可以指一个或多个这样的元件。此外,在适当的场合,如在本文使用的,“例如”和“作为示例”应被理解为“作为示例而不是作为限制”的缩写。
[0012]图1描绘根据本公开的用于处理特征标志之间的依赖性的示例性方法的框图。除非明确地规定,否则本文所描述的方法示例并不被限制为特定的顺序或序列。此外,可在同一或实质上同一时间点执行所描述的方法示例或其元件中的一些。如在本文所描述的,可通过存储在多个应用的多个存储器(例如软件、固件和/或硬件等)中的非临时性机器可读指令的执行,来执行行动、功能、计算、数据操纵和/或存储等。因此,具有多个界面(例如GUI)的多个计算资源可用于处理特征标志之间的依赖性(例如通过经由GUI访问多个计算资源)。
[0013]本公开描述了利用处理资源来执行存储在非临时性介质上的指令、用于处理特征标志之间的依赖性的方法100。该方法可包括通过处理资源执行指令,定义在由处理资源可执行的过程中多个特征标志之间的依赖性,如在图1的框102中所示的。该过程可以例如是使用由处理器可执行来执行该过程的程序指令(例如代码)编码的软件应用。在各种示例中,编码的程序指令可存储在便携式介质(例如光盘、数字通用盘、闪存驱动器等)上和/或在服务器上(例如在存储器中),编码的程序指令可从服务器下载和安装。在一些示例中,编码的程序指令可被包括在安装在服务器上的一个或多个应用中。在一些示例中,一个或多个应用可存储在服务器的集成存储器(例如硬盘驱动器)中。
[0014]在各种示例中,这样编码的程序指令可在发布到消费者之前,在过程的创建和/或开发期间被下载(例如经由CD,如在本文所描述的)和/或集成(例如经由Cl,如在本文所描述的)。可替代地或此外,这样编码的程序指令可被下载和/或提供到消费者,用于更新个人计算设备(例如个人计算机、例如蜂窝电话、智能电话等的便携式电话、个人数字助理等)上可执行的过程。
[0015]在本公开的一些示例中,如在图1的框104中所示的,方法100可包括通过处理资源执行指令,在第一特征的激活期间通过确定将一特征标志利用为第二特征的切换的利用有效性来实施依赖性,如在本文所描述的。开发者例如可通过定义特征标志之间的依赖性,使得当特定的特征被激活或去激活时,那个特定的特征标志被依赖的依赖性以及那个特定的特征标志所依赖的其它特征标志的依赖性将被考虑,来减小引起过程故障的可能性。相应地,可根据在过程流方面的有效性(例如逻辑性)的确定,来使经由特征标志的这样的激活和/或去激活变得可允许或不可允许。
[0016]自动定义特征标志之间的依赖性(例如通过编程的标志定义功能,如在本文所描述的)可提高性能(例如速度、准确度等),因为例如特定特征的开发者可能不容易访问所定义的特征标志和/或他们的过程的相应依赖性,从而使决定应为特定特征的特征标志定义的依赖性变得很难。因此,本公开包括例如定义并该过程的代码的持续交付和/或连续集成中的任一个相关的依赖性。
[0017]相应地,本公开描述了确定第一特征标志与第二特征标志之间的依赖性,以减小第一特征的激活导致过程功能降低的概率。过程功能的降低(例如错误和/或在运行时性能的降级)可以例如是由于第二特征标志被第一特征标志依赖(例如尽管第一特征标志被激活,但第二特征标志不被激活)。由于第一特征标志依赖于第二特征标志(例如激活的第一特征标志被未被激活的第二特征标志依赖),因此第一特征的激活导致过程功能的降低的概率也可减小。
[0018]定义特征标志之间的依赖性可导致定义多个特征标志之间的循环依赖性。定义这样的循环依赖性可提示激活导致下列中的任一个的通知:移除引起循环依赖性的至少一个依赖性(例如改变过程流的结构)和/或将合并的特征
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1