CN112130862A - 包文件生成方法、装置、设备和计算机可读存储介质 - Google Patents

包文件生成方法、装置、设备和计算机可读存储介质 Download PDF

Info

Publication number
CN112130862A
CN112130862A CN202011042122.9A CN202011042122A CN112130862A CN 112130862 A CN112130862 A CN 112130862A CN 202011042122 A CN202011042122 A CN 202011042122A CN 112130862 A CN112130862 A CN 112130862A
Authority
CN
China
Prior art keywords
file
code
target
package
generating
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.)
Granted
Application number
CN202011042122.9A
Other languages
English (en)
Other versions
CN112130862B (zh
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.)
Ping An International Smart City Technology Co Ltd
Original Assignee
Ping An International Smart City 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 Ping An International Smart City Technology Co Ltd filed Critical Ping An International Smart City Technology Co Ltd
Priority to CN202011042122.9A priority Critical patent/CN112130862B/zh
Publication of CN112130862A publication Critical patent/CN112130862A/zh
Application granted granted Critical
Publication of CN112130862B publication Critical patent/CN112130862B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本申请涉及大数据领域,应用于智慧政务领域中,揭露了一种包文件生成方法、装置、设备和存储介质。该方法包括:获取目标文件,目标文件中含有目标代码;若确定目标代码的语句行数大于行数阈值,则根据目标代码获取第一代码文件和第二代码文件;若确定第一代码文件和第二代码文件中含有的代码的语句行数均小于或等于行数阈值,根据第一代码文件生成第一编译文件,以及根据第二代码文件生成第二编译文件;根据第一编译文件和第二编译文件生成目标文件对应的包文件。该方法可以降低代码检查所消耗的人力并且提升检查效率,同时能够避免单个文件中包括过多代码,有利于软件维护和升级,提高生产效率。

Description

包文件生成方法、装置、设备和计算机可读存储介质
技术领域
本申请涉及大数据领域,应用于智慧政务领域中,尤其涉及一种包文件生成方法、装置、设备和计算机可读存储介质。
背景技术
随着计算机技术的普及,各类公司的业务运行开始依赖于软件支持,进而催生了提供各类软件服务的软件公司。软件公司会制定代码规范来约束开发人员的编写习惯以提高代码质量。代码规范中经常会规定单个源文件的最大长度或者最大存储空间以保证代码结构清楚以及确保加载速度。
目前,很多团队在进行源文件检查时仍采用人工检查的方式来进行。然而,人工检查效率较低且不全面,会导致单个源文件包含过多的代码而难以阅读和理解,不利于软件的维护和升级,降低了生产效率。
发明内容
根据上述技术问题,本申请提供一种包文件生成方法,以降低代码检查所消耗的人力并且提升检查效率,同时能够避免单个文件中包括过多代码,有利于软件维护和升级,提高生产效率。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请实施例的一个方面,提供一种包文件生成方法,包括:
获取目标文件,目标文件中含有目标代码;
若确定目标代码的语句行数大于行数阈值,则根据目标代码获取第一代码文件和第二代码文件,第一代码文件和第二代码文件含有目标代码中的部分代码,第一代码文件和第二代码文件所含有的代码用于共同实现目标代码对应的软件功能;
若确定第一代码文件和第二代码文件中含有的代码的语句行数均小于或等于行数阈值,根据第一代码文件生成第一编译文件,以及根据第二代码文件生成第二编译文件;
根据第一编译文件和第二编译文件生成目标文件对应的包文件。
在本申请的一些实施例中,根据以上技术方案,根据目标代码获取第一代码文件和第二代码文件,包括:
确定目标代码中含有的多个功能代码模块,以及确定多个功能代码模块之间的执行调用关系;
根据执行调用关系,生成模块调用图,模块调用图的边对应于功能代码模块之间的调用关系,边的权值对应于功能代码模块之间的调用次数;
根据调用关系以及调用次数,将模块调用图拆分为第一子图和第二子图;
根据目标代码生成第一代码文件以及第二代码文件,第一代码文件中含有的代码内容对应于第一子图描述的功能代码模块之间的调用关系,第二代码文件中含有的代码内容对应于第一子图描述的功能代码模块之间的调用关系。
在本申请的一些实施例中,根据以上技术方案,根据调用关系以及调用次数,将模块调用图拆分为第一子图和第二子图,包括:
根据调用关系以及调用次数,对模块调用图进行最小割处理,得到模块调用图对应的最小割集;
从模块调用图中去除最小割集对应的边,得到第一子图和第二子图。
在本申请的一些实施例中,根据以上技术方案,该方法还包括:
获取目标代码中含有的资源信息;
若确定资源信息对应的资源文件不存在,则触发资源告警提示。
在本申请的一些实施例中,根据以上技术方案,该方法还包括:
根据预设的代码分析规则,分别对第一代码文件以及第二代码文件进行代码检查,生成第一代码文件对应的检查结果以及第二代码文件对应的检查结果。
在本申请的一些实施例中,根据以上技术方案,对第一代码文件进行代码检查,包括:
确定第一代码文件对应的代码注释信息占比;
若代码注释信息占比小于预设值,则生成告警提示消息,警告提示消息中含有第一代码文件的名称和文件位置。
在本申请的一些实施例中,根据以上技术方案,获取目标文件,包括:
当检测到输入的文件获取指令时,根据文件获取指令中含有的入口信息,在软件项目所包含的文件目录中查找入口信息对应的入口文件;
从入口文件开始,在所文件目录中递归查找具有文件引用关系的各个文件;
将入口文件和递归查找到的文件作为多个目标文件,以生成各个目标文件对应的包文件。
根据本申请实施例的一个方面,提供一种包文件生成装置,包括:
第一文件获取模块,用于获取目标文件,目标文件中含有目标代码;
第二文件获取模块,用于若确定目标代码的语句行数大于行数阈值,则根据目标代码获取第一代码文件和第二代码文件,第一代码文件和第二代码文件含有目标代码中的部分代码,第一代码文件和第二代码文件所含有的代码用于共同实现目标代码对应的软件功能;
编译文件生成模块,用于若确定第一代码文件和第二代码文件中含有的代码的语句行数均小于或等于行数阈值,根据第一代码文件生成第一编译文件,以及根据第二代码文件生成第二编译文件;
包文件生成模块,用于根据第一编译文件和第二编译文件生成目标文件对应的包文件。
根据本申请实施例的一个方面,提供一种包文件生成设备,其特征在于,包括:存储器,存储有计算机可读指令;处理器,读取存储器存储的计算机可读指令,以执行如以上实施例中的任一项方法。
根据本申请实施例的一个方面,提供一种计算机可读存储介质,其上存储有计算机可读指令,当计算机可读指令被计算机的处理器执行时,使计算机执行如以上实施例中任一项方法。
在本申请的实施例中,通过检查目标文件中的代码行数是否超过预定的行数阈值,并且在超过行数阈值时,将目标文件拆分成能够实现相同功能的子文件,降低代码检查所消耗的人力并且提升检查效率,同时能够避免单个文件中包括过多代码,有利于软件维护和升级,提高生产效率。
本方案属于智慧政务领域,通过本方案能够将源文件的代码行数或文件大小维持在合理的范围内,使得各类计算机技术的具体实现代码结构更清楚而更容易被理解,有利于提升软件公司或企业中进行软件开发的生产效率和监管效率,推动智慧城市的建设。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本申请技术方案在一个示例性应用场景中的系统构架示意图;
图2是本申请实施例中提供的包文件生成方法的步骤流程图;
图3是本申请实施例中的包文件生成装置的组成框图;
图4是适于实现本申请实施例的设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
图1示意性地示出了本申请技术方案在一个应用场景中的示例性系统构架示意图。
如图1所示,系统架构100可以包括客户端110、网络120和服务端130。客户端110可以包括个人电脑、智能手机、智能机器人、平板电脑等各种终端设备。服务端130可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。网络120可以是能够在客户端110和服务端130之间提供通信链路的各种连接类型的通信介质,例如可以是有线通信链路、无线通信链路等等。
根据实现需要,本申请实施例提供的技术方案可以应用于客户端110,也可以应用于服务端130,或者可以由客户端110和服务端130共同实施,本申请对此不做特殊限定。
举例而言,个人电脑、智能手机等各种智能终端设备可以通过无线网络接入到服务器上的包文件生成服务。包文件是软件项目最终输出的一种形式,其中通常包括软件程序运行所需要的代码文件、编译文件、执行文件和资源文件等内容,其可以采用文件压缩包或者可执行文件等形式。客户端110通过网络120向服务端130发送包文件生成指令。服务端130根据接收到的包文件生成指令获取目标文件,对目标文件进行行数检查,并根据检查结果进行后续的处理,例如将目标文件拆分后并根据拆分结果生成包文件、根据检查结果直接生成包文件或者向用户告警生成失败等操作。随后,服务端130向客户端110发送执行结果,执行结果可以包括例如包文件生成成功或失败的通知、目标文件拆分的结果、拆分所得文件的文件名称和存储地址以及包文件的存储地址等信息。客户端110根据所接收到执行结果向用户展示提示信息。
在以上包文件生成过程中,服务端130提供的包文件生成服务的延迟很小,服务端130与客户端110之间的通信基本上可以立即被接收。客户端110的用户可以在包文件生成过程执行后中内快速获得执行结果,以便及时获取包文件或者对告警内容进行处理,避免用户等待。
下面结合具体实施方式对本申请提供的技术方案做出详细说明。
图2是本申请实施例中提供的包文件生成方法的流程图。该包文件生成方法的执行主体可以是作为客户端的台式电脑、笔记本电脑等各种终端设备,也可以是作为服务端的物理服务器、云服务器等各种服务器设备。在本实施例中,将以执行主体是作为服务端的服务器进行介绍,该服务器上安装有包文件生成装置,该包文件生成装置被实现为webpack工具的插件或者附加模块等形式,并且代码文件可以采用JavaScript等计算机语言进行编写。如图2所示,包文件生成方法主要可以包括以下步骤S210~步骤S240:
步骤S210.获取目标文件,目标文件中含有目标代码。
在本实施例中,包文件生成装置从客户端或者另一个服务器接收包文件生成指令。响应于该包文件生成指令,包文件生成装置获取目标文件,目标文件中包括目标代码。包文件生成指令可以由客户手动发出,也可以通过定时任务等方式发出。包文件生成装置可通过无线网络或者有线网络与客户端通信。
目标文件为了实现某一软件项目的用编程语言编写的程序源文件。软件项目中通常包括多个目标文件以及其他类型的文件,例如资源文件或者配置文件。目标文件的识别可以通过读取文件的后缀名的方式进行白名单过滤或名单过滤。目标代码通常用于一个或多个软件功能,并且每个软件功能通过一个或多个功能函数或代码块来实现。因此,目标代码可以被看作目标文件所实现的具体功能的集合。例如,目标功能可以是在页面上添加多个可视化效果。功能函数是实现目标功能所必须的且可以作为独立模块存在的单元。例如,上述的多个可视化效果中的每个可视化效果都可以是由一个或多个功能函数实现。
步骤S220.若确定目标代码的语句行数大于行数阈值,则根据目标代码获取第一代码文件和第二代码文件,第一代码文件和第二代码文件含有目标代码中的部分代码,第一代码文件和第二代码文件所含有的代码用于共同实现目标代码对应的软件功能。
在本实施例中,包文件生成装置对目标代码的语句行数进行检查,若确定目标代码的语句行数大于行数阈值,则根据目标代码获取第一代码文件和第二代码文件,第一代码文件和第二代码文件含有目标代码中的部分代码,第一代码文件和第二代码文件所含有的代码用于共同实现目标代码对应的软件功能。
具体地,在对目标代码进行检查前,包文件生成装置从配置文件中读取行数阈值。配置文件的地址可以默认配置在包文件生成工具中,或者被携带在发送文件包生成指令中。行数阈值的大小通常根据目标代码的语言以及人员经验确定,并且不同语言所编写的目标代码所对应的行数阈值可以不同。在读取行数阈值时,可以首先根据目标文件的后缀名确定所使用的编程语言,并根据所确定编程语言确定所对应的行数阈值。
在对目标代码进行检查前,包文件生成装置还可以对目标代码进行预处理。具体地,预处理可以包括去除目标代码首尾的空格、每行代码结尾的空格、以及根据目标代码所对应的语句结尾符号和换行符对目标代码重新进行分行处理,来得到格式化后的目标代码。
随后,包文件生成装置获取目标代码的语句行数并与行数阈值进行比较。若确定目标代码的语句行数大于行数阈值,则表示该目标代码所对应的目标文件不符合检查要求,进行需要对该目标文件进行拆分。包文件生成装置会根据目标代码中的功能函数进行结构分析以及语句行数,并根据分析结果将目标代码的功能函数划分为两个集合,并根据两个集合中的功能函数分别生成第一代码文件和第二代码文件。除了功能函数外,第一代码文件和第二代码文件中还会含有目标代码中的执行功能所必须的其他代码、结构、声明或定义等内容,例如对于其他文件的引用等。第一代码文件和第二代码文件所包含的代码能够共同实现目标代码所实现的功能。
在一个实施例中,在进行拆分的过程中,包文件生成装置会对目标代码中的功能函数进行适应性调整,以使得拆分后的代码能够顺利执行。具体地,包文件生成装置可以根据目标代码的编程语言,对各个功能函数在目标代码中调用语句进行调整和改写,以确保调用过程能够顺利执行。包文件生成装置还可以对目标文件所处的程序中的所有其他文件进行分析和检索,并且调整各个功能函数在其他文件中的调用语句。为了避免对其他文件的执行过程产生影响,第一代码文件或第二代码文件的文件名可以与目标文件相同,并且在拆分时,包文件生成装置可以根据编程语言关键字确定仅供目标文件本身所使用的功能函数,并将此类功能函数拆分到另一个文件中,以尽量减小对整体工程中其他代码文件的影响。
在一个实施例中,包文件生成装置可以向用户提示目标文件的行数超过行数阈值,并且用户对目标文件进行拆分后并再次发送包文件生成指令来重新进行包文件生成过程。
在一个实施例中,包文件生成装置在对目标文件进行拆分前,首先会根据拆分规则进行计算并生成拆分情况报告,并向用户展示该拆分情况报告。拆分情况报告中包括将被拆分的目标文件的文件名等信息以及拆分后的第一代码文件和第二代码文件所包括的功能函数名称等拆分信息。用户可以根据拆分情况报告来发出指令是否进行拆分操作。包文件生成装置在接收到拆分指令后才会继续进行拆分,否则,将会直接结束包文件生成过程。
在一个实施例中,确定目标代码的语句行数小于或等于行数阈值,则包文件生成装置将会根据目标文件生成目标编译文件,并且根据目标编译文件生成目标代码所对应的包文件。
步骤S230.若确定第一代码文件和第二代码文件中含有的代码的语句行数均小于或等于行数阈值,根据第一代码文件生成第一编译文件,以及根据第二代码文件生成第二编译文件;
在本实施例中,与目标文件类似,包文件生成装置获取第一代码文件和第二代码文件中的代码,并且根据之前获取的行数阈值对所获取的代码进行行数检查。若确定第一代码文件和第二代码文件中含有的代码的语句行数均小于或等于行数阈值,则表示第一代码文件和第二代码文件满足了检查要求,进而对第一代码文件和第二代码文件进行编译,并根据第一代码文件生成第一编译文件,以及根据第二代码文件生成第二编译文件。包文件生成装置可以通过其他工具来执行该编译过程,或者包文件生成装置采用编译工具的插件形式来实现的情况下,可以将编译过程交回编译工具进行控制。
步骤S240.根据第一编译文件和第二编译文件生成目标文件对应的包文件。
在本实施例中,包文件生成装置将编译所得到的第一编译文件和第二编译文件封包来生成目标文件对应的包文件。具体地,该包文件可以是独立生成的包文件,也可以是目标文件所处的软件项目所对应的整体包文件。包文件生成装置可以将第一编译文件和第二编译文件加入到该整体包文件中,来生成目标文件对应的包文件。
在本申请的实施例中,通过检查目标文件中的代码行数是否超过预定的行数阈值,并且在超过行数阈值时,将目标文件拆分成能够实现相同功能的子文件,降低代码检查所消耗的人力并且提升检查效率,同时能够避免单个文件中包括过多代码,有利于软件维护和升级,提高生产效率。
在本申请的一些实施例中,在以上实施例的基础上,上述步骤S220.根据目标代码获取第一代码文件和第二代码文件,可以包括以下步骤:
步骤S221.确定目标代码中含有的多个功能代码模块,以及确定多个功能代码模块之间的执行调用关系;
步骤S222.根据执行调用关系,生成模块调用图,模块调用图的边对应于功能代码模块之间的调用关系,边的权值对应于功能代码模块之间的调用次数;
步骤S223.根据调用关系以及调用次数,将模块调用图拆分为第一子图和第二子图;
步骤S224.根据目标代码生成第一代码文件以及第二代码文件,第一代码文件中含有的代码内容对应于第一子图描述的功能代码模块之间的调用关系,第二代码文件中含有的代码内容对应于第一子图描述的功能代码模块之间的调用关系。
具体地,在本实施例中,每个功能代码模块对应于一个功能函数或者代码块。确定目标代码中含有的多个功能代码模块具体可以包括首先根据目标代码的编程语言的规则,确定功能函数或者代码块所具有的关键字或者特定格式,然后根据所确定的关键字或者特定格式识别目标代码中所包括的功能函数或者代码块,进而可以得到目标代码中含有的功能代码模块。包文件生成装置根据编程语言的语法规则对功能代码模块进行调用过程分析,统计得到每个功能代码模块与其他功能代码模块的调用关系以及调用次数,并综合所有的统计得到执行调用关系。然后,基于该执行调用关系,可以生成模块调用图,模块调用图的各个节点即各个功能代码模块,模块调用图的边对应于功能代码模块之间的调用关系,边的权值对应于功能代码模块之间的调用次数。例如,目标代码中含有的A~E共5个功能代码模块,其中A功能代码模块调用B功能代码模块3次,则在模块调用图中存在A节点的B节点,A节点和B节点之间存在边并且边的权重为3。
对于模块调用图,包文件生成装置根据调用关系以及调用次数,将模块调用图拆分为第一子图和第二子图。具体地,包文件生成装置首先检查各个节点之间的调用关系以及对应的调用次数,根据调用关系和调用次数对各个节点进行从小到大进行排序,并依该次序从模块调用图中划分出节点,直到模块调用图中剩余节点所对应的代码行数小于行数阈值。此时,剩余的节点和划分出的节点分别形成第一子图和第二子图。在此基础上,包文件生成装置也可以统计各个功能代码模块所包括的代码行数,并且使得第一子图和第二子图中节点所对应的代码的行数尽量相同或者接近。例如,若存在a~e共5个功能代码模块a、b、c、d和e,分别具有的代码行数分别为100、100、200、50和50,它们相互之间均存在调用关系且调用次数相同,则可能的划分结果为代码模块a、b和d划分为第一子图而代码模块c和e划分为第二子图。
在得到第一子图和第二子图后,包文件生成装置根据目标代码生成第一代码文件以及第二代码文件,第一代码文件中含有的代码内容对应于第一子图描述的功能代码模块之间的调用关系,第二代码文件中含有的代码内容对应于第一子图描述的功能代码模块之间的调用关系。其中,第一代码文件中的代码对第二代码文件中的功能代码模块的调用关系将会被保留并且根据第二代码文件进行改写,第二代码文件中的代码也会进行类似的改写,以确保原有功能正常执行。
在本申请实施例中,通过建立模块调用图并分析的方式将目标文件拆分成第一代码文件和第二代码文件,能够使得包文件生成装置对目标文件进行自动拆分,节约人工分析和拆分操作,有利于提升生产效率。
在本申请的一些实施例中,在以上实施例的基础上,上述步骤S223.根据调用关系以及调用次数,将模块调用图拆分为第一子图和第二子图,可以包括以下步骤:
步骤S2231.根据调用关系以及调用次数,对模块调用图进行最小割处理,得到模块调用图对应的最小割集;
步骤S2232.从模块调用图中去除最小割集对应的边,得到第一子图和第二子图。
具体地,一个无向连通网络,去掉一个边集可以使其变成两个连通分量则这个边集就是割集;最小割集就是权和最小的割集。最小割集的求解可以采用常见的算法进行,例如利用最小切割最大流定理的方式或斯托尔-瓦格纳(Stoer-Wagner)算法。具体地,在对于模块调用图进行最小割处理,得到模块调用图对应的最小割集的过程中,包文件生成装置首先将算法输出值设定为一个极大值,并选定模块调用图中任一个节点P,然后从点P用普里姆算法扩展出“最大生成树”,记录最后扩展的节点和最后扩展的边,计算最后扩展到的节点的切割值(即与此节点相连的所有边权和),若比输出值小则更新输出值。合并最后扩展的那条边的两个端点为一个节点以及将它们的边合并为一条边,重新从点P开始用普里姆算法扩展出“最大生成树”开始执行,直至合并节点数量-1次后结束,所得到的边集即最小割集。将最小割集中的边从模块调用图中去除,即可以得到第一子图和第二子图,进而可以基于所得到的结果将目标代码划分为两部分来生成第一代码文件和第二代码文件。
在本申请实施例中,通过建立通过最小割集将模块调用图划分两部分,可以确保划分结果对于原本的目标代码的影响最小,有利于减小对原本目标代码的改动,降低错误率。
在本申请的一些实施例中,在以上实施例的基础上,包文件生成方法还可以包括以下步骤:
步骤S250.获取目标代码中含有的资源信息;
步骤S260.若确定资源信息对应的资源文件不存在,则触发资源告警提示。
在本实施例中,包文件生成装置对目标文件中的目标代码进行分析,进而获取目标代码中含有的资源信息。具体地,包文件生成装置可以根据编写目标代码所使用的编程语言,可以确定目标代码中引用外部资源所采用的引用方式,并且根据该引用方式检索目标代码,确定目标代码中含有的资源信息。
随后,包文件生成装置可以根据所获取到的资源信息,查找该资源文件是否存在。例如,根据引用的图片地址查找图片是否存在,或者根据引用的资源包名称确定该资源包在软件项目中是否存在等。若确定资源信息对应的资源文件不存在,则触发资源告警提示。具体地,包文件生成装置可以停止包文件生成,并向用户展示资源文件不存在的消息,并具体给出不存在的资源的名称、引用地址、错误文件名称和文件地址等信息。若包文件生成装置确定资源信息对应的资源文件存在,则可以继续进行包文件生成过程。
可以理解的是,虽然本实施例中针对目标文件进行描述,然而,在进行拆分的情况下,执行对象也可以是第一代码文件以及第二代码文件。
在本申请实施例中,通过获取目标代码中引用的外部资源的是否存在并且当确定引用的资源不存在时进行告警,可以避免生成包含错误的包文件,有利于提升所生成的包文件的稳定性。
在本申请的一些实施例中,在以上实施例的基础上,包文件生成方法还可以包括以下步骤:
步骤S270.根据预设的代码分析规则,分别对第一代码文件以及第二代码文件进行代码检查,生成第一代码文件对应的检查结果以及第二代码文件对应的检查结果。
在本实施例中,包文件生成装置根据预设的代码分析规则,分别对第一代码文件以及第二代码文件进行代码检查。具体地,代码分析规则可以包括错误类检查、警告类检查及提示类检查。错误类检测可以包括例如代码语法错误、乱码或者无法识别的符号等造成代码无法运行的错误。警告类检查可以包括例如忽略异常处理、变量或函数命不符合规范等可能影响代码可读性或后续问题处理的问题。提示类检查可以包括例如使用了旧版本的资源等不会影响代码后续运行和维护的问题。基于各类检查,将会生成对应的信息,例如错误信息、警告信息及提示信息。
根据对第一代码文件以及第二代码文件的代码检查结果,包文件生成装置可以生成第一代码文件对应的检查结果以及第二代码文件对应的检查结果。包文件生成装置可以将检查结果直接向用户展示,也可以将检查结果写入检查报告中提供给用户,以便用户进行后续的修改操作。其中,检查结果的不同,包文件生成装置也可以采取不同操作。例如,若检测结果中包括错误信息,则包文件生成装置可以停止包文件生成过程,而若检测结果中仅包括警告信息和提示信息,则包文件生成装置继续生成包文件。
可以理解的是,虽然本实施例中针对第一代码文件以及第二代码文件进行描述,然而,在未进行拆分的情况下,执行对象也可以是目标文件。
在本申请实施例中,根据预设的代码分析规则,分别对第一代码文件以及第二代码文件进行代码检查,及时提供用户目标文件中存在的各类不符合代码分析规则的问题,取出针对代码分析规则人工检查目标代码的必要,进一步降低代码检查的人力成本。
在本申请的一些实施例中,在以上实施例的基础上,上述步骤S270中对第一代码文件进行代码检查,可以包括一下步骤:
步骤S271.确定第一代码文件对应的代码注释信息占比;
步骤S272.若代码注释信息占比小于预设值,则生成告警提示消息,警告提示消息中含有第一代码文件的名称和文件位置。
在本实施例中,包文件生成装置确定第一代码文件对应的代码注释信息占比。具体地,包文件生成装置首先统计第一代码文件中所包括的所有字符的数量,并且根据编程语言的语法规则,获取第一代码文件中所包括的注释信息字符的数量,并根据注释信息字符的数量与所有字符的数量的比率确定代码注释信息占比。随后,包文件生成装置比较所确定的代码注释信息占比与预设值,其中,预设值的获取可以采用与行数阈值相同的获取方式,即通过读取配合文件的方式。包文件生成装置若确定代码注释信息占比小于预设值,则生成告警提示消息,告警提示消息中含有第一代码文件的名称和文件位置。告警提示信息可以通过显示器或邮件等方式展示给用户。
可以理解的是,虽然本实施例中针对第一代码文件进行描述,然而,取决于具体情况,执行对象可以是第一代码文件、第二代码文件或者目标文件中的一个或多个。
在本申请实施例中,通过检查代码文件中的注释信息占比,并且在注释信息占比低于预设值的情况下进行告警,有利于避免代码文件中注释过少而使得增加代码理解难度,提升代码可读性。
在本申请的一些实施例中,在以上实施例的基础上,上述步骤S210.获取目标文件,包括:
步骤S211.当检测到输入的文件获取指令时,根据文件获取指令中含有的入口信息,在软件项目所包含的文件目录中查找入口信息对应的入口文件;
步骤S212.从入口文件开始,在所文件目录中递归查找具有文件引用关系的各个文件;
步骤S213.将入口文件和递归查找到的文件作为多个目标文件,以生成各个目标文件对应的包文件。
在本实施例中,包文件生成装置当检测到输入的文件获取指令时,首先根据文件获取指令中含有的入口信息,在软件项目所包含的文件目录中查找入口信息对应的入口文件。其中,入口信息具体可以是软件项目中入口文件的文件名和地址。入口信息可以通过文件来获取,例如文件获取指令中携带含有入口信息的配置文件的文件地址,包文件生成装置根据文件地址获取配置文件并从中获取入口信息。入口文件通常为软件项目启动时需要执行的第一个代码文件,或者软件项目功能运行逻辑上的第一个操作步骤所对应的文件。在一个软件项目中可以存在一个或者多个入口文件。
从入口文件开始,包文件生成装置解析入口文件中对其他代码文件的引用关系并且查找入口文件引用的各个文件。随后再对所查找到的各个文件解析,确定各个文件所引用的且未被获取的其他代码文件。如此,根据文件之间的引用关系,递归地查找软件项目运行所涉及到的所有文件。所找到的文件即可以被认为是目标文件,每个目标文件分别被处理并生成对应的包文件。
在本申请实施例中,通过入口文件递归地查找到所有的目标文件,可以更加结构化地获取目标文件,避免包文件中包括不必要的文件和内容,有利于提高包文件的生成效率并且减小包文件的体积,提升包文件的加载效率。
应当注意,尽管在附图中以特定顺序描述了本申请中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
以下介绍本申请的装置实施,可以用于执行本申请上述实施例中的包文件生成方法。图3是本申请实施例中的包文件生成装置的组成框图。如图3所示,包文件生成装置300主要可以包括:
目标文件获取模块310,用于获取目标文件,目标文件中含有目标代码;
子文件获取模块320,用于若确定目标代码的语句行数大于行数阈值,则根据目标代码获取第一代码文件和第二代码文件,第一代码文件和第二代码文件含有目标代码中的部分代码,第一代码文件和第二代码文件所含有的代码用于共同实现目标代码对应的软件功能;
编译文件生成模块330,用于若确定第一代码文件和第二代码文件中含有的代码的语句行数均小于或等于行数阈值,根据第一代码文件生成第一编译文件,以及根据第二代码文件生成第二编译文件;
包文件生成模块340,用于根据第一编译文件和第二编译文件生成目标文件对应的包文件。
在本申请的一些实施例中,根据以上技术方案,子文件获取模块320包括:
调用关系确定单元,用于确定目标代码中含有的多个功能代码模块,以及确定多个功能代码模块之间的执行调用关系;
模块调用图生成单元,用于根据执行调用关系,生成模块调用图,模块调用图的边对应于功能代码模块之间的调用关系,边的权值对应于功能代码模块之间的调用次数;
模块调用图拆分单元,用于根据调用关系以及调用次数,将模块调用图拆分为第一子图和第二子图;
子文件生成单元,用于根据目标代码生成第一代码文件以及第二代码文件,第一代码文件中含有的代码内容对应于第一子图描述的功能代码模块之间的调用关系,第二代码文件中含有的代码内容对应于第一子图描述的功能代码模块之间的调用关系。
在本申请的一些实施例中,根据以上技术方案,模块调用图拆分单元包括:
最小割处理子单元,根据调用关系以及调用次数,对模块调用图进行最小割处理,得到模块调用图对应的最小割集;
去除子单元,用于从模块调用图中去除最小割集对应的边,得到第一子图和第二子图。
在本申请的一些实施例中,根据以上技术方案,包文件生成装置300还包括:
资源信息获取模块,用于获取目标代码中含有的资源信息;
资源告警提示触发模块,用于若确定资源信息对应的资源文件不存在,则触发资源告警提示。
在本申请的一些实施例中,根据以上技术方案,包文件生成装置300还包括:
代码检查模块,用于根据预设的代码分析规则,分别对第一代码文件以及第二代码文件进行代码检查,生成第一代码文件对应的检查结果以及第二代码文件对应的检查结果。
在本申请的一些实施例中,根据以上技术方案,代码检查模块包括:
注释信息占比确定单元,用于确定第一代码文件对应的代码注释信息占比;
告警提示消息生成单元,用于若代码注释信息占比小于预设值,则生成告警提示消息,警告提示消息中含有第一代码文件的名称和文件位置。
在本申请的一些实施例中,根据以上技术方案,目标文件获取模块310包括:
入口文件查找单元,用于当检测到输入的文件获取指令时,根据文件获取指令中含有的入口信息,在软件项目所包含的文件目录中查找入口信息对应的入口文件;
引用文件查找单元,用于从入口文件开始,在所文件目录中递归查找具有文件引用关系的各个文件;
目标文件查找单元,用于将入口文件和递归查找到的文件作为多个目标文件,以生成各个目标文件对应的包文件。
需要说明的是,上述实施例所提供的装置与上述实施例所提供的方法属于同一构思,其中各个模块执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。
图4是适于实现本申请实施例的包文件生成设备的计算机系统的结构示意图。
需要说明的是,图4示出的设备的计算机系统400仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图4所示,计算机系统400包括中央处理单元(Central Processing Unit,CPU)401,其可以根据存储在只读存储器(Read-Only Memory,ROM)402中的程序或者从储存部分408加载到随机访问存储器(Random Access Memory,RAM)403中的程序而执行各种适当的动作和处理。在RAM 403中,还存储有系统操作所需的各种程序和数据。CPU 401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(Input/Output,I/O)接口405也连接至总线404。
以下部件连接至I/O接口405:包括键盘、鼠标等的输入部分406;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分407;包括硬盘等的储存部分408;以及包括诸如LAN(Local Area Network,局域网)卡、调制解调器等的网络接口卡的通信部分409。通信部分409经由诸如因特网的网络执行通信处理。驱动器410也根据需要连接至I/O接口405。可拆卸介质411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器410上,以便于从其上读出的计算机程序根据需要被安装入储存部分408。
特别地,根据本申请的实施例,各个方法流程图中所描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分409从网络上被下载和安装,和/或从可拆卸介质411被安装。在该计算机程序被中央处理单元(CPU)401执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的根据硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本申请实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

Claims (10)

1.一种包文件生成方法,其特征在于,包括:
获取目标文件,所述目标文件中含有目标代码;
若确定所述目标代码的语句行数大于行数阈值,则根据所述目标代码获取第一代码文件和第二代码文件,所述第一代码文件和所述第二代码文件含有所述目标代码中的部分代码,所述第一代码文件和所述第二代码文件所含有的代码用于共同实现所述目标代码对应的软件功能;
若确定所述第一代码文件和所述第二代码文件中含有的代码的语句行数均小于或等于所述行数阈值,根据所述第一代码文件生成第一编译文件,以及根据所述第二代码文件生成第二编译文件;
根据所述第一编译文件和所述第二编译文件生成所述目标文件对应的包文件。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标代码获取第一代码文件和第二代码文件,包括:
确定所述目标代码中含有的多个功能代码模块,以及确定所述多个功能代码模块之间的执行调用关系;
根据所述执行调用关系,生成模块调用图,所述模块调用图的边对应于所述功能代码模块之间的调用关系,所述边的权值对应于所述功能代码模块之间的调用次数;
根据所述调用关系以及所述调用次数,将所述模块调用图拆分为第一子图和第二子图;
根据所述目标代码生成所述第一代码文件以及所述第二代码文件,所述第一代码文件中含有的代码内容对应于所述第一子图描述的功能代码模块之间的调用关系,所述第二代码文件中含有的代码内容对应于所述第一子图描述的功能代码模块之间的调用关系。
3.根据权利要求2所述的方法,其特征在于,根据所述调用关系以及所述调用次数,将所述模块调用图拆分为第一子图和第二子图,包括:
根据所述调用关系以及所述调用次数,对所述模块调用图进行最小割处理,得到所述模块调用图对应的最小割集;
从所述模块调用图中去除所述最小割集对应的边,得到所述第一子图和所述第二子图。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述目标代码中含有的资源信息;
若确定所述资源信息对应的资源文件不存在,则触发资源告警提示。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据预设的代码分析规则,分别对所述第一代码文件以及所述第二代码文件进行代码检查,生成所述第一代码文件对应的检查结果以及所述第二代码文件对应的检查结果。
6.根据权利要求5所述的方法,其特征在于,对所述第一代码文件进行代码检查,包括:
确定所述第一代码文件对应的代码注释信息占比;
若所述代码注释信息占比小于预设值,则生成告警提示消息,所述警告提示消息中含有所述第一代码文件的名称和文件位置。
7.根据权利要求1所述的方法,其特征在于,所述获取目标文件,包括:
当检测到输入的文件获取指令时,根据所述文件获取指令中含有的入口信息,在软件项目所包含的文件目录中查找所述入口信息对应的入口文件;
从所述入口文件开始,在所文件目录中递归查找具有文件引用关系的各个文件;
将所述入口文件和递归查找到的文件作为多个目标文件。
8.一种包文件生成装置,其特征在于,包括:
第一文件获取模块,用于获取目标文件,所述目标文件中含有目标代码;
第二文件获取模块,用于若确定所述目标代码的语句行数大于行数阈值,则根据所述目标代码获取第一代码文件和第二代码文件,所述第一代码文件和所述第二代码文件含有所述目标代码中的部分代码,所述第一代码文件和所述第二代码文件所含有的代码用于共同实现所述目标代码对应的软件功能;
编译文件生成模块,用于若确定所述第一代码文件和所述第二代码文件中含有的代码的语句行数均小于或等于所述行数阈值,根据所述第一代码文件生成第一编译文件,以及根据所述第二代码文件生成第二编译文件;
包文件生成模块,用于根据所述第一编译文件和所述第二编译文件生成所述目标文件对应的包文件。
9.一种包文件生成设备,其特征在于,包括:
存储器,存储有计算机可读指令;
处理器,读取存储器存储的计算机可读指令,以执行权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行权利要求1-7中任一项所述的方法。
CN202011042122.9A 2020-09-28 2020-09-28 包文件生成方法、装置、设备和计算机可读存储介质 Active CN112130862B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011042122.9A CN112130862B (zh) 2020-09-28 2020-09-28 包文件生成方法、装置、设备和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011042122.9A CN112130862B (zh) 2020-09-28 2020-09-28 包文件生成方法、装置、设备和计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN112130862A true CN112130862A (zh) 2020-12-25
CN112130862B CN112130862B (zh) 2024-04-05

Family

ID=73844283

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011042122.9A Active CN112130862B (zh) 2020-09-28 2020-09-28 包文件生成方法、装置、设备和计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN112130862B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114091907A (zh) * 2021-11-23 2022-02-25 中国银行股份有限公司 业务流程定制方法及装置
CN114721715A (zh) * 2022-04-08 2022-07-08 中国银行股份有限公司 代码规范性检查的方法、装置、设备、存储介质和产品

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070283325A1 (en) * 2006-06-02 2007-12-06 Abhishek Kumar Quality inspector tool
US20160188304A1 (en) * 2014-12-24 2016-06-30 International Business Machines Corporation Execution optimization of mobile applications
CN110990020A (zh) * 2019-11-24 2020-04-10 苏州浪潮智能科技有限公司 一种软件编译方法、装置及电子设备和存储介质
CN111258562A (zh) * 2020-01-13 2020-06-09 中国平安财产保险股份有限公司 Java代码质量检查方法、装置、设备和存储介质
CN111475196A (zh) * 2020-03-30 2020-07-31 杭州迪普信息技术有限公司 编译告警溯源方法、装置、电子设备及计算机可读介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070283325A1 (en) * 2006-06-02 2007-12-06 Abhishek Kumar Quality inspector tool
US20160188304A1 (en) * 2014-12-24 2016-06-30 International Business Machines Corporation Execution optimization of mobile applications
CN110990020A (zh) * 2019-11-24 2020-04-10 苏州浪潮智能科技有限公司 一种软件编译方法、装置及电子设备和存储介质
CN111258562A (zh) * 2020-01-13 2020-06-09 中国平安财产保险股份有限公司 Java代码质量检查方法、装置、设备和存储介质
CN111475196A (zh) * 2020-03-30 2020-07-31 杭州迪普信息技术有限公司 编译告警溯源方法、装置、电子设备及计算机可读介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
蒋烈辉;周博;费勤福;何红旗;韩小琨;: "反汇编结果代码结构分析算法研究", 小型微型计算机系统, no. 06 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114091907A (zh) * 2021-11-23 2022-02-25 中国银行股份有限公司 业务流程定制方法及装置
CN114721715A (zh) * 2022-04-08 2022-07-08 中国银行股份有限公司 代码规范性检查的方法、装置、设备、存储介质和产品

Also Published As

Publication number Publication date
CN112130862B (zh) 2024-04-05

Similar Documents

Publication Publication Date Title
US20210319173A1 (en) Determining syntax parse trees for extracting nested hierarchical structures from text data
CN108776696B (zh) 节点配置方法及装置、存储介质和电子设备
US20120130977A1 (en) Dynamic language checking
CN112130862B (zh) 包文件生成方法、装置、设备和计算机可读存储介质
CN110688096B (zh) 包含插件的应用程序的构建方法、装置、介质及电子设备
CN109871251B (zh) 一种响应数据的处理方法、装置、存储介质及终端设备
CN111079408A (zh) 一种语种识别方法、装置、设备及存储介质
CN114115904B (zh) 信息处理方法、装置、服务器及存储介质
CN111881183B (zh) 企业名称匹配方法和装置、以及存储介质和电子设备
CN114138244A (zh) 模型类文件自动生成方法、装置、存储介质及电子设备
CN115237436A (zh) 应用部署方法、装置、电子设备及可读存储介质
CN113448852A (zh) 一种测试案例的获取方法、装置、电子设备及存储介质
CN110505289B (zh) 文件下载方法及装置、计算机可读介质、无线通信设备
CN116737693A (zh) 数据迁移方法及装置、电子设备和计算机可读存储介质
CN116010499A (zh) 一种确定解析规则的方法、装置及电子设备
CN113141407B (zh) 一种页面资源加载方法、装置和电子设备
CN115146070A (zh) 键值生成方法、知识图谱生成方法、装置、设备及介质
CN109783134B (zh) 前端页面配置方法、装置及电子设备
CN114490400A (zh) 一种处理测试用例的方法和装置
CN114116268A (zh) Flink SQL语句的校验方法、装置、计算机设备和存储介质
CN115729552A (zh) 算子级别的并行度的设置方法及其装置
US20240296145A1 (en) Representing and using metadata via the use of graph database
CN118193577A (zh) 数据处理方法和装置、电子设备、计算机可读存储介质
CN115934151A (zh) 多端小程序构建的方法和装置
CN113703760A (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
GR01 Patent grant
GR01 Patent grant