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

实现应用服务端规则检查代码方法、系统、设备及介质

文献发布时间:2023-06-19 12:00:51


实现应用服务端规则检查代码方法、系统、设备及介质

技术领域

本发明涉及信息技术领域,特别是涉及一种实现应用服务端规则检查代码方法、系统、设备及介质。

背景技术

随着软件行业的飞速发展,软件的需求量越来越大,软件应用环境日益复杂,新业务层出不穷,旧业务不断迭代更新,软件开发团队越来越大,开发人员水平参差不齐。为保障软件的研发质量,必须对研发交付的代码进行质量检查,传统的代码检查需要人工去参与评审软件设计、编码、实现的正确性,耗费大量的人力和时间成本,项目越大往往问题也越多。

现有技术存在的问题主要体现在以下方面:

1.业务代码的复杂度、重复率越来越高。

2.团队或个人的代码规范不一致,维护困难。

3.稳定性要求高,单单仅依靠人工测试难以完整覆盖。

4.代码扫描是一种客户端行为,但又必须应用服务端统一的规则集实现集中管控,目前主流的代码扫描IDEA插件都是将规则集成在客户端,无法集中管控。

5.代码扫描本身是一种客户端行为,需要解决在不侵入客户端的情况下完成多语言、多工具的扫描支持。

6.客户端扫描时需要解决与服务端保持实时数据通信和数据同步。

发明内容

基于以上问题,本发明的目的在于,提供一种实现应用服务端规则检查代码方法、系统、设备及介质。

第一方面,本发明的实现应用服务端规则检查代码方法,包括:

制定扫描配置视图;

加载yml配置文件;

实时与代码检查服务端交互通信,并实时进行代码扫描;

读取数据并进行结果展示。

上述技术方案在一种实施方式中,所述制定扫描配置视图,包括:基于Java Awt提供的基本GUI设计工具以及扩展IDEA组件完成制定扫描配置视图。

上述技术方案在一种实施方式中,所述视图的属性包括用户名、项目标识、yml配置文件路径、Agent安装路径、服务网关的一种或多种。

上述技术方案在一种实施方式中,所述加载yml配置文件,包括:加载yml配置文件,配置文件包括扫描的语言、工具、规则集、Key-Value键值对关系存储的一种或多种。

上述技术方案在一种实施方式中,所述实时进行代码扫描,包括:启动Agent服务监听进程状态。

上述技术方案在一种实施方式中,所述实时进行代码扫描,包括:启动Docker容器工具镜像或本地扫描的编译工具包进行代码扫描。

上述技术方案在一种实施方式中,所述读取数据并进行结果展示,包括:调用代码检查服务端getScanRasult接口获取本次的扫描结果,解析返回JSON数据格式,调用IDEA控制台视图展示扫描结果。

第二方面,本发明提供一种实现应用服务端规则检查代码系统,包括:

服务端,配置用于实时进行代码扫描;

客户端,配置用于制定扫描配置视图;加载yml配置文件;实时与代码检查服务端交互通信;并读取服务端数据并进行结果展示。

第三方面,本发明还提供一种实现应用服务端规则检查代码设备,包括:

存储器,用于存储一个或多个程序;

处理器,用于运行所述存储器中存储的所述程序,以实现如上述任一项所述的实现应用服务端规则检查代码方法。

第四方面,本发明还提供一种计算机可读存储介质,其存储有至少一个程序,当所述程序被处理器执行时,实现如上述任一项所述的实现应用服务端规则检查代码方法。

相对于现有技术,本发明的实现应用服务端规则检查代码方法、系统、设备及介质的有益效果:

1.采用客户端扫描+服务端规则管理的组合模式,通过Agent进程来协作完成两端的通讯,实现服务端统一管控下的客户端代码扫描功能。

2.采用Docker容器镜像来承载个性化的扫描工具支持,对客户端最小化侵入的情况下实现了理论上无限多种语言和工具的扫描。

3.采用yml配置扫描的语言、工具、规则集,以Key-Value键值对关系存储,使得用户拥有更好、更直观的视觉效果,更好的控制项目中代码的正确性和规范性,从而达到提高用户代码质量。

为了更好地理解和实施,下面结合附图详细说明本发明。

附图说明

图1是本发明的实现应用服务端规则检查代码方法的示例性流程框图。

图2是本发明的实现应用服务端规则检查代码系统的连接框图。

具体实施方式

在本说明书中提到或者可能提到的上、下、左、右、前、后、正面、背面、顶部、底部等方位用语是相对于其构造进行定义的,它们是相对的概念。因此,有可能会根据其所处不同位置、不同使用状态而进行相应地变化。所以,也不应当将这些或者其他的方位用语解释为限制性用语。

以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的方法的例子。

在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

请参阅图1,图1是本发明的实现应用服务端规则检查代码方法的示例性流程框图。

第一方面,本发明的实现应用服务端规则检查代码方法,包括:

S1.制定扫描配置视图。

上述S1中,所述制定扫描配置视图,包括:基于Java Awt提供的基本GUI设计工具以及扩展IDEA组件完成制定扫描配置视图。

Awt主要包括:组件(Component)、容器(Container)、布局管理器(LayoutManager)。

Awt图像化界面最基本的组成部分为组件,它不能独立的显示出来,必须依托在一定的容器才会正常显示。

可选地,所述视图的属性包括用户名、项目标识、yml配置文件路径、Agent安装路径、服务网关的一种或多种。

S2.加载yml配置文件。

yml是一种直观的能够被电脑识别的数据序列化格式,易于阅读,数据在不同语言之间是可移植的,当运行扫描插件时读取yml配置信息,解析扫描的语言工具,实时获取扫描日志以及结果,并提供告警展示功能。

上述S2具体包括:加载yml配置文件,配置文件包括扫描的语言、工具、规则集、Key-Value键值对关系存储的一种或多种。

S3.实时与代码检查服务端交互通信,并实时进行代码扫描。

上述S3中,所述实时进行代码扫描,包括:启动Agent服务监听进程状态,检查构建情况。

优选地,所述实时进行代码扫描,具体为:通过启动Docker容器工具镜像或本地扫描的编译工具包进行代码扫描。这样,可以在Docker容器中实现客户端无侵入式的多语言、多工具代码扫描。

S4.读取数据并进行结果展示。

优选地,上述S4具体包括:调用代码检查服务端getScanRasult接口获取本次的扫描结果,解析返回JSON数据格式,调用IDEA控制台视图展示扫描结果。

该结果展示还包括告警结果展示等。

通过以上方法,实现了IDEA软件中集成代码扫描插件,实时扫描,更好控制项目中代码的正确性和规范性,为用户提供更好视觉效果,提高用户代码质量。

本发明的实现应用服务端规则检查代码方法的代码扫描插件可集成于IDEA软件中,支持扫描15+开发语言,集成17+扫描工具,配置灵活,支持本地项目、文件夹、单个文件进行扫描,告警结果展示等。

请进一步参阅图2,图2是本发明的实现应用服务端规则检查代码系统的连接框图。

第二方面,本发明提供一种实现应用服务端规则检查代码系统,包括:

服务端,配置用于实时进行代码扫描;

客户端,配置用于制定扫描配置视图;加载yml配置文件;实时与代码检查服务端交互通信;并读取服务端数据并进行结果展示。

服务端主要提供规则、规则集的配置,生成扫描构建信息,启动代码扫描镜像,保存扫描结果等。

客户端通过配置化信息与服务端实时交互,获取扫描步骤、日志、结果等。

服务端和客户端可通过交互配合实现本发明的实现应用服务端规则检查代码方法。

客户端通过安装Agent应用程序包,根据用户配置的扫描信息,运行时会在本机产生一个应用程序进程,实时与服务端进行交互。

通过服务端提供的规则、规则集,也可根据自身需要自定义,其中类别主要包含代码缺陷、安全漏洞、代码规范、圈复杂度、重复率、代码统计等;包含15+编程语言为:C/C++、JS、Golang、Java、C#、OC/OC++、Python、Kotlin、PHP、TS、Swift、Ruby、Lua、Solidity、Dart等。

采用yml的配置方式配置扫描的语言、规则、规则集,灵活简单,易于入手,项目扫描过程中,通过Agent应用程序与服务端交互,自动拉取扫描构建的信息。

扫描完成后,服务端返回完成状态以及扫描结果到agent程序中,客户端采用此方式实时获取服务端扫描结果,产出物通过IDEA视图、HTML的方式展示,方便查看以及定位到具体的文件行数位置。

具体实现时,服务端和客户端可分别为服务端插件和客户端本地扫描插件。

客户端本地扫描插件通过Agent与服务端实时交互,扫描规则、规则集统一由远端服务端管控。服务端插件能快速准确地分析源代码,找出质量问题和安全漏洞,并提供自助接入、实时扫描、告警展示等功能。通过上述插件能够更好控制项目中代码的正确性和规范性,防止项目上线或交付后出现重大错误或代码风格不统一等问题,同时提高开发人员对代码编写的质量要求。

第三方面,本发明还提供一种实现应用服务端规则检查代码设备,包括:

存储器,用于存储一个或多个程序;

处理器,用于运行所述存储器中存储的所述程序,以实现如上述所述的实现应用服务端规则检查代码方法。

所述设备还可以优选地包括通信接口,所述通信接口用于与外部设备进行通信和数据交互传输。

需要说明的是,所述存储器可能包含高速RAM存储器,也可能还包括非易失性存储器 (nonvolatile memory),例如至少一个磁盘存储器。

在具体实现上,如果存储器、处理器及通信接口集成在一块芯片上,则存储器、处理器及通信接口可以通过内部接口完成相互间的通信。如果存储器、处理器和通信接口独立实现,则存储器、处理器和通信接口可以通过总线相互连接并完成相互间的通信。

第四方面,本发明还提供一种计算机可读存储介质,其存储有至少一个程序,当所述程序被处理器执行时,实现如上述所述的实现应用服务端规则检查代码方法。

应当理解,所述计算机可读存储介质为可存储数据或程序的任何数据存储设备,所述数据或程序其后可由计算机系统读取。计算机可读存储介质的示例包括只读存储器、随机存取存储器、CD-ROM、HDD、DVD、磁带和光学数据存储设备等。计算机可读存储介质还可分布在网络耦接的计算机系统中使得计算机可读代码以分布式方式来存储和执行。

计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、射频(Radio Frequency,RF)等,或者上述的任意合适的组合。

在一些实施方案中,计算机可读存储介质可以是非暂态的。

相对于现有技术,本发明的实现应用服务端规则检查代码方法、系统、设备及介质的有益效果:

1.采用客户端扫描+服务端规则管理的组合模式,通过Agent进程来协作完成两端的通讯,实现服务端统一管控下的客户端代码扫描功能。

2.采用Docker容器镜像来承载个性化的扫描工具支持,对客户端最小化侵入的情况下实现了理论上无限多种语言和工具的扫描。

3.采用yml配置扫描的语言、工具、规则集,以Key-Value键值对关系存储,使得用户拥有更好、更直观的视觉效果,更好的控制项目中代码的正确性和规范性,从而达到提高用户代码质量。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。

相关技术
  • 实现应用服务端规则检查代码方法、系统、设备及介质
  • 一种代码诊断方法、装置、服务端、用户设备及存储介质
技术分类

06120113135990