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

一种代码模板管理方法及系统与流程

2022-04-30 09:34:43 来源:中国专利 TAG:


1.本发明涉及代码升级技术领域,特别是涉及一种代码模板管理方法及系统。


背景技术:

2.国铁集团(中国国家铁路集团有限公司)信息系统研发体系主要包括两个层级:国铁集团本级和铁路局级。国铁集团本级研发机构主要包括铁科院和国铁集团信息中心,主要承担国铁集团统建信息系统开发工作。铁路局级研发机构主要是各铁路局信息技术所和附属软件企业,主要承担各铁路局级和站段级信息系统研发。两级研发体系之间也经常相互配合,共同参与项目研发。因此,为了提升信息系统研发的规范化,需要在两级研发体系之间共享代码模板,作为项目开发的初始代码。通过统一代码模板,可以对代码文件夹结构,变量命名、依赖引用、安全漏洞进行集中统一化,能够提升代码的合规性和安全性。
3.目前,由于缺乏这样的机制,无论国铁集团本级还是铁路局级研发机构,在各自组织内部管理代码模板,甚至组织内部的不同团队也采用不同的模板,导致技术升级困难,安全隐患较多等问题。


技术实现要素:

4.本发明的目的是提供一种代码模板管理方法及系统,提高了代码模板的统一性和规范性。
5.为实现上述目的,本发明提供了如下方案:
6.一种代码模板管理方法,包括:
7.在第一级信息系统部署主引擎和主git代码仓库;
8.在多个第二级信息系统分别部署分引擎和分git代码仓库;
9.根据设定开发技术确定初始代码模板;
10.将所述初始代码模板存储到所述主git代码仓库并将所述初始代码模板的id存储到代码模板列表中;所述代码模板列表用于存储各版本的代码模板;
11.通过所述主引擎将所述初始代码模板发布消息发送到各所述分引擎;
12.各所述分引擎根据接收的所述发布消息从所述主git代码仓库获取所述初始代码模板,并将获取的所述初始代码模板保存到对应分git代码仓库中。
13.可选地,所述发布消息中包括所述初始代码模板的id。
14.可选地,一种代码模板管理方法还包括:
15.通过所述主引擎更新第i版代码模板,获得更新后的第i版代码模板;
16.将更新后的第i版代码模板存储到所述主git代码仓库并将更新后的第i版代码模板的id存储到代码模板列表中;
17.通过所述主引擎将代码模板更新消息发送到各所述分引擎;
18.各所述分引擎根据接收的所述代码模板更新消息从所述主git代码仓库获取更新后的第i版代码模板,并将获取的更新后的第i版代码模板保存到对应分git代码仓库中。
19.可选地,一种代码模板管理方法还包括:
20.当用户从所述主git代码仓库或各所述分git代码仓库获取第i版代码模板时,记录第i版代码模板的使用次数;
21.在所述主引擎和各所述分引擎,根据各代码模板的使用次数从大到小的顺序推荐各代码模板。
22.可选地,所述设定开发技术包括vue、angular和springboot。
23.本发明还公开了一种代码模板管理系统,包括:
24.主引擎和主git代码仓库部署模块,用于在第一级信息系统部署主引擎和主git代码仓库;
25.分引擎和分git代码仓库部署模块,用于在多个第二级信息系统分别部署分引擎和分git代码仓库;
26.初始代码模板确定模块,用于根据设定开发技术确定初始代码模板;
27.初始代码模板存储模块,用于将所述初始代码模板存储到所述主git代码仓库并将所述初始代码模板的id存储到代码模板列表中;所述代码模板列表用于存储各版本的代码模板;
28.初始代码模板发布模块,用于通过所述主引擎将所述初始代码模板发布消息发送到各所述分引擎;
29.初始代码模板分发模块,用于各所述分引擎根据接收的所述发布消息从所述主git代码仓库获取所述初始代码模板,并将获取的所述初始代码模板保存到对应分git代码仓库中。
30.可选地,所述发布消息中包括所述初始代码模板的id。
31.可选地,一种代码模板管理系统,还包括:
32.代码模板更新模块,用于通过所述主引擎更新第i版代码模板,获得更新后的第i版代码模板;
33.更新后的代码模板存储模块,用于将更新后的第i版代码模板存储到所述主git代码仓库并将更新后的第i版代码模板的id存储到代码模板列表中;
34.更新消息发送模块,用于通过所述主引擎将代码模板更新消息发送到各所述分引擎;
35.更新后的代码模板分发模块,用于各所述分引擎根据接收的所述代码模板更新消息从所述主git代码仓库获取更新后的第i版代码模板,并将获取的更新后的第i版代码模板保存到对应分git代码仓库中。
36.可选地,一种代码模板管理系统,还包括:
37.代码模板使用次数记录模块,用于当用户从所述主git代码仓库或各所述分git代码仓库获取第i版代码模板时,记录第i版代码模板的使用次数;
38.代码模板推荐模块,用于在所述主引擎和各所述分引擎,根据各代码模板的使用次数从大到小的顺序推荐各代码模板。
39.可选地,所述设定开发技术包括vue、angular和springboot。
40.根据本发明提供的具体实施例,本发明公开了以下技术效果:
41.本发明通过在第一级信息系统部署主引擎和主git代码仓库,在多个第二级信息
系统分别部署分引擎和分git代码仓库,实现代码模板的统一发布和更新,保证了代码模板源头的统一,提高了代码模板的统一性和规范性。
附图说明
42.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
43.图1为本发明一种代码模板管理方法流程示意图;
44.图2为本发明第一级信息系统和第二级信息系统之间的结构示意图;
45.图3为本发明一种代码模板管理系统结构示意图。
具体实施方式
46.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
47.本发明的目的是提供一种代码模板管理方法及系统,提高了代码模板的统一性和规范性。
48.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
49.图1为本发明一种代码模板管理方法流程示意图,如图1所示,一种代码模板管理方法,包括:
50.步骤101:在第一级信息系统部署主引擎和主git代码仓库。
51.步骤102:在多个第二级信息系统分别部署分引擎和分git代码仓库。
52.各所述第二级信息系统为第一级信息系统的下级系统。
53.步骤103:根据设定开发技术确定初始代码模板。
54.初始代码模板作为设定开发技术的第1版代码模板。对第1版代码模板进行第一次修改后的代码模板为第2版代码模板。每个版本的代码模板均具有唯一的id。
55.设定开发技术包括vue、angular和springboot。
56.步骤104:将初始代码模板存储到主git代码仓库并将初始代码模板的id存储到代码模板列表中;代码模板列表用于存储各版本的代码模板。
57.步骤105:通过主引擎将初始代码模板发布消息发送到各分引擎。
58.步骤106:各分引擎根据接收的发布消息从主git代码仓库获取初始代码模板,并将获取的初始代码模板保存到对应分git代码仓库中。
59.发布消息中包括初始代码模板的id。
60.一种代码模板管理方法还包括:
61.通过主引擎更新第i版代码模板,获得更新后的第i版代码模板。
62.将更新后的第i版代码模板存储到主git代码仓库并将更新后的第i版代码模板的
id存储到代码模板列表中。
63.通过主引擎将代码模板更新消息发送到各分引擎。
64.各分引擎根据接收的代码模板更新消息从主git代码仓库获取更新后的第i版代码模板,并将获取的更新后的第i版代码模板保存到对应分git代码仓库中。
65.一种代码模板管理方法还包括:
66.当用户从主git代码仓库或各分git代码仓库获取第i版代码模板时,记录第i版代码模板的使用次数。
67.在主引擎和各分引擎,根据各代码模板的使用次数从大到小的顺序推荐各代码模板。
68.一种代码模板管理方法还包括:
69.通过分引擎修订第i版代码模板,获得待修改的第i版代码模板。
70.通过分引擎将待修改的第i版代码模板提交到主git代码仓库的一个设定分支中,并通过分引擎向主引擎发送修订消息。
71.通过主引擎对设定分支中待修改的第i版代码模板进行评审。
72.若通过评审,则将通过评审的待修改的第i版代码模板作为更新后的第i版代码模板,并将更新后的第i版代码模板的id存储到代码模板列表中。
73.通过主引擎将更新后的第i版代码模板修订消息发送到各分引擎。
74.各分引擎根据接收的修订消息从主git代码仓库获取更新后的第i版代码模板,并将获取的更新后的第i版代码模板保存到对应分git代码仓库中。
75.若没有通过评审,删除设定分支。
76.下面以具体实施例说明本发明一种代码模板管理方法。
77.step1、在国铁集团信息系统本级研发机构(第一级信息系统),如铁科院、国铁集团信息中心等,部署代码模板管理的主引擎和主git代码仓库;在各铁路局一级信息系统研发机构(第二级信息系统),如铁路局信息技术所,部署代码模板管理分引擎和分git代码仓库,如图2所示。
78.step2、在主引擎中配置各分引擎的地址信息;在各分引擎中配置主引擎地址和主git代码仓库地址和账户。
79.step3、在两级体系场景下,代码模板的管理通过如下方式实现:
80.代码模板生成:代码模板规定了某一种开发技术(如前端vue、前端angular、后端springboot)对应的代码基本框架,包括依赖使用、代码目录文件夹结构等。
81.国铁集团本级研发机构的技术专家评估确定最初代码模板,每套模板有唯一id。
82.代码模板发布:将确定的代码模板提交至主git代码仓库并记录代码仓库地址,并将代码仓库地址以及关于代码模板的描述信息作为配置参数添加到主引擎。
83.代码模板的描述信息包括代码模板的开发语言类型、技术特点、提交人和提交时间。
84.主引擎将已经添加配置的代码模板通过代码模板列表对外展示和发布。
85.主git代码仓库中的代码模板作为国铁集团级研发机构的代码模板依据。
86.代码模板分发:主引擎通过消息队列将代码模板变动信息发送至各分引擎;
87.分引擎接收到消息后,根据消息中包含的代码模板配置信息(地址、属性等),从主
git代码仓库中pull(拉取)代码模板至本级,然后将拉取的代码模板通过push(推送)命令推送至对应的分git仓库,作为本级研发人员开发所使用的代码模板依据。拉取到本级的代码模板保持id不变。
88.代码模板使用:研发人员(国铁集团级或各铁路局级)分别获取主引擎和分引擎发布的代码模板,选择某一模板后可通过引擎使用cookiecutter技术生成项目代码,项目代码同样保存在git代码仓库中。与此同时,引擎对本代码模板的使用计数加一;对于分引擎中代码模板的使用次数变更,分引擎会模板id和新增次数通过消息队列通知主引擎,主引擎更新对应id的代码模板的全局使用次数。
89.代码模板更新:更新发起方是国铁集团本级研发机构,接收方是各铁路局研发机构。国铁集团级代码模板因为需求变化或技术升级而对代码模板进行更新,需要在主git代码仓库中更新对应的代码模板内容,并在主引擎中注册新版本的代码模板并生成新的模板id,并由主引擎通知各分引擎同步变化。
90.代码模板修订:修订的发起方是各铁路局研发机构,接收方是国铁集团本级研发机构。各铁路局研发机构在日常开发工作中,从自身角度需要对代码模板做出修改,并且修改后的模板具有一定的通用性和推广价值,同样适用于国铁集团级研发机构和其他铁路局研发机构。分引擎为主git代码仓库中待修改的代码模板创建一个git分支,将修改后的代码模板提交至该分支,并通过消息队列通知主引擎本次修订。
91.代码模板评审:对于铁路局级研发机构提出的代码模板修订方案,作为原有代码模板的分支保存在主git代码仓库中。国铁集团级研发机构需针对该分支中的代码模板进行技术评审以确认是否具备通用和推广价值;对于具备价值的代码模板修订,将合并修订分支和主分支形成新版本代码模板,然后执行“代码模板分发”;对于有问题的分支提交,将删除该分支并通知对应铁路局研发机构;对于没有技术问题,但尚不具有推广价值的代码模板分支,暂时维持该分支的存在。
92.代码模板推荐:无论对于主引擎还是分引擎,对代码模板的排列顺序按照各自全局被使用次数由高到低排序。
93.本发明一种代码模板管理方法达到的技术效果如下:
94.1、代码模板统一规范
95.两级研发机构分别部署代码模板管理主引擎和分引擎并通过消息队列传递消息。主引擎负责代码模板的统一生成分发至各分引擎,保证了代码模板源头的统一,规范了两级研发机构的代码模板。
96.2、代码模板的可动态更新
97.由于代码模板不是一成不变的,各级研发机构对技术更新的需求不完全同步,因此通过本方案的代码更新(主引擎发起,分引擎接收)和代码修订(分引擎发起,主引擎接收)机制,实现了代码模板的动态更新。并通过评审等手段实现了代码模板的确认和推广发布。
98.3、代码模板的推荐机制
99.通过记录两级引擎所管理的代码模板的使用次数,在代码模板列表发布时,以使用次数为依据进行推荐。
100.图3为本发明一种代码模板管理系统结构示意图,如图3所示,本发明还公开了一
种代码模板管理系统,包括:
101.主引擎和主git代码仓库部署模块201,用于在第一级信息系统部署主引擎和主git代码仓库。
102.分引擎和分git代码仓库部署模块202,用于在多个第二级信息系统分别部署分引擎和分git代码仓库。
103.初始代码模板确定模块203,用于根据设定开发技术确定初始代码模板。
104.初始代码模板存储模块204,用于将初始代码模板存储到主git代码仓库并将初始代码模板的id存储到代码模板列表中;代码模板列表用于存储各版本的代码模板。
105.初始代码模板发布模块205,用于通过主引擎将初始代码模板发布消息发送到各分引擎。
106.初始代码模板分发模块206,用于各分引擎根据接收的发布消息从主git代码仓库获取初始代码模板,并将获取的初始代码模板保存到对应分git代码仓库中。
107.发布消息中包括初始代码模板的id。
108.一种代码模板管理系统,还包括:
109.代码模板更新模块,用于通过主引擎更新第i版代码模板,获得更新后的第i版代码模板。
110.更新后的代码模板存储模块,用于将更新后的第i版代码模板存储到主git代码仓库并将更新后的第i版代码模板的id存储到代码模板列表中。
111.更新消息发送模块,用于通过主引擎将代码模板更新消息发送到各分引擎。
112.更新后的代码模板分发模块,用于各分引擎根据接收的代码模板更新消息从主git代码仓库获取更新后的第i版代码模板,并将获取的更新后的第i版代码模板保存到对应分git代码仓库中。
113.一种代码模板管理系统,还包括:
114.代码模板使用次数记录模块,用于当用户从主git代码仓库或各分git代码仓库获取第i版代码模板时,记录第i版代码模板的使用次数。
115.代码模板推荐模块,用于在主引擎和各分引擎,根据各代码模板的使用次数从大到小的顺序推荐各代码模板。
116.设定开发技术包括vue、angular和springboot。
117.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
118.本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
再多了解一些

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

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

相关文献