在Schema设计中,我们经常把一些公用的代码写入Base Action的hook,这样可以减少我们的工作量与Schema的复杂性。然而,ClearQuest关于Base Action的设计并不完善,BaseAction的hook只能先于顶层Action运行,而不能晚于顶层Action的hook运行,这种缺失导致有时候无法利用BaseAction的便利。下面结合具体的经历说一下这种缺失带来的不便。
我们的Schema中主Entity叫Issue,通过一种叫Change_Log的Entity来记录字段的改动,所有这些改动都记录在Issue的Reference List类型字段log中。Schema中的逻辑是这样,在Base Action的Validation hook中检测Issue字段的变动,并根据这些变动生成相应的Change_Log并添加到Issue的字段log。其他Action的Validation hook中也有逻辑代码,这些代码有时会导致Issue的提交失败。于是,问题就出来了,CQ中经常出现没有被关联到Issue上的Change_Log,即没有实际意义的log。这些log是这样产生的:首先,对Issue的修改通过了Base Action的验证并执行了生成Change_Log的代码,接着执行外层Action的Validation hook,如果外层hook验证失败且用户撤销了这次改动,那么对Issue字段的改动也会被撤销,先前生成的Change_Log也就失去了意义,但是这些无意义的log却遗留在了CQ中。
然而很多应用都依赖Issue的Change_Log,由于无意义log的存在,我们的脚本不得不从Issue来查询log,因为直接从Change_Log查询会不可避免的抓到脏数据(无意义的log)。但是从Issue查询log效率低下,尤其是哪些数据量庞大的CQ,与直接从Change_Log查询相比效率下降的非常明显,甚至不可接受。
意识到这种问题后我们开始设法避免这种无意义的log产生,提高CQ的效率。开始想到用Commit hook,然而Validation hook是最后一次修改Entity的机会,Commit hook不允许再修改Entity,而我们的Change_Log还必须关联到Issue上,所以用Base Action的Commit hook无法解决这个问题。后来将记录log的代码从Base Action移到外层Action的Validation hook中,即每一个外层Action的Validation hook中都把记录log的代码重写一遍,才避免了无意义的log的产生。
如果ClearQuest有在外层Action执行完之后才执行的Base Action,那么像无意义log这种问题就很容易解决了。遗憾的是ClearQuest没有提供这样的功能,我们不得不曲线处理。
分享到:
相关推荐
Rational ClearQuest 是IBM公司开发的一款强大的缺陷跟踪和变更管理工具,尤其适用于IT行业的项目管理。它提供了一个可定制的平台,能够适应不同团队的需求,不仅可以用于缺陷管理,还可以扩展到变更请求、任务分配...
Rational ClearQuest 的强大之处在于它的灵活性和全面性,不仅简化了缺陷管理,还提供了丰富的自定义选项和工作流支持,使得整个软件开发过程更加有序和高效。不过,为了充分利用其全部功能,使用者需要理解并适应其...
IBM Rational ClearQuest 8 安装详细笔记 IBM Rational ClearQuest 是一款功能强大且强大的项目跟踪和问题跟踪工具,由 IBM 开发,旨在帮助软件开发团队和项目经理更好地管理项目和跟踪问题。下面是 IBM Rational ...
Rational ClearQuest是一款由IBM开发的项目管理和缺陷跟踪工具,广泛应用于软件开发过程中的需求管理、变更控制、问题追踪及配置管理。其核心功能在于能够全面跟踪缺陷或任务从提出、分配、处理直至关闭的整个生命...
- **定义与特性**:ClearQuest是由Rational Software开发的一款缺陷跟踪工具,具备高度的可配置性,能够适应不同项目的特定需求。该工具的核心价值在于其强大的跟踪管理能力,能够完整记录缺陷的生命周期,从提交至...
ClearQuest是一款强大的问题跟踪系统,广泛应用于软件开发项目中,用于管理缺陷、需求变更、任务分配等。为了确保ClearQuest能够顺利运行,正确的配置步骤至关重要。本文将详细介绍ClearQuest的配置流程。 #### 二...
它允许团队成员记录、追踪和处理项目中的问题、缺陷和变更请求。ClearQuest与ClearCase集成后,可以实现从问题报告到代码修改的完整流程管理。 当一个开发人员在ClearQuest中创建一个问题或变更请求时,这个请求会...
本资料主要涉及的是将RequisitePro(一款需求管理工具)与ClearQuest(一个缺陷跟踪和变更管理工具)进行集成,以实现更高效的需求工程流程。这两款工具的结合使用,能够帮助软件开发团队更好地管理需求、跟踪变更,...
Rational ClearCase主要用于源代码版本控制和配置管理,而Rational ClearQuest专注于变更请求和缺陷跟踪。通过集成这两款工具,开发团队能够在一个统一的环境中管理软件开发过程,确保变更的跟踪、审批和实施都与...
接下来,ClearQuest是IBM提供的一个缺陷和变更管理工具。它帮助团队记录、跟踪和管理软件开发过程中的问题、建议和任务。ClearQuest的核心特性包括自定义工作流程、丰富的报告功能以及与其他工具(如ClearCase)的...
搭建IBM ClearQuest测试环境是软件测试过程中的重要环节,它为测试团队提供了一个管理缺陷、跟踪测试进度和协作的工作平台。下面将详细讲解如何一步一步地建立这个环境。 首先,我们需要在SQL服务器上创建数据库。...
ClearQuest是一款强大的缺陷跟踪和软件变更管理系统,被广泛应用于IT行业中。本指南将详细介绍ClearQuest的操作界面以及BUG处理流程,并提供BUG查询和统计的方法。 一、操作界面 ClearQuest的操作界面设计简洁而...
例如,当开发人员在ClearQuest中创建一个缺陷报告,该报告可以触发ClearCase中的代码修改,同时更新对应的版本信息。 总结来说,《ClearQuest与ClearCase安装使用手册》是学习和使用这两款工具的宝贵资源,它涵盖了...
很多大公司现在都用ClearQuest,ClearCase管理代码版本和BUG。资源是公司内部关于ClearQuest,ClearCase的操作使用指南,对使用ClearQuest,ClearCase有很好的指导意义