CN117687670A - 基于插件的源码管理方法、装置、计算机设备及存储介质 - Google Patents

基于插件的源码管理方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN117687670A
CN117687670A CN202311777176.3A CN202311777176A CN117687670A CN 117687670 A CN117687670 A CN 117687670A CN 202311777176 A CN202311777176 A CN 202311777176A CN 117687670 A CN117687670 A CN 117687670A
Authority
CN
China
Prior art keywords
code
metadata
plug
baseline
matched
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311777176.3A
Other languages
English (en)
Inventor
刘伟松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Lan You Technology Co Ltd
Original Assignee
Shenzhen Lan You Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Lan You Technology Co Ltd filed Critical Shenzhen Lan You Technology Co Ltd
Priority to CN202311777176.3A priority Critical patent/CN117687670A/zh
Publication of CN117687670A publication Critical patent/CN117687670A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明属于软件开发领域,涉及基于插件的源码管理方法、装置、计算机设备及存储介质,所述方法包括基于基线代码,生成基线元数据,基线元数据用于识别不可修改的逻辑代码;将源码及基线元数据导入IDE开发工具,IDE开发工具设有插件;通过插件,监听编辑器的按键执行前事件,获取源码的文件名、具体代码编辑的逻辑位置及当前行代码内容,并将代码行内容生成HASH值;插件将编辑的文件路径信息和元数据代码清单进行比对;根据比对结果,判断编辑的文件路径信息和元数据代码清单是否匹配,否则说明此文件不在元数据代码清单中,则此文件为新增文件,可继续编辑。可有效识别项目变更内容,从而反馈产品做到持续沉淀升级。

Description

基于插件的源码管理方法、装置、计算机设备及存储介质
技术领域
本发明涉及软件开发技术领域,尤其涉及基于插件的源码管理方法、装置、计算机设备及存储介质。
背景技术
随着电子技术的发展,各种电子产品层出不穷。随之而来的,与各种电子产品相适应的,软件开发也是必须的。现有技术中,很多产品开发,在软件交付时,通常直接使用源码交付,这样虽然可以做到更细粒度逻辑调整,但无法基于交付可控标准,管控定制化开发修改逻辑范围,这样对软件业务影响不可控。另外,通常情况下,使用编译包(如jar)交付,这样虽然可以有效控制修改范围,但无法更细粒度控制软件变更逻辑。也就是说,现有技术中,产品的软件代码在项目定制化开发交付时,只可以新增逻辑,不可修改及删除逻辑,这样不利于对软件进行更新完善。
发明内容
本发明实施例的目的在于提出一种基于插件的源码管理方法、装置、计算机设备及存储介质,以解决现有技术中,产品的软件代码在项目定制化开发交付时,只可以新增逻辑,不可修改及删除逻辑,这样不利于对软件进行更新完善的问题。
为了解决上述技术问题,本发明提供一种基于插件的源码管理方法,采用了如下所述的技术方案,包括:
基于基线代码,生成基线元数据,所述基线元数据用于识别不可修改的逻辑代码;
将源码及所述基线元数据导入IDE开发工具,所述IDE开发工具设有插件;
通过所述插件,监听编辑器的按键执行前事件,获取所述源码的文件名、具体代码编辑的逻辑位置及当前行代码内容,并将代码行内容生成HASH值;
所述插件将编辑的文件路径信息和元数据代码清单进行比对;
根据比对结果,判断编辑的文件路径信息和元数据代码清单是否匹配,否则说明此文件不在元数据代码清单中,则此文件为新增文件,可以继续编辑,是则进一步通过当前逻辑位置和代码行内容HASH值与所述基线元数据已匹配的代码明细进行比对,如果匹配上,则基于插件监听按键前事件返回false,如果没有匹配上,则返回true继续处理;
存储所述基线元数据,并且将本地代码修改记录进行存储,并且上传到项目变更记录服务,通过变更记录生成器生成变更报告。
优选地,所述基于基线代码,生成基线元数据,所述基线元数据用于识别不可修改的逻辑代码的步骤具体包括:
获取基线代码;
按照基线代码内容,生成代码清单和代码明细。
优选地,所述将源码及所述基线元数据导入IDE开发工具,所述IDE开发工具设有插件的步骤具体包括:
将IDE开发工具安装插件;
由所述IDE开发工具打开所述基线代码所在的文件夹,导入所述基线代码及所述基线元数据。
优选地,所述通过所述插件,监听编辑器的按键执行前事件,获取所述源码的文件名、具体代码编辑的逻辑位置及当前行代码内容,并将代码行内容生成HASH值的步骤具体包括:
编辑所述基线代码时,获取按键输入值;
所述插件通过所述IDE开发工具的按键扩展接口,获取当前编辑的文件对应代码行的信息;
将获取的当前编辑的文件对应代码行的信息生成HASH值。
优选地,所述所述插件将编辑的文件路径信息和元数据代码清单进行比对的步骤具体包括:
所述插件在元数据代码清单中查询所编辑的文件路径信息;
由所述插件返回在元数据代码清单中查询所编辑的文件路径信息的结果。
优选地,所述根据比对结果,判断编辑的文件路径信息和元数据代码清单是否匹配,否则说明此文件不在元数据代码清单中,则此文件为新增文件,可以继续编辑,是则进一步通过当前逻辑位置和代码行内容HASH值与所述基线元数据已匹配的代码明细进行比对,如果匹配上,则基于插件监听按键前事件返回false,如果没有匹配上,则返回true继续处理的步骤具体包括:
根据比对结果,判断编辑的文件路径信息和元数据代码清单是否匹配;
判断编辑的文件路径信息和元数据代码清单不匹配,则说明此文件不在元数据代码清单中,则此文件为新增文件,可以继续编辑;
判断编辑的文件路径信息和元数据代码清单匹配,则进一步通过当前逻辑位置和代码行内容HASH值与所述基线元数据已匹配的代码明细进行比对;
逻辑位置和代码行内容HASH值与所述基线元数据已匹配的代码明细比对匹配,则基于插件监听按键前事件返回false;
逻辑位置和代码行内容HASH值与所述基线元数据已匹配的代码明细比对不匹配,则返回true继续处理。
优选地,所述存储所述基线元数据,并且将本地代码修改记录进行存储,并且上传到项目变更记录服务,通过变更记录生成器生成变更报告的步骤具体包括:
存储所述基线元数据及本地代码修改记录;
将所存储的所述基线元数据及本地代码修改记录,上传到项目变更记录服务;
通过变更记录生成器生成变更报告,并且存储变更报告。
为了解决上述技术问题,本发明还提供一种基于插件的源码管理装置,采用了如下所述的技术方案,包括:
生成模块,用于基于基线代码,生成基线元数据,所述基线元数据用于识别不可修改的逻辑代码;
导入模块,用于将源码及所述基线元数据导入IDE开发工具,所述IDE开发工具设有插件;
生成模块,用于通过所述插件,监听编辑器的按键执行前事件,获取所述源码的文件名、具体代码编辑的逻辑位置及当前行代码内容,并将代码行内容生成HASH值;
比对模块,所述插件将编辑的文件路径信息和元数据代码清单进行比对;
管理模块,用于根据比对结果,判断编辑的文件路径信息和元数据代码清单是否匹配,否则说明此文件不在元数据代码清单中,则此文件为新增文件,可以继续编辑,是则进一步通过当前逻辑位置和代码行内容HASH值与所述基线元数据已匹配的代码明细进行比对,如果匹配上,则基于插件监听按键前事件返回false,如果没有匹配上,则返回true继续处理;
存储模块,用于存储所述基线元数据,并且将本地代码修改记录进行存储,并且上传到项目变更记录服务,通过变更记录生成器生成变更报告。
为了解决上述技术问题,本发明还提供一种计算机设备,采用了如下所述的技术方案,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现上述的基于插件的源码管理方法的步骤。
为了解决上述技术问题,本发明还提供一种计算机可读存储介质,采用了如下所述的技术方案,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现上述的基于插件的源码管理方法的步骤。
与现有技术相比,本发明主要有以下有益效果:针对产品代码在项目交付定制化开发的场景下,基于产品代码交付规范,确保产品代码逻辑不被修改或者删除,但允许基于业务需求新增逻辑,以用于管控项目代码变更及修改范围;同时可以将新增的逻辑代码生成统计报告反馈给产品负责组织;以达到识别产品复用率,持续对产品进行升级迭代;有效管控产品在交付过程中,代码修改范围,更细粒度控制修改逻辑,使得业务逻辑实现变更可控;还能够基于生成变更记录,可有效从项目识别项目变更内容,从而反馈产品做到持续沉淀升级。
附图说明
为了更清楚地说明本发明中的方案,下面将对本发明实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的基于插件的源码管理方法的一个实施例的流程图;
图2是本发明的基于插件的源码管理方法的使用逻辑示意图;
图3是本发明的基于插件的源码管理装置的一个实施例的结构示意图;
图4是本发明的计算机设备的一个实施例的结构示意图。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明;本发明的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本发明的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了使本技术领域的人员更好地理解本发明方案,下面将结合附图,对本发明实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本发明实施例所提供的基于插件的源码管理方法一般由服务器/终端设备执行,相应地,基于插件的源码管理装置一般设置于服务器/终端设备中。
应该理解,终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
实施例一
继续参考图1,示出了本发明的基于插件的源码管理方法的一个实施例的流程图。所述基于插件的源码管理方法,包括以下步骤:
步骤S1,基于基线代码,生成基线元数据,基线元数据用于识别不可修改的逻辑代码。
在本实施例中,基于插件的源码管理方法运行于其上的电子设备(例如服务器/终端设备)可以通过有线连接方式或者无线连接方式接收基于插件的源码管理请求。需要指出的是,上述无线连接方式可以包括但不限于3G/4G/5G连接、WiFi连接、蓝牙连接、WiMAXX连接、Zigbee连接、UWB(ultra wideband)连接、以及其他现在已知或将来开发的无线连接方式。
具体实施时,步骤S1,基于基线代码,生成基线元数据,基线元数据用于识别不可修改的逻辑代码具体还可以包括步骤:
S11、获取基线代码。
基线代码指的是将产品基于客户需求变更进行定制化交付时,对应产品的代码。可以通过配置有基线代码的路径的配置文件,解析配置文件,获得基线代码所在的路径,然后从基线代码所在的路径处去获取基线代码。
S12、按照基线代码内容,生成代码清单和代码明细。
不可修改逻辑代码为基线代码。元数据(metadata)是关于数据的组织、数据域及其关系的信息,简言之,元数据就是描述数据的数据。这里的基线元数据包括代码清单和代码明细。代码清单包括代码相对路径(如工程根目录),代码名称,不含配置文件。代码明细包括代码逻辑位置,文本插入符的逻辑位置从0开始计数,代码折叠和软换行时不会修改字符的逻辑位置;代码行内容,包含内容HASH值。代码逻辑位置指的是打开一个代码文档时,编辑器会分配一个从0开始的坐标系。代码文档中的第1行和每一行的第1个字符坐标都是从0开始。每一个字符都会分配一个偏移量对象,偏移量对象封装了从代码文档第一个字符到当前位置的字符数量。代码逻辑位置包含了当前代码所在行的行号。字符逻辑位置包含了当前字符所在行的行号,以及在当前行的位置。代码折叠指的是在IDE编辑器中,针对类、方法或者代码块等多行代码,可以收起为一行展示。软换行指的是当一行代码字符串太长时,在编辑器看起来是换行了,实际没有换行。
步骤S2,将基线代码及基线元数据导入IDE开发工具,IDE开发工具设有插件。
IDE(Integrated Development Environment,集成开发环境),是一种软件应用程序,它集成了多种开发工具和功能,旨在提高软件开发的效率和质量。IDE通常包含源代码编辑器、自动完成、调试器和构建工具等功能。IDE还可以提供各种插件和扩展,以满足不同开发需求。
IDE的作用之一是提高开发效率。IDE提供了丰富的功能和工具,如代码自动完成、语法高亮、代码重构、调试器等,可以帮助程序员更快地编写和调试代码。而且,IDE还可以自动管理代码库、构建工具和文档等,从而减少手动操作的时间和错误。
IDE还可以帮助程序员避免一些常见的编程错误,如语法错误、拼写错误、类型不匹配等。此外,IDE还可以执行静态代码分析和代码重构等操作,帮助程序员优化代码结构和逻辑,从而提高代码质量。
IDE还可以支持多人协作开发,例如通过版本控制系统、代码审查工具和任务管理工具等。这些工具可以帮助团队成员协同工作,共同完成项目。而且,IDE还可以自动执行构建和测试等任务,以确保代码的一致性和质量。
插件(Plug-in,又称addin、add-in、addon或add-on,又译外挂)是一种遵循一定规范的应用程序接口编写出来的程序。其只能运行在程序规定的系统平台下(可能同时支持多个平台),而不能脱离指定的平台单独运行。因为插件需要调用原纯净系统提供的函数库或者数据。很多软件都有插件,插件有无数种。
在本实施例中,步骤S2,将基线代码及基线元数据导入IDE开发工具,IDE开发工具设有插件具体还可以包括步骤:
S21、将IDE开发工具安装插件。
本实施例中,IDE开发工具为IntelliJ IDEA。IntelliJ IDEA是java编程语言的集成开发环境,具有智能的选取、丰富的导航模式、历史记录功能、对重构的优越支持、编码辅助、代码检查功能等。
可以在IntelliJ IDEA安装TabNine、RestfulToolkit、CodeGlance、Lombok、MyBatisCodeHelperPro等插件,用来增加生产力,提高工作效率。
TabNine插件的优点包括:有效的代码提示;支持大量的编程语言;为主流编辑器和IDE提供支持;使用机器学习,记忆你经常编写的代码,并提供极其详细的提示。
开发人员可以使用RestfulToolkit插件直接从IDE中轻松测试、调试和管理RESTful API请求,从而提高整体效率和生产力。
MyBatisCodeHelperPro插件,可以提高开发人员在使用MyBatis框架时的生产力。它包含代码生成和实时模板功能,使编写和管理MyBatis代码更容易,节省时间和精力。
CodeGlance插件通过提供代码概览、导航和理解功能,帮助开发人员更高效地编写和修改代码。
Lombok是一个Java库,可以自动生成样板代码,减少开发人员必须编写的样板代码量,可以提高效率,这样开发人员能够更多地投入到实际功能的开发中。
S22、由IDE开发工具打开基线代码所在的文件夹,导入基线代码及基线元数据。
IDE开发工具可以编辑基线代码。
步骤S3,通过插件,监听编辑器的按键执行前事件,获取源码的文件名、具体代码编辑的逻辑位置及当前行代码内容,并将代码行内容生成HASH值。
按键执行前事件指的是通过开发工具编辑器修改代码时,需要操作键盘按键,在按键按下之后,在编辑器显示对应按键字符之前的操作。具体代码编辑的逻辑位置指的是编辑字符字符光标逻辑位置。
HASH,一般翻译做散列、杂凑,或音译为哈希,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。
在本实施例中,步骤S3,通过插件,监听编辑器的按键执行前事件,获取源码的文件名、具体代码编辑的逻辑位置及当前行代码内容,并将代码行内容生成HASH值具体还可以包括步骤:
S31、编辑基线代码时,获取按键输入值。
按键输入值会对应于基线代码所在的一行。
S32、插件通过IDE开发工具的按键扩展接口,获取当前编辑的文件对应代码行的信息。
当前编辑的文件对应代码行的信息,包括元数据,也就是说包括代码路径,代码明细信息,代码明细信息包括逻辑位置等。S33、将获取的当前编辑的文件对应代码行的信息生成HASH值。
哈希函数将任意长度的二进制值映射为固定长度的二进制值,这个映射结果就是哈希值。
选择一个合适的哈希函数。哈希函数的选择取决于具体需求,包括数据的大小、数据的分布、哈希值的长度等等。例如MD5、SHA-1或者SHA-256等都是可供选择的哈希函数。
将要转换的数据,即获取的当前编辑的文件对应代码行的信息,作为输入。这可以是一个字节串、一个字符串、一个整数,甚至是其他任何可以被转换为二进制形式的数据。
编码数据:如果输入数据不是二进制形式,则需要将它转换为二进制。例如,如果输入是一个字符串,则需要将它转换为字节串,然后再转换为二进制。
计算哈希值:将编码后的数据输入到哈希函数中,然后进行计算。这个计算过程通常包括一系列的数学运算,如位移、异或、乘法和加法等。
输出哈希值:计算结果就是哈希值。这个值是一个固定长度的二进制串,它代表了输入数据的哈希值。
步骤S4,插件将编辑的文件路径信息和元数据代码清单进行比对。
在本实施例中,步骤S4,插件将编辑的文件路径信息和元数据代码清单进行比对具体还可以包括步骤:
S41、插件在元数据代码清单中查询所编辑的文件路径信息。
S42、由插件返回在元数据代码清单中查询所编辑的文件路径信息的结果。编辑的文件路径为代码的文件夹目录和文件名的组件,例如
mp/sale/User.java。先比对编辑的文件是不是新增的,所以才要和元数据的代码清单进行比对,允许新增逻辑代码包含新增代码行和新增代码文件。
代码清单指的是整个基线代码的文件路径集合。循环遍历元数据代码清单,每一个代码的路径和当前编辑的的文件路径匹配(字符串匹配),比如当前编辑文件的路径为mp/sale/User.java。
步骤S5,根据比对结果,判断编辑的文件路径信息和元数据代码清单是否匹配,否则说明此文件不在元数据代码清单中,则此文件为新增文件,可以继续编辑,是则进一步通过当前逻辑位置和代码行内容HASH值与基线元数据已匹配的代码明细进行比对,如果匹配上,则基于插件监听按键前事件返回false,如果没有匹配上,则返回true继续处理。
在本实施例中,步骤S5具体还可以包括步骤:
S51、根据比对结果,判断编辑的文件路径信息和元数据代码清单是否匹配。
S52、判断编辑的文件路径信息和元数据代码清单不匹配,则说明此文件不在元数据代码清单中,则此文件为新增文件,可以继续编辑。
S53、判断编辑的文件路径信息和元数据代码清单匹配,则进一步通过当前逻辑位置和代码行内容HASH值与基线元数据已匹配的代码明细进行比对。
S54、逻辑位置和代码行内容HASH值与基线元数据已匹配的代码明细比对匹配,则基于插件监听按键前事件返回false。
S55、逻辑位置和代码行内容HASH值与基线元数据已匹配的代码明细比对不匹配,则返回true继续处理。
代码编辑规则是可以新增文件和代码行,禁止修改和删除代码行。针对修改的文件,则需要针对代码的逻辑位置(行)进行比对,还是通过按键执行前事件获取到当前编辑字符的光标所在的逻辑位置,然后和本文件的元数据逻辑位置(行号)进行比对,用于识别是否可以继续编辑。
基于插件监听按键前事件返回false,以达到禁止当前行编辑(不可新增字符,修改字符,删除字符,删除行)的功能。如果没有匹配上,就可以返回true继续处理,以达到继续编辑(例如新增字符,修改字符,删除字符,删除行)功能。因为插件实现了开发工具的扩展接口,可以拦截按键执行前的事件,开发工具通过插件返回给开发工具的结果状态值true和false,判断是否继续执行,是否将按键的字符显示到编辑的文件,已达到禁止编辑的功能。没有匹配可以继续编辑指的是说规则是不允许修改匹配到规则的代码。
步骤S6,存储基线元数据,并且将本地代码修改记录进行存储,并且上传到项目变更记录服务,通过变更记录生成器生成变更报告。
在本实施例中,步骤S6,存储基线元数据,并且将本地代码修改记录进行存储,并且上传到项目变更记录服务,通过变更记录生成器生成变更报告具体还可以包括步骤:
S61、存储基线元数据及本地代码修改记录。可以采用sqlite存储基线元数据及本地代码修改记录,也可以根据需要选择其他的存储工具进行存储。
S62、将所存储的基线元数据及本地代码修改记录,上传到项目变更记录服务。
S63、通过变更记录生成器生成变更报告,并且存储变更报告。
生成变更报告,并且存储变更报告,方便对基线代码进行生命周期管理。
通过按键事件获取修改的字符及逻辑位置进行记录用于后续生成报告。
图2是本发明的基于插件的源码管理方法的使用逻辑示意图。如图2所示,项目交付前,基于产品的基线代码生成基线元数据,用于项目开发时识别不可修改的逻辑代码;项目交付中,使用安装了插件的IDE,基于产品的代码和基线元数据,只允许开发人员新增逻辑代码,不允许修改及删除代码逻辑;项目交付后,将产品定制化开发客制化代码生成变更清单,用于沉淀项目定制化开发内容。
需要强调的是,为进一步保证上述源码信息的私密和安全性,上述源码信息还可以存储于一区块链的节点中。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
实施本实施例,其有益效果是:针对产品代码在项目交付定制化开发的场景下,通过设置只可以新增文件或者新增行,不可以修改行的产品代码(基线代码)交付规范,基于产品代码交付规范,基于制定开发工具及插件通过基于元数据比对及编辑器按键事件实现,确保产品代码逻辑不被修改或者删除,但允许基于业务需求新增逻辑,以用于管控项目代码变更及修改范围;同时可以将新增的逻辑代码生成统计报告反馈给产品负责组织;以达到识别产品复用率,持续对产品进行升级迭代;有效管控产品在交付过程中,代码修改范围,更细粒度控制修改逻辑,使得业务逻辑实现变更可控;还能够基于生成变更记录,可有效从项目识别项目变更内容,从而反馈产品做到持续沉淀升级。
本发明可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指令相关的硬件来完成,该计算机可读指令可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
实施例二
进一步参考图3,作为对上述图1所示方法的实现,本发明提供了一种基于插件的源码管理装置的一个实施例,该装置实施例与图1所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图3所示,本实施例基于插件的源码管理装置70包括:生成模块71、导入模块72、生成模块73、比对模块74、管理模块75以及存储模块76。
其中:
生成模块71,用于基于基线代码,生成基线元数据,基线元数据用于识别不可修改的逻辑代码;
导入模块72,用于将源码及基线元数据导入IDE开发工具,IDE开发工具设有插件;
生成模块73,用于通过插件,监听编辑器的按键执行前事件,获取源码的文件名、具体代码编辑的逻辑位置及当前行代码内容,并将代码行内容生成HASH值;
比对模块74,插件将编辑的文件路径信息和元数据代码清单进行比对;
管理模块75,用于根据比对结果,判断编辑的文件路径信息和元数据代码清单是否匹配,否则说明此文件不在元数据代码清单中,则此文件为新增文件,可以继续编辑,是则进一步通过当前逻辑位置和代码行内容HASH值与基线元数据已匹配的代码明细进行比对,如果匹配上,则基于插件监听按键前事件返回false,如果没有匹配上,则返回true继续处理;
存储模块76,用于存储基线元数据,并且将本地代码修改记录进行存储,并且上传到项目变更记录服务,通过变更记录生成器生成变更报告。
实施本实施例,其有益效果是:针对产品代码在项目交付定制化开发的场景下,基于产品代码交付规范,确保产品代码逻辑不被修改或者删除,但允许基于业务需求新增逻辑,以用于管控项目代码变更及修改范围;同时可以将新增的逻辑代码生成统计报告反馈给产品负责组织;以达到识别产品复用率,持续对产品进行升级迭代;有效管控产品在交付过程中,代码修改范围,更细粒度控制修改逻辑,使得业务逻辑实现变更可控;还能够基于生成变更记录,可有效从项目识别项目变更内容,从而反馈产品做到持续沉淀升级。
实施例三
为解决上述技术问题,本发明实施例还提供计算机设备。具体请参阅图4,图4为本实施例计算机设备基本结构框图。
上述计算机设备8包括通过系统总线相互通信连接存储器81、处理器82、网络接口83。需要指出的是,图中仅示出了具有组件存储器81、处理器82和网络接口83的计算机设备8,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
上述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。上述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
上述存储器81至少包括一种类型的可读存储介质,上述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,上述存储器81可以是上述计算机设备8的内部存储单元,例如该计算机设备8的硬盘或内存。在另一些实施例中,上述存储器81也可以是上述计算机设备8的外部存储设备,例如该计算机设备8上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。当然,上述存储器81还可以既包括上述计算机设备8的内部存储单元也包括其外部存储设备。本实施例中,上述存储器81通常用于存储安装于上述计算机设备8的操作系统和各类应用软件,例如基于插件的源码管理方法的计算机可读指令等。此外,上述存储器81还可以用于暂时地存储已经输出或者将要输出的各类数据。
上述处理器82在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器82通常用于控制上述计算机设备8的总体操作。本实施例中,上述处理器82用于运行上述存储器81中存储的计算机可读指令或者处理数据,例如运行上述基于插件的源码管理方法的计算机可读指令。
上述网络接口83可包括无线网络接口或有线网络接口,该网络接口83通常用于在上述计算机设备8与其他电子设备之间建立通信连接。
实施本实施例,其有益效果是:针对产品代码在项目交付定制化开发的场景下,基于产品代码交付规范,确保产品代码逻辑不被修改或者删除,但允许基于业务需求新增逻辑,以用于管控项目代码变更及修改范围;同时可以将新增的逻辑代码生成统计报告反馈给产品负责组织;以达到识别产品复用率,持续对产品进行升级迭代;有效管控产品在交付过程中,代码修改范围,更细粒度控制修改逻辑,使得业务逻辑实现变更可控;还能够基于生成变更记录,可有效从项目识别项目变更内容,从而反馈产品做到持续沉淀升级。
实施例四
本发明还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令可被至少一个处理器执行,以使所述至少一个处理器执行如上述的基于插件的源码管理方法的步骤。
实施本实施例,其有益效果是:针对产品代码在项目交付定制化开发的场景下,基于产品代码交付规范,确保产品代码逻辑不被修改或者删除,但允许基于业务需求新增逻辑,以用于管控项目代码变更及修改范围;同时可以将新增的逻辑代码生成统计报告反馈给产品负责组织;以达到识别产品复用率,持续对产品进行升级迭代;有效管控产品在交付过程中,代码修改范围,更细粒度控制修改逻辑,使得业务逻辑实现变更可控;还能够基于生成变更记录,可有效从项目识别项目变更内容,从而反馈产品做到持续沉淀升级。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例方法。
显然,以上所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,附图中给出了本发明的较佳实施例,但并不限制本发明的专利范围。本发明可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本发明的公开内容的理解更加透彻全面。尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本发明说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本发明专利保护范围之内。

Claims (10)

1.一种基于插件的源码管理方法,其特征在于,包括下述步骤:
基于基线代码,生成基线元数据,所述基线元数据用于识别不可修改的逻辑代码;
将源码及所述基线元数据导入IDE开发工具,所述IDE开发工具设有插件;
通过所述插件,监听编辑器的按键执行前事件,获取所述源码的文件名、具体代码编辑的逻辑位置及当前行代码内容,并将代码行内容生成HASH值;
所述插件将编辑的文件路径信息和元数据代码清单进行比对;
根据比对结果,判断编辑的文件路径信息和元数据代码清单是否匹配,否则说明此文件不在元数据代码清单中,则此文件为新增文件,可以继续编辑,是则进一步通过当前逻辑位置和代码行内容HASH值与所述基线元数据已匹配的代码明细进行比对,如果匹配上,则基于插件监听按键前事件返回false,如果没有匹配上,则返回true继续处理;
存储所述基线元数据,并且将本地代码修改记录进行存储,并且上传到项目变更记录服务,通过变更记录生成器生成变更报告。
2.根据权利要求1所述的基于插件的源码管理方法,其特征在于,所述基于基线代码,生成基线元数据,所述基线元数据用于识别不可修改的逻辑代码的步骤具体包括:
获取基线代码;
按照基线代码内容,生成代码清单和代码明细。
3.根据权利要求1所述的基于插件的源码管理方法,其特征在于,所述将源码及所述基线元数据导入IDE开发工具,所述IDE开发工具设有插件的步骤具体包括:
将IDE开发工具安装插件;
由所述IDE开发工具打开所述基线代码所在的文件夹,导入所述基线代码及所述基线元数据。
4.根据权利要求3所述的基于插件的源码管理方法,其特征在于,所述通过所述插件,监听编辑器的按键执行前事件,获取所述源码的文件名、具体代码编辑的逻辑位置及当前行代码内容,并将代码行内容生成HASH值的步骤具体包括:
编辑所述基线代码时,获取按键输入值;
所述插件通过所述IDE开发工具的按键扩展接口,获取当前编辑的文件对应代码行的信息;
将获取的当前编辑的文件对应代码行的信息生成HASH值。
5.根据权利要求1所述的基于插件的源码管理方法,其特征在于,所述所述插件将编辑的文件路径信息和元数据代码清单进行比对的步骤具体包括:
所述插件在元数据代码清单中查询所编辑的文件路径信息;
由所述插件返回在元数据代码清单中查询所编辑的文件路径信息的结果。
6.根据权利要求1所述的基于插件的源码管理方法,其特征在于,所述根据比对结果,判断编辑的文件路径信息和元数据代码清单是否匹配,否则说明此文件不在元数据代码清单中,则此文件为新增文件,可以继续编辑,是则进一步通过当前逻辑位置和代码行内容HASH值与所述基线元数据已匹配的代码明细进行比对,如果匹配上,则基于插件监听按键前事件返回false,如果没有匹配上,则返回true继续处理的步骤具体包括:
根据比对结果,判断编辑的文件路径信息和元数据代码清单是否匹配;
判断编辑的文件路径信息和元数据代码清单不匹配,则说明此文件不在元数据代码清单中,则此文件为新增文件,可以继续编辑;
判断编辑的文件路径信息和元数据代码清单匹配,则进一步通过当前逻辑位置和代码行内容HASH值与所述基线元数据已匹配的代码明细进行比对;
逻辑位置和代码行内容HASH值与所述基线元数据已匹配的代码明细比对匹配,则基于插件监听按键前事件返回false;
逻辑位置和代码行内容HASH值与所述基线元数据已匹配的代码明细比对不匹配,则返回true继续处理。
7.根据权利要求1至6任意一项所述的基于插件的源码管理方法,其特征在于,所述存储所述基线元数据,并且将本地代码修改记录进行存储,并且上传到项目变更记录服务,通过变更记录生成器生成变更报告的步骤具体包括:
存储所述基线元数据及本地代码修改记录;
将所存储的所述基线元数据及本地代码修改记录,上传到项目变更记录服务;
通过变更记录生成器生成变更报告,并且存储变更报告。
8.一种基于插件的源码管理装置,其特征在于,包括:
生成模块,用于基于基线代码,生成基线元数据,所述基线元数据用于识别不可修改的逻辑代码;
导入模块,用于将源码及所述基线元数据导入IDE开发工具,所述IDE开发工具设有插件;
生成模块,用于通过所述插件,监听编辑器的按键执行前事件,获取所述源码的文件名、具体代码编辑的逻辑位置及当前行代码内容,并将代码行内容生成HASH值;
比对模块,所述插件将编辑的文件路径信息和元数据代码清单进行比对;
管理模块,用于根据比对结果,判断编辑的文件路径信息和元数据代码清单是否匹配,否则说明此文件不在元数据代码清单中,则此文件为新增文件,可以继续编辑,是则进一步通过当前逻辑位置和代码行内容HASH值与所述基线元数据已匹配的代码明细进行比对,如果匹配上,则基于插件监听按键前事件返回false,如果没有匹配上,则返回true继续处理;
存储模块,用于存储所述基线元数据,并且将本地代码修改记录进行存储,并且上传到项目变更记录服务,通过变更记录生成器生成变更报告。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如权利要求1至7中任一项所述的基于插件的源码管理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如权利要求1至7中任一项所述的基于插件的源码管理方法的步骤。
CN202311777176.3A 2023-12-21 2023-12-21 基于插件的源码管理方法、装置、计算机设备及存储介质 Pending CN117687670A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311777176.3A CN117687670A (zh) 2023-12-21 2023-12-21 基于插件的源码管理方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311777176.3A CN117687670A (zh) 2023-12-21 2023-12-21 基于插件的源码管理方法、装置、计算机设备及存储介质

Publications (1)

Publication Number Publication Date
CN117687670A true CN117687670A (zh) 2024-03-12

Family

ID=90136885

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311777176.3A Pending CN117687670A (zh) 2023-12-21 2023-12-21 基于插件的源码管理方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN117687670A (zh)

Similar Documents

Publication Publication Date Title
CN109829144B (zh) 一种在线表格跨表引用方法及装置
US8621429B2 (en) Software development support apparatus, function extension method and storage medium for storing function extension program
CN112559354A (zh) 前端代码规范检测方法、装置、计算机设备及存储介质
CN111061475A (zh) 软件代码生成方法、装置、计算机设备和存储介质
CN104050161B (zh) 应用和数据服务器的动态桥接
CN112394908A (zh) 埋点页面自动生成的方法、装置、计算机设备及存储介质
CN111209001A (zh) 批量生成安卓各渠道apk的方法、系统、设备和介质
WO2023092580A1 (zh) 页面显示方法、装置、存储介质及电子设备
CN112965721A (zh) 基于Android的项目编译方法、装置、计算机设备及存储介质
CN114816971A (zh) 一种数据处理方法、相关设备及存储介质
CN112597023A (zh) 基于导图的案例管理方法、装置、计算机设备及存储介质
CN107918587A (zh) 一种应用程序的调试方法及系统
CN117687670A (zh) 基于插件的源码管理方法、装置、计算机设备及存储介质
CN103809915A (zh) 一种磁盘文件的读写方法和装置
CN115758464A (zh) 一种基于配置的数据脱敏管理方法、装置、介质及设备
CN112015429B (zh) 一种代码生成方法、装置及设备
CN114138577A (zh) 一种tpc-h测试方法、装置、计算机设备及存储介质
CN114625372A (zh) 组件自动编译方法、装置、计算机设备及存储介质
CN112052007A (zh) 源码调试方法、装置、服务器及存储介质
CN113377368A (zh) 项目开发方法、装置、服务器及存储介质
CN110286894B (zh) 脚本生成方法、装置、计算机设备和存储介质
Wenzel Further scaling of Isabelle technology
CN113656044B (zh) 安卓安装包压缩方法、装置、计算机设备及存储介质
CN111897568B (zh) 一种系统校验的方法、装置、设备及存储介质
CN115757458A (zh) 数据库文档生成方法、装置、计算机设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination