一种基于抽象语法树的文件管理方法、装置及存储介质制造方法及图纸

技术编号:27125677 阅读:16 留言:0更新日期:2021-01-25 19:44
本申请公开了一种基于抽象语法树的文件管理方法、装置及存储介质,具体为:利用抽象语法树分析出项目文件之间的正向依赖关系,并为每一个项目文件建立正向依赖记录,所有正向依赖记录属性中的存储路径构成全局路径对象集合;遍历所有的正向依赖记录的属性,为每一个属性中的第二项目文件创建反向依赖记录;在对项目文件进行修改时,利用被修改项目文件的反向依赖记录的属性逆向搜索项目文件,根据搜索到的项目文件确定受影响的项目文件范围。应用本申请方案,由于针对每一个项目文件建立了反向依赖记录,在某个项目文件进行修改时,可以快速地确定出受影响范围,避免由于修改项目文件带来的错误或混乱,保证整个业务在线上的效率和质量。率和质量。率和质量。

【技术实现步骤摘要】
一种基于抽象语法树的文件管理方法、装置及存储介质


[0001]本申请涉及计算机
,尤其涉及一种基于抽象语法树的文件管理方法、一种基于抽象语法树的文件管理装置、一种计算机可读存储介质以及一种电子设备。

技术介绍

[0002]基于线上的某些业务在不断满足用户需求时,要不断进行更新和迭代。整个业务系统的项目文件非常庞大,相互之间存在密切的引用和被引用的依赖关系,在业务系统的更新和迭代的过程中,就需要对业务系统内的项目文件进行管理,以免由于更新和迭代造成错误或混乱。比如,为了修改业务系统前端某个线上的功能,技术人员对系统内某个或某些项目文件进行了修改。如果不准确地找出在系统中受影响范围的文件并进行功能测试,将可能造成系统的错误或混乱。为此,技术人员通常会人工对系统内项目文件的关系进行清理,并判断是否受修改文件的影响。在庞大的业务系统中找出受修改文件的影响范围的工作量十分繁重,这不但浪费大量的人力资源,还严重影响业务系统在线上的效率和质量。

技术实现思路

[0003]针对上述现有技术,本申请实施例公开一种基于抽象语法树的文件管理方法,可以避免大量的人力进行管理,保证业务系统在线上的效率和质量。
[0004]本申请实施例公开的一种基于抽象语法树的文件管理方法,具体为:
[0005]一种基于抽象语法树的文件管理方法,该方法包括:
[0006]利用抽象语法树分析出业务系统中项目文件之间的正向依赖关系,并为所述项目文件建立正向依赖记录以表示所述正向依赖关系;所述正向依赖关系表示从第一项目文件到第二项目文件的引用关系,所述第一项目文件引用所述第二项目文件,且所述第一项目文件的正向依赖记录的属性中包含第二项目文件的存储路径,所述业务系统中所述正向依赖记录属性中的存储路径构成全局路径对象集合;
[0007]遍历所述全局路径对象集合中所述正向依赖记录的属性中的存储路径,为属性中的存储路径对应的第二项目文件创建反向依赖记录,所述反向依赖记录表示所述项目文件之间的反向依赖关系,且将引用所述第二项目文件的所有第一项目文件的存储路径添加到所述第二项目文件的反向依赖记录的属性中;
[0008]在对项目文件进行修改时,利用被修改项目文件的反向依赖记录的属性逆向搜索项目文件,根据搜索到的项目文件确定受影响的项目文件范围,并将其同步给测试处理流程。
[0009]进一步地,
[0010]所述利用抽象语法树分析出业务系统中项目文件之间的正向依赖关系,并为所述项目文件建立正向依赖记录以表示所述正向依赖关系的步骤包括:
[0011]将所述业务系统的一个入口文件作为当前入口文件;
[0012]利用词法和语法分析方法为所述当前入口文件创建抽象语法树;
[0013]遍历所述当前入口文件的抽象语法树,在遍历的过程中为所述当前入口文件的抽象语法树中的项目文件建立正向依赖记录,将所述项目文件自身作为第一项目文件,将其引用的项目文件作为第二项目文件,且将所述第二项目文件的存储路径添加到所述第一项目文件的正向依赖记录的属性中,并同时保存到创建的所述全局路径对象集合中;
[0014]将所述业务系统的下一个入口文件作为当前入口文件,返回所述利用词法和语法分析方法为所述当前入口文件创建抽象语法树的步骤,直到处理完所述业务系统的入口文件。
[0015]进一步地,
[0016]所述为每一个项目文件建立正向依赖记录以表示所述正向依赖关系的步骤和所述遍历全局路径对象集合中所述正向依赖记录的属性的存储路径的步骤之间,该方法进一步包括:
[0017]遍历所述系统业务中所有项目文件的正向依赖记录的属性,将所述正向依赖记录中重复的属性进行合并处理。
[0018]进一步地,
[0019]在对项目文件进行修改时,所述利用被修改项目文件的反向依赖记录的属性逆向搜索项目文件的步骤包括:
[0020]将所述被修改项目文件作为当前第二项目文件;
[0021]根据所述当前第二项目文件确定对应的反向依赖记录,获得其属性中保存的第一项目文件的存储路径,以确定反向搜索到的当前第一项目文件;
[0022]将所述搜索到的当前第一项目文件作为第二项目文件,再返回执行所述根据当前第二项目文件确定对应的反向依赖记录的步骤,直到反向搜索到所述业务系统中的入口文件。
[0023]进一步地,
[0024]在将所述业务系统中的一个功能进行下线处理时,该方法进一步包括:
[0025]确定需要下线的功能所对应的入口文件,将其作为待下线入口文件;
[0026]从所述待下线入口文件开始,利用所述正依赖关系确定所述业务系统中所有需要被删除的项目文件,并在其所在的正向依赖记录的属性中进行标记;
[0027]删除所述业务系统中需要被删除的项目文件,并遍历所述项目文件的正向依赖记录的属性,将属性中需要删除的标记所对应的引用关系进行删除。
[0028]进一步地,
[0029]所述从待下线入口文件开始,利用所述正依赖关系确定所述业务系统中需要被删除的项目文件,并在所述正向依赖记录的属性中进行标记的步骤包括:
[0030]利用所述词法和语法分析方法为所述待下线入口文件创建抽象语法树;
[0031]遍历所述待下线入口文件的抽象语法树,在遍历的过程中为所述待下线入口文件的抽象语法树中的项目文件建立正向依赖记录,将所述项目文件自身作为第一项目文件,将其引用的项目文件作为第二项目文件,将所述第二项目文件的存储路径添加到所述第一项目文件的正向依赖记录的属性中,并同时保存到创建的局部路径对象集合中,且计算所述第一项目文件的被引用次数;
[0032]确定所述全局路径对象集合和所述局部路径对象集合中的相同存储路径对应的
项目文件;将所述相同项目文件中所述被引用次数相减,且将差值0作为所述需要删除的标记。
[0033]本申请实施例还公开一种基于抽象语法树的文件管理装置,可以避免大量的人力进行管理,并保证业务系统在线上的效率和质量。本申请实施例公开的一种基于抽象语法树的文件管理装置,具体为:
[0034]一种基于抽象语法树的文件管理装置,该装置包括:
[0035]正向依赖记录建立单元,用于利用抽象语法树分析出业务系统中项目文件之间的正向依赖关系,并为所述项目文件建立正向依赖记录以表示所述正向依赖关系;所述正向依赖关系表示从第一项目文件到第二项目文件的引用关系,所述第一项目文件引用所述第二项目文件,且所述第一项目文件的正向依赖记录的属性中包含第二项目文件的存储路径,所述业务系统中正向依赖记录属性中的存储路径构成全局路径对象集合;
[0036]反向依赖记录建立单元,用于遍历所述全局路径对象集合中所述正向依赖记录的属性中的存储路径,为属性中的存储路径对应的第二项目文件创建反向依赖记录,所述反向依赖记录表示所述项目文件之间的反向依赖关系,且将引用所述第二项目文件的所有第一项目文件的存储路径添加到所述第二项目文件的反向依赖记录的属性中本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于抽象语法树的文件管理方法,其特征在于,该方法包括:利用抽象语法树分析出业务系统中项目文件之间的正向依赖关系,并为所述项目文件建立正向依赖记录以表示所述正向依赖关系;所述正向依赖关系表示从第一项目文件到第二项目文件的引用关系,所述第一项目文件引用所述第二项目文件,且所述第一项目文件的正向依赖记录的属性中包含第二项目文件的存储路径,所述业务系统中所述正向依赖记录属性中的存储路径构成全局路径对象集合;遍历所述全局路径对象集合中所述正向依赖记录属性中的存储路径,为属性中的存储路径对应的第二项目文件创建反向依赖记录,所述反向依赖记录表示所述项目文件之间的反向依赖关系,且将引用所述第二项目文件的第一项目文件的存储路径添加到所述第二项目文件的反向依赖记录的属性中;在对项目文件进行修改时,利用被修改项目文件的反向依赖记录的属性逆向搜索项目文件,根据搜索到的项目文件确定受影响的项目文件范围,并将其同步给测试处理流程。2.根据权利要求1所述的方法,其特征在于,所述利用抽象语法树分析出业务系统中项目文件之间的正向依赖关系,并为所述项目文件建立正向依赖记录以表示所述正向依赖关系的步骤包括:将所述业务系统的一个入口文件作为当前入口文件;利用词法和语法分析方法为所述当前入口文件创建抽象语法树;遍历所述当前入口文件的抽象语法树,在遍历的过程中为所述当前入口文件的抽象语法树中的项目文件建立正向依赖记录,将所述项目文件自身作为第一项目文件,将其引用的项目文件作为第二项目文件,且将所述第二项目文件的存储路径添加到所述第一项目文件的正向依赖记录的属性中,并同时保存到创建的所述全局路径对象集合中;将所述业务系统的下一个入口文件作为当前入口文件,返回所述利用词法和语法分析方法为所述当前入口文件创建抽象语法树的步骤,直到处理完所述业务系统的入口文件。3.根据权利要求1所述的方法,其特征在于,所述为项目文件建立正向依赖记录以表示所述正向依赖关系的步骤和所述遍历全局路径对象集合中所述正向依赖记录属性的存储路径的步骤之间,该方法进一步包括:遍历所述系统业务中项目文件的正向依赖记录的属性,将所述正向依赖记录中重复的属性进行合并处理。4.根据权利要求1所述的方法,其特征在于,所述利用被修改项目文件的反向依赖记录的属性逆向搜索项目文件的步骤包括:在对项目文件进行修改时,将所述被修改项目文件作为当前第二项目文件;根据所述当前第二项目文件确定对应的反向依赖记录,获得其属性中保存的第一项目文件的存储路径,以确定反向搜索到的当前第一项目文件;将所述搜索到的当前第一项目文件作为第二项目文件,再返回执行所述根据当前第二项目文件确定对应的反向依赖记录的步骤,直到反向搜索到所述业务系统中的入口文件。5.根据权利要求1~4任一项所述的方法,其特征在于,在将所述业务系统中的一个功能进行下线处理时,该方法进一步包括:确定需要下线的功能所对应的入口文件,将其作为待下线入口文件;从所述待下线入口文件开始,利用所述正依赖关系确定所述业务系统中需要被删除的
项目文件,并在其所在的正向依赖记录的属性中进行标记;删除所述业务系统中需要被删除的项目文件,并遍历所述项目文件的正向依赖记录的属性,将属性中需要删除的标记所对应的引用关系进行删除。...

【专利技术属性】
技术研发人员:孟青春
申请(专利权)人:贝壳技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1