掌桥专利:专业的专利平台
掌桥专利
首页

一种对代码托管平台进行优化的方法

文献发布时间:2024-04-18 19:52:40


一种对代码托管平台进行优化的方法

技术领域

本发明涉及计算机技术领域,具体涉及一种对代码托管平台进行优化的方法。

背景技术

随着计算机技术的发展,在大型互联网公司,软件开发越来越注重效率,基于此,一种由公共语言环境执行的代码应运而生。代码托管是同受管制的代码。托管代码应用程序可以获得公共语言、统一的代码托管应用程序行为。在托管执行环境中使用托管代码及其编译,可以避免许多典型的导致安全漏洞和不稳定程序的编程错误,同样,许多不可靠的设计也自动的被增强了安全性。

保证代码库的高可用性和安全性等储存问题的研究显得尤其重要。由于托管服务根据使用的规模不同,通常会更加的庞大复杂和难以管理,对于个人开发者可能无需关注,但对于企业而言需要一定的维护成本和开销,并且由于大量项目的编写,使得代码托管平台的运行更加繁冗、复杂。

发明内容

本发明提供,以解决现有技术中存在的上述问题。

一种代码托管平台进行优化的方法,其特征在于,包括以下步骤:

S100,利用已设定的爬虫程序收集网络中的代码信息,并对所述代码信息进行预处理操作,获取预处理后代码信息中的用户数据;

S200,代码托管平台将用户数据中的代码采用分库的方式存储至代码库;

S300,建立路由选择模块,将所述代码库的变更存储到指定节点上;

S400,获取所述指定节点中的用户数据,并通过社区发现算法建立用户模型以及带权网络拓扑图,完成社区划分;

S500,将所述社区划分的结果进行可视化展示,通过用户查询的方式实现代码托管平台的优化。

优选的,S100中,所述进行预处理操作,包括:

S101,请求访问URL,收集用户数据以及代码库信息存放至数据库中;

S102,计算用户数据参与度,排除代码库中数量小于20以及大于300的用户;

S103,将用户名用唯一的数字进行编码,并将用户数据根据编码顺序存储到文本文件中用于调用。

优选的,S300中,所述路由器选择模块,包括:

判断所述代码库的名字是否为空;

若为空,在代码库中制定路由规则,并通过代码库的名字获取代码库的路由地址;

若不为空,则说明代码库存放于数据存储单元中,获取在数据存储单元中的代码库;

使用轮询算法将客户端发来的请求依次传送到每个服务器中;

当服务器性能出现差异时,则使用代码库根据所述路由规则对服务器进行加权轮询。

优选的,S300中,所述将所述代码库的变更存储到指定节点上,包括:

获取代码库的集群,所述代码库的集群由主节点以及从属节点构成,且主节点与从属节点存储的代码库相同;

设定项目版本数据存储库为第一存储单元;

设定元数据存储库为第二存储单元;

所述第一存储单元用于存储不同修订版本的项目管理数据库,并直接访问数据库中的文件系统;

所述第二存储单元存储代码托管平台中的元数据信息,所述元数据信息包括:代码库信息、代码评审信息、版本控制分支信息以及各个用户账户信息。

优选的,S400中,包括:

S401:根据社区发现算法中模块度的波动变化,设定初始状态下各节点之间的边权;

S402:计算不同节点之间的权重,将节点集合中的用户模型进行重构,形成多维度用户模型;

S403:建立所述多维度用户模型与代码库的多种亲密度关系用于客户端对代码托管平台进行操作;

S404:对所述多种亲密度关系依据用户的使用程度的频率做出排序,并根据排序设置不同的权重值。

优选的,S402中,所述形成多维度用户模型,包括:

判断节点中的用户集合是否为空,若不为空则从中取出一个测试用户;

遍历所述多种亲密度关系,并分别建立关系集合,用于记录每种关系中所有的编程语言类型,以及与编程类语言类型对应的代码库数量;

提取测试用户的信息,判断测试用户是否有多种亲密度关系对应的数据集合,如果有,则遍历测试用户的多种亲密度关系对应的数据结合,并结合测试用户对应的编程类语言计算权重值;将计算的权重值整合为多维度用户模型。

优选的,S500中,所述将所述社区划分的结果及进行可视化展示,包括:

S500中,所述将所述社区划分的结果进行可视化展示,包括:

将社区划分的结果在浏览器中进行可视化展示;

不同的社区结构赋予不同的颜色标记,并通过颜色标记查看所述网络拓扑图的节点数、边数、社区结构个数以及模块度值;

具有相似编程特点的用户划分在同一社区,代码托管平台根据当前用户的使用需求为用户推荐代码库。

优选的,所述代码托管平台根据当前用户使用需求推荐代码库,包括:

查询用户的代码库信息,在用户页面显示与用户相关的代码库信息,用鼠标点击可以直接访问对应网站上的代码库;

为用户推荐社区划分后当前用户所在社区的其他用户信息;

为用户推荐社区划分后与当前用户同一社区其他用户所关注的代码库。

优选的,一种代码托管平台进行优化的方法,其特征在于,还包括:

S600,当代码托管平台收到用户对代码库发出的回调请求时,代码托管平台响应用户发出的回调请求,并查询用户当前所需的代码库;

S700,代码托管平台中的事件提交模块获取回调请求中的用户代码,并对用户代码进行镜像构建;获取镜像构建后用户代码对应的版本号,并将所有用户代码对应的版本号集合保存并放至存储装置中,对存储装置中的用户代码进行测试用例处理。

优选的,S700中,所述对存储装置中的用户代码进行测试用例处理,包括:

在用户代码提交客户端与代码托管平台之间添加需求建立模块;

代码托管平台获取所述镜像构建中的用户代码,并通过所述需求建立模块查询出本次代码开发的相关需求,并将相关需求信息填入提交日志信息中;

获取所述提交日志信息,并按日志信息中的相关需求自动建立测试用例,将建立完成的测试用例返还至客户端,用于用户测试执行。

与现有技术相比,本发明具有以下优点:

本发明提供,将代码平台进行优化弥补了许多开发使用者对平台使用上手慢的问题,对软件开发具有举足轻重的作用,在很大程度上保证程序开发的同时,还使异域的团队成员可以同步开发,不至于影响进步,从而提高了开发效率。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图1为本发明实施例中一种对代码托管平台进行优化的方法步骤图;

图2为本发明实施例中代码托管平台中路由选择模块的执行流程图;

图3为本发明实施例中代码托管平台中用户操作的权重分配的步骤图。

具体实施方式

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

参照图1,本发明实施例提供了一种对代码托管平台进行优化的方法,其特征在于,包括:

S100,利用已设定的爬虫程序收集网络中的代码信息,并对所述代码信息进行预处理操作,获取预处理后代码信息中的用户数据;

S200,代码托管平台将用户数据中的代码采用分库的方式存储至代码库;

S300,建立路由选择模块,将所述代码库的变更存储到指定节点上;

S400,获取所述指定节点中的用户数据,并通过社区发现算法建立用户模型以及带权网络拓扑图,完成社区划分;

S500,将所述社区划分的结果进行可视化展示,通过用户查询的方式实现代码托管平台的优化。

上述技术方案的工作原理为:本实施例采用的方案是,由于网络使用者的检索目的各不相同,通过爬虫程序按照既定的规则,定向抓取网页资源,用于代码托管平台的优化;将用户数据存放至代码库,并建立路由器选择模块,所述路由器选择模块将用户数据中变更存储到指定节点中;通过对用户进行建模,并计算模型之间的权重,完成网络拓扑图的构建以及社区的划分;并基于社区划分的结果向用户进行推荐,实现社区划分结果和用户模型的可视化展示,并为用户推荐同一社区内相关的代码库信息。

上述技术方案的有益效果为:采用本实施例提供的方案,通过网络爬虫的设计与实现,使数据的检索得到更大的方便,将数据通过路由器模块存储到不同节点中,将节点中的数据用于对用户进行建模,根据社区发现算法将不同的用户数据进行划分,并给用户进行推荐,可以促进代码托管平台中具有相同编程特点的开发用户相互交流。

在另一实施例中,S100中,所述进行预处理操作,包括:

S101,请求访问URL,收集用户数据以及代码库信息存放至数据库中;

S102,计算用户数据参与度,排除代码库中数量小于20以及大于300的用户;

S103,将用户名用唯一的数字进行编码,并将用户数据根据编码顺序存储到文本文件中用于调用。

上述技术方案的工作原理为:本实施例采用的方案是,确定网络爬虫程序的爬取目标,确定所需的数据所在的固定网页;对所述爬取目标进行分析,获取数据中的url格式,并在网页中筛选过滤出有用的url,并收集url中用户信息以及代码库信息存放至数据库中,对数据库中的数据进行数据清理操作,排除相关代码库数量小于20的用户,由于他们的参与度过低,相关信息太少而无法确定用户特征;同时排除相关代码库数量大于300的用户,这些用户由于参与度过高而对用户的特性把握不准确,所以最终将数据预处理控制在用户数据为20到300之间的代码库用户。然后将用户名进行一一编排以方便调用,在进行社区划分时,可以通过数字编号找到对应的信息,最后根据数字编码存储到文本文件中。

上述技术方案的有益效果为:采用本实施例提供的方案,通过对数据进行预处理,可以更精准的实现社区划分,筛选出符合要求的用户数据,并加以编排更方便用户进行调用。

参照图2,在另一实施例中,S300中,所述路由器选择模块,包括:

判断所述代码库的名字是否为空;

若为空,在代码库中制定路由规则,并通过代码库的名字获取代码库的路由地址;

若不为空,则说明代码库存放于数据存储单元中,获取在数据存储单元中的代码库;

使用轮询算法将客户端发来的请求依次传送到每个服务器中;

当服务器性能出现差异时,则使用代码库根据所述路由规则对服务器进行加权轮询。

上述技术方案的工作原理为:本实施例采用的方案是,当代托管平台执行对代码库的相关操作时,例如发评审、合入、上传、下载等操作,这些操作调用了底层路由,在传入代码库名字时,检验代码库名字是否为空,若不为空,则不为新建的代码库,并从本地缓存中取出;若为空,则根据路由规则,存在Redis中,并获取具体的存储路径;获取存储在Redis中的代码库,当客户端发来请求时,则通过轮询算法将请求依次发送到每个服务器中,当服务器出现性能上的差异时,则根据性能上的差异,选择合适的服务器将代码库根据轮询算法给定一些权值,进行加权轮询。

上述技术方案的有益效果为:采用本实施例提供的方案,通过轮询算法可以同时处理多个任务,在轮询调度中,每个任务在有限的时间内循环轮流进行。

在另一实施例中,S300中,所述将所述代码库的变更存储到指定节点上,包括:

获取代码库的集群,所述代码库的集群由主节点以及从属节点构成,且主节点与从属节点存储的代码库相同;

设定项目版本数据存储库为第一存储单元;

设定元数据存储库为第二存储单元;

所述第一存储单元用于存储不同修订版本的项目管理数据库,并直接访问数据库中的文件系统;

所述第二存储单元存储代码托管平台中的元数据信息,所述元数据信息包括:代码库信息、代码评审信息、版本控制分支信息以及各个用户账户信息。

上述技术方案的工作原理为:本实施例采用的方案是,所述第一存储单元用于存储修订版本的Git对象数据库,并直接访问代码库的文件,代码库中的数据存储在可以通过访问的远程服务器上,并进行远程访问;所述第二存储单元中的元数据包含代码托管平台中上面需要的数据存储,例如代码库信息、代码评审信息、版本控制分支信息以及各个用户账户信息,元数据的存储通过数据库与代码审查软件进行交互,在数据库中创建用户,并为用户分配密码,创建数据库,并授予完全权限。

参照图3,在另一实施例中,S400中,包括:

S401:根据社区发现算法中模块度的波动变化,设定初始状态下各节点之间的边权;

S402:计算不同节点之间的权重,将节点集合中的用户模型进行重构,形成多维度用户模型;

S403:建立所述多维度用户模型与代码库的多种亲密度关系用于客户端对代码托管平台进行操作;

S404:对所述多种亲密度关系依据用户的使用程度的频率做出排序,并根据排序设置不同的权重值。

上述技术方案的工作原理为:本实施例采用的方案是,根据计算不同节点之间的边权,以及与用户发生关系的所有代码仓库构建多维度的用户模型,用户与代码库的多种亲密度关系为like、wait、copy、create,其中like是一种关注代码库的行为,代表了用户的兴趣,类似于将代码库的信息加入收藏列表,表示对此代码库有一定的关注,但是用户与该代码库的亲密程度较弱;wait操作则是将感兴趣的代码库加入wait列表,如果wait列表内的代码库有更新的操作,则所有信息会显示在客户端首页;copy操作则是将其他人代码库的代码克隆到自己的代码库中。可以作为子模块进行使用,并允许用户对克隆到自己代码库的代码进行修改、二次开发;create操作用于用户自己创建代码库,在用户自己创建代码库后,才能上传代码到自己的代码库中,创建的代码库可以是共有的,也可以是私有的。

为了满足社区划分的需求,对模块度的值进行了定义,公式如下:

其中,A

在另一实施例中,S402中,所述形成多维度用户模型,包括:

判断节点中的用户集合是否为空,若不为空则从中取出一个测试用户;

遍历所述多种亲密度关系,并分别建立关系集合,用于记录每种关系中所有的编程语言类型,以及与编程类语言类型对应的代码库数量;

提取测试用户的信息,判断测试用户是否有多种亲密度关系对应的数据集合,如果有,则遍历测试用户的多种亲密度关系对应的数据结合,并结合测试用户对应的编程类语言计算权重值;将计算的权重值整合为多维度用户模型。

上述技术方案的工作原理为:本实施例采用的方案是,设定所述多种亲密度关系like、wait、copy、create所对应的参数分别为w1、w2、w3、w4,输入用于多维度模型建立的用户集合中,遍历上述多种亲密度关系,并建立关系集合,用于记录该关系中的编程语言类型,以及该编程语言类型对应的代码仓库数量,当取出某个用户信息的时候,判断用户是否有多种亲密度关系对应的数据结构,如果没有则跳过这个用户,如果有,则遍历该用户的四个集合,并整合四个集合的权重值,并根据权重值构建多维度用户模型。在完成多维度用户模型的构建后,遍历所有多维度用户模型的节点,并判断两节点之间是否有边,若满足条件,则计算边权重,并获取多维度用户模型的两两组合,计算组合后对应维度权重的总和,最后判断是否完成遍历操作,若完成,则输出带权网络拓扑图信息。

在判断两个用户的两节点之间是否有紧密联系时,即网络中两个节点是否有边相连,以及边权重的计算,将两个用户模型设为A与B,计算公式如下:

其中W

在另一实施例中,S500中,所述将所述社区划分的结果及进行可视化展示,包括:

将社区划分的结果在浏览器中进行可视化展示;

不同的社区结构赋予不同的颜色标记,并通过颜色标记查看所述网络拓扑图的节点数、边数、社区结构个数以及模块度值;

具有相似编程特点的用户划分在同一社区,代码托管平台根据当前用户的使用需求为用户推荐代码库。

在另一实施例中,所述代码托管平台根据当前用户使用需求推荐代码库,包括:

查询用户的代码库信息,在用户页面显示与用户相关的代码库信息,用鼠标点击可以直接访问对应网站上的代码库;

为用户推荐社区划分后当前用户所在社区的其他用户信息;

为用户推荐社区划分后与当前用户同一社区其他用户所关注的代码库。

上述技术方案的工作原理为:本实施例采用的方案是,在经过社区划分算法后,所述网络拓扑图将社区进行划分,并形成结果集,点击某个结果集即可进入社区可视化页面,可视化页面中的不同颜色代表不同的社区,并包括节点数、边数、社区数和模块度值;其中,可视化页面中展示了代码托管平台中所有成员信息,并且可以通过用户名进行搜索,点击按钮可以转换为其他社区用户。客户端可以对代码托管平台进行两次查询请求,第一是查询与该用户相关的代码仓的信息,第二是请求同社区中其他用户相关代的代码库的信息,为用户推荐同社区中其他用户关注的代码库。

上述技术方案的有益效果为:采用本实施例提供的方案对社区进行划分并建立多维度用户模型,最后进行可视化展示,并给出了运行效果,可以使用户在操作代码托管平台时有更多的选择,避免了新手用户在使用平台时出现操作不熟练的情况。

在另一实施例中,一种代码托管平台进行优化的方法,其特征在于,还包括:

S600,当代码托管平台收到用户对代码库发出的回调请求时,代码托管平台响应用户发出的回调请求,并查询用户当前所需的代码库;

S700,代码托管平台中的事件提交模块获取回调请求中的用户代码,并对用户代码进行镜像构建;获取镜像构建后用户代码对应的版本号,并将所有用户代码对应的版本号集合保存并放至存储装置中,对存储装置中的用户代码进行测试用例处理。

上述技术方案的有益效果为:采用本实施例提供的方案,代码托管平台可以快速响应用户的回调请求,并支持用户查看构建部署的实时日志,在较差的网络环境中,用户依旧可以通过镜像构建的方式查看存储装置的代码,并且方便查看用户代码完成的进度和结果,从而增强用户的友好性,提升用户体验。

在另一实施例中,S700中,所述对存储装置中的用户代码进行测试用例处理,包括:

在用户代码提交客户端与代码托管平台之间添加需求建立模块;

代码托管平台获取所述镜像构建中的用户代码,并通过所述需求建立模块查询出本次代码开发的相关需求,并将相关需求信息填入提交日志信息中;

获取所述提交日志信息,并按日志信息中的相关需求自动建立测试用例,将建立完成的测试用例返还至客户端,用于用户测试执行。

上述技术方案的有益效果为:采用本实施例提供的方案,根据在客户端以及代码托管平台间添加需求建立模块,可以在代码进行开发时,从需求建立模块中及时查询出本次代码开发的相关需求,并根据代码的变更精确识别出需要执行的测试用例,最后通过获取所提交的日志信息,高效的看出本次代码开发的过程。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

相关技术
  • 一种对低碳钢DSIT轧制工艺进行优化的实验方法
  • 一种通过大数据挖掘进行优化选址工作方法
  • 对代码托管平台进行优化的方法、装置、介质和电子设备
  • 一种基于深度学习的代码托管平台风控系统及方法
技术分类

06120116331132