一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种自动监控项目组件的方法及装置与流程

2021-11-30 21:54:00 来源:中国专利 TAG:


1.本发明涉及软件开发领域,特别涉及一种自动监控项目组件的方法及装置。


背景技术:

2.目前,软件项目通常会使用组件进行项目的研发,组件可以分为自研组件和三方组件。这里的自研组件是指由公司内部研发的组件,既不是本公司研发,也不属于移动操作系统官方提供的组件,称为三方组件,比如一些开源项目和付费sdk。
3.软件项目根据自身的规模,可能需要用到几十,上百,甚至更多的组件。软件项目也需要由十几、几十个、甚至更多的工程师开发和维护。随着项目规模的扩大,组件数量也会持续膨胀,加之开发人员的流动,组件使用规范与组件维护工作将受到挑战,其中组件使用规范一般是公司内部制定的,指导和约束组件开发行为的文档。
4.现有解决方案是人工提醒开发者检查新增的组件是否符合组件规范。人工记录组件的相关配置,或在出现问题时,通过版本控制工具gitlab的提交历史记录人工查找配置文件差异。
5.但这种人工提醒开发者检查新增的组件是否符合组件规范的方案会额外花费精力,并且无法及时和准确的提醒,因为不知道是谁、在什么时候、添加了哪个组件。人工记录组件配置也会耗费大量时间和精力,如果不做记录,则出现问题时只能查找gitlab的提交记录,这将更加耗费时间,而且容易遗漏。
6.因此,需要对软件项目的组件的增减、变化实现自动监控,具体地,需要一种自动监控项目组件的方法及装置,从而避免上述问题。
7.需要说明的是,以上背景技术部分所公开的信息仅用于增强对本发明背景的理解,因此其可能包含不构成对本领域技术人员已知的现有技术的信息。


技术实现要素:

8.为了解决现有技术中存在的问题,本发明提供一种自动监控项目组件的方法及装置,通过自动监控组件变化的方式,提醒相关项目研发人员遵守组件规范,并自动记录变化内容,从而克服现有技术中存在的问题。
9.本发明提供一种自动监控项目组件的方法,包括以下步骤:识别feature分支被构建完成;获取所述feature分支的组件信息以及所述feature分支所对应的项目的当前基准组件信息;将所述feature分支的组件信息与所述当前基准组件信息进行比较,得到组件更新结果;以及记录所述组件更新结果。
10.根据本发明一实施例,获取所述当前基准组件信息包括:识别所述feature分支所对应的项目的master分支被构建完成;获取所述master分支的组件信息;以及将所述master分支的组件信息作为所述当前基准组件信息。
11.根据本发明一实施例,将所述master分支的组件信息作为所述当前基准组件信息包括:获取所述feature分支所对应的项目的历史基准组件信息;以及将所述历史基准组件
信息更新为所述master分支的组件信息,得到所述当前基准组件信息。
12.根据本发明一实施例,所述基准组件信息包括第一组件集和第一配置文件;所述feature分支组件信息包括第二组件集和第二配置文件,所述方法还包括:判断所述第一组件集与所述第二组件集是否相同:如果所述第一组件集与所述第二组件集不同,则判断所述第一组件集相对于所述第二组件集是否有新增组件,如果所述第一组件集相对于所述第二组件集有新增组件,则发送监控通知;否则不发送监控通知。
13.根据本发明一实施例,所述方法还包括:比较并记录所述第一配置文件与所述第二配置文件之间的区别。
14.根据本发明一实施例,所述识别feature分支被构建完成包括识别feature分支的提测行为。
15.根据本发明的另一方面,还提供一种自动监控项目组件的装置,包括:识别模块,其被配置为:识别feature分支被构建完成;获取模块,其被配置为:获取所述feature分支的组件信息以及所述feature分支所对应的项目的当前基准组件信息;比较模块,其被配置为:将所述feature分支的组件信息与所述当前基准组件信息进行比较,得到组件更新结果;以及记录模块,其被配置为:记录所述组件更新结果。
16.根据本发明一实施例,所述获取模块还包括:master分支识别子模块,其被配置为:识别所述feature分支所对应的项目的master分支被构建完成;master分支获取子模块,其被配置为:获取所述master分支的组件信息;以及master分支更新子模块,其被配置为:将所述master分支的组件信息作为所述当前基准组件信息。
17.根据本发明的另一方面,还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述的自动监控项目组件的方法的步骤。
18.根据本发明的另一方面,还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的自动监控项目组件的方法的步骤。
19.根据本发明的另一方面,还提供一种计算机程序产品,包括计算机指令,该计算机指令被处理器执行时实现如上所述的自动监控项目组件的方法的步骤。
20.本发明所提供的自动监控项目组件的方法及装置能够自动监控项目研发过程中对组件的添加和移除,保存这些组件的变动记录,并自动通知开发者遵守组件规范,增强开发者质量意识,提高组件质量;保存添加和移除前后的配置文件,提升回溯和解决问题的人效。
附图说明
21.以下将详细参考附图示出的特定示例性实施例,对本发明的上述和其他特征进行说明,所述示例性实施例在下文中仅以说明的方式给出,因此并不限制本发明,其中:
22.图1示出根据本发明一实施例的自动监控项目组件的方法的流程示意图。
23.图2示出根据本发明一实施例的图1的步骤s1200的处理流程图。
24.图3示出根据本发明一实施例的自动监控项目组件的方法的流程示意图。
25.图4示出根据本发明一实施例的自动监控项目组件的装置的结构示意图。
26.图5示出根据本发明一实施例的图4的获取模块120的结构示意图。
具体实施方式
27.以下通过具体实施例对本发明进行详细描述,以使本领域普通技术人员能够容易地根据本说明书公开的内容实施本发明。以下所描述的实施例仅是本发明的一部分实施例,而非全部。基于本说明书所描述的实施例,本领域普通技术人员在不付出创造性劳动的前提下所获得的所有其它实施例,都属于本发明保护的范围。需要说明的是,在不发生冲突的情况下,本说明书中的实施例及实施例中的特征可以相互组合。
28.图1示出本发明一个实施方式的自动监控项目组件的方法流程示意图,如图1所示,所述自动监控项目组件的方法1000,包括以下步骤:
29.步骤s1100:识别feature分支被构建完成;
30.步骤s1200:获取所述feature分支的组件信息以及所述feature分支所对应的项目的当前基准组件信息;
31.步骤s1300:将所述feature分支的组件信息与所述当前基准组件信息进行比较,得到组件更新结果;
32.步骤s1400:记录所述组件更新结果。
33.需要说明的是,本发明所述的项目可以是移动开发项目,例如app的开发,也可以是web端或其他类型的软件开发项目,本发明对此不做限定。以app为例,随着其功能越来越多,组件数量也会持续膨胀,加之开发人员的流动,组件使用规范与组件维护工作将受到挑战。比如,一些质量意识薄弱的工程师使用组件的方式不正确,或者他要使用的组件不符合组件规范的规定,这将给开发的app埋下质量隐患。又比如,引入新组件时需要修改一些配置文件,这些配置文件的修改并没有专门的历史记录,后续发现问题很难追根溯源。
34.如本领域技术人员所知晓,本发明所述的组件可以是按照功能或业务划分的代码单元,例如一个app可以由若干个组件组成。比如开发一个购物车功能,可以创建一个购物车组件,把与其相关的代码都放到这个组件中,当开发到下单支付功能时,再创建一个支付组件,将支付相关的代码放到支付组件中。这样做的好处是,代码结构清晰,耦合度低,便于拆卸和复用。
35.具体地,方法1000在步骤s1100识别feature分支被构建完成。在本发明一优选实施例中,所述识别feature分支被构建完成包括识别feature分支的提测行为。具体来说,当feature分支被构建完成时,工程师可以对该新构建的feature分支提出测试请求,从而对该新构建的feature分支进行测试。步骤s1100可以通过本领域技术人员所知晓的方式或设备来对该提测动作进行识别。
36.如本领域技术人员所知晓,这里的分支可以是开发过程中为了区分不同开发阶段,和其他人的代码彼此隔离,方便代码版本控制而使用的概念,每开发一个独立的功能需要建立一个分支,称为feature分支,然后会在feature分支开发和测试。直到测试通过后,会将feature分支的代码合并到master分支(主分支),并使用此分支发布新版本。
37.方法1000随后在步骤s1200获取所述feature分支的组件信息以及所述feature分支所对应的项目的当前基准组件信息。具体地,所述组件信息可以是一次app构建过程中需要使用的所有组件的集合。
38.参考图2,其示出了图1所示方法的步骤s1200中获取当前基准组件信息的一优选实施例。步骤s1200包括在s1210处识别所述feature分支所对应的项目的master分支被构
建完成;在s1220处获取所述master分支的组件信息;以及在s1230处将所述master分支的组件信息作为所述当前基准组件信息。具体地,当master分支被构建完成时,工程师同样可以通过某动作来表示,本发明可以通过本领域所知晓的方法或设备来识别该动作,从而识别到master分支被构建完成。在一更加优选的实施例中,将所述master分支的组件信息作为所述当前基准组件信息包括:获取所述feature分支所对应的项目的历史基准组件信息;以及将所述历史基准组件信息更新为所述master分支的组件信息,得到所述当前基准组件信息。在该实施例中,基准组件信息的作用可以是提供对比基准,如果组件比基准多,则可以判断是新增的组件,如果比基准少,则可以判断减少了组件。因为master分支是用于发版的稳定代码,在每次master分支构建成功时,可视为当前版本不会再有新增或减少的组件,所以在这个时间更新基础组件集,供下个版本的feature分支获取对应的项目的当前基准组件信息,用于做对比。
39.回到图1,方法1000在步骤s1300将所述feature分支的组件信息与所述当前基准组件信息进行比较,得到组件更新结果。在本发明一优选实施例中,所述基准组件信息包括第一组件集和第一配置文件;所述feature分支组件信息包括第二组件集和第二配置文件,所述方法还包括:判断所述第一组件集与所述第二组件集是否相同:如果所述第一组件集与所述第二组件集不同,则判断所述第一组件集相对于所述第二组件集是否有新增组件,如果所述第一组件集相对于所述第二组件集有新增组件,则发送监控通知;否则不发送监控通知。如本领域技术人员所知晓,本文提到的配置文件可以指使用一个组件前需要添加的一些特殊代码的文件,涉及到的配置文件包括但不限于混淆配置、资源混淆白名单配置、申请权限配置、注册组件配置、引用组件地址等等,这些配置文件是程序能正确构建的基础。
40.值得注意的是,在上述比较过程中,无论比较结果如何,都可以将比较结果记录下来,尤其地,当第一组件集相对于第二组件集有新增组件时,即表示feature分支相对于master分支增加了某组件,由于增加组件需要工程师遵守例如组件规范,因此在此情况下,可以自动向工程师发送监控通知,提醒其注意遵守相关规范。
41.在本发明一个或多个实施例中,记录的组件更新结果或组件的变化情况可以包括:主项目的配置文件、组件名、操作人、操作时间、分支名、组件。如本领域技术人员所知晓,所述主项目可以是程序的入口组件,其中包含一些有别于普通组件的整个app全局的配置。
42.方法1000在步骤s1400处记录所述组件更新结果。其中,可以记录第一组件集与第二组件集之间的区别,即增加或减少了哪些组件,还可以记录第一配置文件与第二配置文件之间的区别,以便更加详细地了解组件变化的内容。
43.下面将参考图3对本发明的自动监控项目组件的方法进行进一步的描述:图3可包含用虚线框划分的三个部分,即最上端的发版管理系统、中间的打包机

组件监控任务以及最下端的组件监控服务器。
44.具体地,由发版管理系统在master分支构建成功后,触发打包机上的组件监控任务,获取master分支的基准组件集和基准组件配置文件。即当识别到master分支构建成功后,调用组件监控任务,此次调用的目的是更新基准组件集和基准组件配置文件。然后根据appid(为不同app分配的唯一标识)和分支名执行组件监控任务,通过常规方式获取到当前
分支构建过程中使用到的所有组件,并将组件集合发送到组件监控服务端。
45.同时,所述发版管理系统在feature分支提测时,触发打包机上的组件监控任务,根据appid及当前分支名,获取feature分支构建过程中使用到的所有组件,由所述所有组件构成feature分支的组件集合,将所述feature分支的组件集合发送到组件监控服务端。所述组件监控服务端用于保存基准组件集和基准组件配置文件,对比基准组件集与feature分支的组件集合的差异、对比基准组件配置文件与feature分支的配置文件的差异;保存组件增加记录、发送新增组件通知。
46.接着,判断当前分支是否为feature分支,如果否,则判断是否为master分支,如果是,则基于所述当前分支的组件集合更新所述基准组件集和基准组件配置文件,即覆盖掉之前的基准组件集并保存到组件监控服务端的数据库中;若当前分支为feature分支,则比较所述基准组件集与所述feature分支的组件集合,得到比较结果。
47.在比较结果为存在差异时,记录新增或减少的组件数据信息,所述组件数据信息包括组件名、操作人、操作时间、分支名、组件和主项目的配置文件。所述配置文件中包括组件集的变化,例如组件的增、改、减等变化,也包括配置文件的变化信息,例如记录组件增减信息等。
48.其中组件名、操作人、操作时间、分支名用于记录组件的增减历史,给相关操作人发送组件监控通知;配置文件用于在项目迭代和维护过程中,能找到添加或移除组件引起的配置变化,回溯和解决问题,通过从gitlab下载的方式获取所述配置文件。
49.若所述比较结果为新增组件,通知新增组件的操作者遵守组件规范。
50.进一步地,可以将上文所述的比较结果通过组件监控前端展示给所需人员。例如采用浏览器操作的用户界面,它的作用是方便用户查看组件增减历史和查询组件增减前后的配置文件差异。
51.通过本发明所述的自动监控项目组件的方法,能够自动监控app开发过程中对组件的添加和移除,保存添加和移除前后的配置文件,自动记录时间、分支、操作人员、组件变化前后的配置文件等,在后续迭代和维护过程中,降低人工消耗和解决问题时长,避免在解决问题过程中遗漏关键信息,开发者可以在组件监控前端页面轻松找到这些配置文件,并比较添加和移除的前后差异,提升回溯和解决问题的人效。
52.基于同样的发明构思,图4示出了根据本发明一实施例的自动监控项目组件的装置的结构示意图,该装置100包括:识别模块110,其被配置为:识别feature分支被构建完成,在本发明的实施例中,该识别模块110可以配置为执行图1中s1100所示以及在本说明书中与图1中s1100相对应的步骤;获取模块120,其被配置为:获取所述feature分支的组件信息以及所述feature分支所对应的项目的当前基准组件信息,在本发明的实施例中,该获取模块120可以配置为执行图1中s1200、图2中s1210~s1230所示以及在本说明书中与图1中s1200、图2中s1210~s1230相对应的步骤;比较模块130,其被配置为:将所述feature分支的组件信息与所述当前基准组件信息进行比较,得到组件更新结果,在本发明的实施例中,该比较模块130可以配置为执行图1中s1300所示以及在本说明书中与图1中s1300相对应的步骤;以及记录模块140,其被配置为:记录所述组件更新结果,在本发明的实施例中,该记录模块140可以配置为执行图1中s1400所示以及在本说明书中与图1中s1400相对应的步骤。
53.图5示出了图1中获取模块120的结构示意图,该获取模块120可以包括:master分支识别子模块122,其被配置为:识别所述feature分支所对应的项目的master分支被构建完成,在本发明的实施例中,该master分支识别子模块122可以配置为执行图2中s1210所示以及在本说明书中与图1中s1210相对应的步骤;master分支获取子模块124,其被配置为:获取所述master分支的组件信息,在本发明的实施例中,该master分支获取子模块124可以配置为执行图2中s1220所示以及在本说明书中与图2中s1220相对应的步骤;以及master分支更新子模块126,其被配置为:将所述master分支的组件信息作为所述当前基准组件信息,在本发明的实施例中,该master分支更新子模块126可以配置为执行图2中s1230所示以及在本说明书中与图2中s1230相对应的步骤。
54.可以理解,图4~5所示的结构仅为示意,所述装置还可包括比图4~5中所示更多或者更少的模块或组件,或者具有与图4~5所示不同的配置。
55.此外,本技术还提供了一种计算机设备,根据本发明一实施例,该计算机设备可以包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,当所述处理器执行所述程序时,可以实现本说明书所述的自动监控项目组件的方法的步骤。
56.此外,本技术还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的装置中所包含的;也可以是单独存在,而未装配入该装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该装置可以执行本说明书所述的自动监控项目组件的方法的步骤。
57.此外,本技术还提供了一种计算机程序产品,包括计算机指令,该计算机指令被处理器执行时可以实现本说明书所述的自动监控项目组件的方法的步骤。
58.特别地,以上参考附图中的流程图描述的实施例过程可以被实现为计算机软件程序。例如,本技术说明书公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行附图中各流程图所示的方法的程序代码,通过处理器执行该计算机程序,来执行本技术的方法。
59.需要说明的是,本技术所描述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom)、闪存、便携式紧凑磁盘只读存储器(cd

rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
60.在本技术中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本技术中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等,或者上述的任意合适的组合。
61.可以以一种或多种程序设计语言或其组合来编写用于执行本技术的操作的计算
机程序代码,上述程序设计语言包括面向对象的程序设计语言,诸如java、smalltalk、c ,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(lan)或广域网(wan)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
62.附图中的流程图和框图,示例性示出了按照本技术各实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。应当注意,在有些可作为替换的实施方式中,方框中所标注的功能也可以以不同于附图中所示的顺序发生。例如,两个依次表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。还要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
63.本技术实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。上述单元或模块也可以设置在处理器中,例如,可以描述为:一种处理器,其包括识别模块、获取模块、比较模块、记录模块等。这些单元或模块的名称在某些情况下并不构成对该单元或模块本身的限定。
64.在本说明书中提及的所有文献都在本技术中引用作为参考,就如同每一篇文献被完整引用至本说明书作为参考。
65.此外应理解,在阅读了本发明的上述说明内容之后,本领域技术人员可以对本发明做出各种改动或修改,这些等同形式同样落入本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献