CN113867714A - 一种适配多语言的自动代码生成方法 - Google Patents

一种适配多语言的自动代码生成方法 Download PDF

Info

Publication number
CN113867714A
CN113867714A CN202111120313.7A CN202111120313A CN113867714A CN 113867714 A CN113867714 A CN 113867714A CN 202111120313 A CN202111120313 A CN 202111120313A CN 113867714 A CN113867714 A CN 113867714A
Authority
CN
China
Prior art keywords
code
file
generation
component
steps
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
CN202111120313.7A
Other languages
English (en)
Other versions
CN113867714B (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.)
Anhui Jieyu Information Technology Co ltd
Original Assignee
Anhui Jieyu Information 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 Anhui Jieyu Information Technology Co ltd filed Critical Anhui Jieyu Information Technology Co ltd
Priority to CN202111120313.7A priority Critical patent/CN113867714B/zh
Priority claimed from CN202111120313.7A external-priority patent/CN113867714B/zh
Publication of CN113867714A publication Critical patent/CN113867714A/zh
Application granted granted Critical
Publication of CN113867714B publication Critical patent/CN113867714B/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/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0486Drag-and-drop

Landscapes

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

Abstract

本发明公开了一种适配多语言的自动代码生成方法,涉及代码开发技术领域,包括以下步骤:预先为指定技术栈创建编程原型,实现快速生成具体业务场景项目源码,并基于项目源码创建当前开发语言需要的原型文件ModelFile,基于原型文件ModelFile完成最后开发语言的单个代码文件的组装元件并进行可视化组装,其中所述组装元件包括生成组件Com。本发明可通过预设置和可视拖拽完成的单文件和完整项目代码生成方式,将不同功能的编程语言的代码技术实现抽象为不同粒度的组件,组件以属性方式实现一个组件在不同需求场景下的灵活应用方式,提高代码开发效率和降低代码开发难度,以及有效缩短项目进度,节约项目成本和降低维护门槛。

Description

一种适配多语言的自动代码生成方法
技术领域
本发明涉及代码开发技术领域,具体来说,涉及一种适配多语言的自动代码生成方法。
背景技术
全球已深入进入信息化时代,信息化软件编程的需求量很大,而绝大部分软件开发仍然还是通过人力完成,而人力缺口大,能力参差不齐,导致软件编程的标准化程度较低,开发的软件质量与开发人员的能力关联性很大,因此对于大部分标准化程度较高的软件开发,迫切需要经过方法论证过的标准化的自动化生成方式,保持较高的标准化和自动化以解决现实开发过程中的人员配备不全,人员能力、知识边界有限,人员频繁流动等等导致的项目生产力低下,运维困难问题。
目前市面上的代码生成工具都是针对特定的场景、特定的架构,甚至特定的业务才能达到生成代码的效果。为了能更好的适应项目架构,代码生成器功能拓展也显得尤为重要,而对于代码生成器中的“代码段”是工程师预先写好的,这意味着工程师要预先判定用户会输入哪些“字符串”,由于海量的用户会有海量的差异化需求,因此,这些方法显然不符合需求的差异化趋势。
检索中国发明专利CN102707948 A公开了一种源代码生成方法,包括以下步骤:步骤S1,在数据库中存储字符串个例、与所述字符串个例对应的字符串通例以及与所述字符串通例对应的代码段通例,其中,所述字符串个例为字符串通例的子集;步骤S2,在所述数据库中检索与外围输入的字符串匹配的字符串个例,若检索得到该字符串个例,则执行步骤S3,否则返回执行所述步骤S1;步骤S3,在所述数据库中检索得到与所述步骤S2中获得的字符串个例对应的字符串通例,并比较该字符串个例和字符串通例,生成该字符串个例和字符串通例的第一映射关系。可以使自然语言字符串自动生成代码段,从而减少软件开发工作量,满足用户的多种使用需求。但其仍存在代码生成较为繁琐,而且不能适应不同需求场景的开发需求,且存在项目生产力低下,运维困难问题。
针对相关技术中的问题,目前尚未提出有效的解决方案。
发明内容
针对相关技术中的问题,本发明提出一种适配多语言的自动代码生成方法,通过预先基于业务场景获取生成代码需要的原数据信息,并作为代码自动化生成输出,运行独立服务Service,并基于业务场景创建当前开发语言需要的原型文件ModelFile完成最后开发语言的单个代码文件的组装元件并进行可视化组装,以克服现有相关技术所存在的上述技术问题。
本发明的技术方案是这样实现的:
一种适配多语言的自动代码生成方法,包括以下步骤:
步骤S1,预先为指定技术栈创建编程原型,实现快速生成具体业务场景项目源码;
步骤S2,并基于项目源码创建当前开发语言需要的原型文件ModelFile;
步骤S3,基于原型文件ModelFile完成最后开发语言的单个代码文件的组装元件并进行可视化组装,其中所述组装元件包括生成组件Com。
其中,所述原型文件ModelFile,还包括以下步骤:
进行功能标签预设。
其中,所述生成组件Com,包括以下步骤:
步骤S301,基于业务场景生成原子组件,其中所述原子组件至少包括代码段和属性Pro;
步骤S302,基于所述原子组件适配单元Unit,并生成应用组件;
步骤S303,标定当前业务场景的文件组件,并预置代码文件进行生成。
其中,所述原子组件,包括以下步骤:
基于原子组件进行组装,获取应用组件,其中包括对所述原子组件进行多个应用组件复用。
其中,所述应用组件,还包括以下步骤:
将生成的所述应用组件进行拖拽或通过配置自动化预置入文件组件中。
其中,所述文件组件,包括以下步骤:
将获取的应用组件汇入Json数据序列,完成代码文件生成。
本发明的有益效果:
本发明适配多语言的自动代码生成方法,通过预先基于业务场景获取生成代码需要的原数据信息,并作为代码自动化生成输出,运行独立服务Service,并基于业务场景创建当前开发语言需要的原型文件ModelFile完成最后开发语言的单个代码文件的组装元件并进行可视化组装,实现适配多语言的自动代码生成,不仅可通过预设置和可视拖拽完成的单文件和完整项目代码生成方式,将不同功能的编程语言的代码技术实现抽象为不同粒度的组件,组件以属性方式实现一个组件在不同需求场景下的灵活应用方式,提高代码开发效率和降低代码开发难度,以及有效缩短项目进度,节约项目成本和降低维护门槛。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的一种适配多语言的自动代码生成方法的流程示意图一;
图2是根据本发明实施例的一种适配多语言的自动代码生成方法的流程示意图二。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
根据本发明的实施例,提供了一种适配多语言的自动代码生成方法。
如图1-图2所示,根据本发明实施例的适配多语言的自动代码生成方法,包括以下步骤:
步骤S1,预先为指定技术栈创建编程原型,实现快速生成具体业务场景项目源码;
步骤S2,并基于项目源码创建当前开发语言需要的原型文件ModelFile;
步骤S3,基于原型文件ModelFile完成最后开发语言的单个代码文件的组装元件并进行可视化组装,其中所述组装元件包括生成组件Com。
其中,所述原型文件ModelFile,还包括以下步骤:
进行功能标签预设。
其中,所述生成组件Com,包括以下步骤:
步骤S301,基于业务场景生成原子组件,其中所述原子组件至少包括代码段和属性Pro;
步骤S302,基于所述原子组件适配单元Unit,并生成应用组件;
步骤S303,标定当前业务场景的文件组件,并预置代码文件进行生成。
其中,所述原子组件,包括以下步骤:
基于原子组件进行组装,获取应用组件,其中包括对所述原子组件进行多个应用组件复用。
其中,所述应用组件,还包括以下步骤:
将生成的所述应用组件进行拖拽或通过配置自动化预置入文件组件中。
其中,所述文件组件,包括以下步骤:
将获取的应用组件汇入Json数据序列,完成代码文件生成。
借助于上述技术方案,通过配置和可视拖拽完成的单文件和完整项目代码生成方式,而且可通过组件抽象不同功能的编程语言的代码技术实现、以属性方式实现组件不同需求场景下的灵活复用方式,提高代码开发效率和降低代码开发难度。
另外,具体的,对于上述原子组件来说,其通过将某种语言的各种技术实现抽象为原子组件,某种技术实现的代码段在组件中以原子形式存在,以属性Pro(属性类:Properties)来实现代码的可变与创造性,从而自适应生成各种需求的代码段,代码段只是一小段满足某个功能的代码,一个软件往往由数以万计的功能代码段+逻辑混合而成。
另外,对于文件组件来说,混合工作由更高组别的文件组件来合成,文件组件最终可以生成代码设计文件,一个软件由N多个代码文件构成,这些代码文件被称为代码设计文件,代码设计文件是一个基于json数据(JSON数据类型)的可视化文件,支持可视化配置和拖拽操作,代码设计文件可以通过用户拖拽来实现也可以由系统预设功能来自动化合成;当代码设计文件合成完成后即可自动生成代码。
此外,自动化生成的代码包括项目必须的全部文件,以JavaWeb项目为例:可生成html,js,css,java,xml,pom,json等文件,并自动合成为标准项目架构(例maven项目架构)。项目代码生成后可以在IDE中完整导入并运行,如同人工创建的项目源码和结构一样。
具体的,如图2所示,在应用时,包括以下步骤:
预先创建了一个自动化代码生成模型平台(以下简称“Model”)。Model是一套生产系统,由数据库统一管理生成代码需要的原数据信息,所有代码自动化生成均由Model输出。
Model为某种开发语言建立独立的服务Service,每个服务Service创建当前开发语言需要生产的各种原型文件ModelFile,原型文件ModelFile完成最后开发语言的单个代码文件。
原型文件ModelFile是自动化代码生成的组装工厂,所有文件的代码生成均在此完成可视化组装工作,组装的元件为组件Com。
此外,对于上述组件Com来说,其组件Com是不同的代码组件,具体如下:
1)原子组件:原子组件为最小粒度的代码片断,一般为单个技术代码单元或业务场景单元,由属性对代码进行变量参数化,从而实现技术代码单元或业务单元的可变性和自适应性,原子组件不被直接使用,需要由应用组件来对其进行组装,原子组件可以被多个应用组件复用,从而实现原子组件的高复用去适应和生成更多的软件需求代码。
2)应用组件:应用组件为生成代码时直接被使用的组件,使用方式为拖拽使用或通过配置自动化预置入文件中。应用组件由若干个单元Unit构成,每个Unit是一个容器,Unit中装入一个原子组件,自动生成代码最终由原子组件完成。
3)文件组件:文件组件是一个代码文件级容器,里面放置应用组件,应用组件最终汇入一个Json数据序列,完成代码文件生成。
综上所述,借助于本发明的上述技术方案,通过预先基于业务场景获取生成代码需要的原数据信息,并作为代码自动化生成输出,运行独立服务Service,并基于业务场景创建当前开发语言需要的原型文件ModelFile完成最后开发语言的单个代码文件的组装元件并进行可视化组装,实现适配多语言的自动代码生成,不仅可通过预设置和可视拖拽完成的单文件和完整项目代码生成方式,将不同功能的编程语言的代码技术实现抽象为不同粒度的组件,组件以属性方式实现一个组件在不同需求场景下的灵活应用方式,提高代码开发效率和降低代码开发难度,以及有效缩短项目进度,节约项目成本和降低维护门槛。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,本领域技术人员在考虑说明书及实施例处的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (6)

1.一种适配多语言的自动代码生成方法,其特征在于,包括以下步骤:
预先为指定技术栈创建编程原型,实现快速生成具体业务场景项目源码;
并基于项目源码创建当前开发语言需要的原型文件ModelFile;
基于原型文件ModelFile完成最后开发语言的单个代码文件的组装元件并进行可视化组装,其中所述组装元件包括生成组件Com。
2.根据权利要求1所述的适配多语言的自动代码生成方法,其特征在于,所述原型文件ModelFile,还包括以下步骤:
进行功能标签预设。
3.根据权利要求2所述的适配多语言的自动代码生成方法,其特征在于,所述生成组件Com,包括以下步骤:
基于业务场景生成原子组件,其中所述原子组件至少包括代码段和属性Pro;
基于所述原子组件适配单元Unit,并生成应用组件;
标定当前业务场景的文件组件,并预置代码文件进行生成。
4.根据权利要求3所述的适配多语言的自动代码生成方法,其特征在于,所述原子组件,包括以下步骤:
基于原子组件进行组装,获取应用组件,其中包括对所述原子组件进行多个应用组件复用。
5.根据权利要求4所述的适配多语言的自动代码生成方法,其特征在于,所述应用组件,还包括以下步骤:
将生成的所述应用组件进行拖拽或通过配置自动化预置入文件组件中。
6.根据权利要求5所述的适配多语言的自动代码生成方法,其特征在于,所述文件组件,包括以下步骤:
将获取的应用组件汇入Json数据序列,完成代码文件生成。
CN202111120313.7A 2021-09-24 一种适配多语言的自动代码生成方法 Active CN113867714B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111120313.7A CN113867714B (zh) 2021-09-24 一种适配多语言的自动代码生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111120313.7A CN113867714B (zh) 2021-09-24 一种适配多语言的自动代码生成方法

Publications (2)

Publication Number Publication Date
CN113867714A true CN113867714A (zh) 2021-12-31
CN113867714B CN113867714B (zh) 2024-06-04

Family

ID=

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113867713A (zh) * 2021-09-24 2021-12-31 安徽杰予信息科技有限公司 一种基于零代码开发的可视生产力工具平台

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101446895A (zh) * 2008-12-18 2009-06-03 浙江大学 基于语法重构的代码级构件组装方法
KR20150099159A (ko) * 2014-02-21 2015-08-31 주식회사 넥스다임 애플리케이션 개발 환경 제공 방법
CN105094773A (zh) * 2014-05-09 2015-11-25 阿里巴巴集团控股有限公司 模块功能的重用方法及系统
CN105607902A (zh) * 2015-12-16 2016-05-25 苏州同元软控信息技术有限公司 基于构件模型的系统可视化设计及代码生成系统及方法
CN109976732A (zh) * 2017-12-28 2019-07-05 重庆南华中天信息技术有限公司 可将相同编程模型映射成不同语言代码程序的方法及系统
CN110874508A (zh) * 2019-11-12 2020-03-10 北京环境特性研究所 一种仿真场景构建方法和装置
CN110955410A (zh) * 2019-10-23 2020-04-03 山东中创软件工程股份有限公司 一种代码自动生成方法、装置、设备及介质
CN112685026A (zh) * 2020-12-25 2021-04-20 厦门渊亭信息科技有限公司 一种基于多语言的可视化建模平台和方法
CN112860234A (zh) * 2021-01-18 2021-05-28 北京神州数字科技有限公司 一种前端页面代码生成方法及系统
CN112860247A (zh) * 2021-02-09 2021-05-28 恒安嘉新(北京)科技股份公司 一种模型组件的自定义生成方法、装置、设备及介质
CN113239672A (zh) * 2021-05-18 2021-08-10 北京京东振世信息技术有限公司 目标文件编辑方法及装置、电子设备、存储介质

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101446895A (zh) * 2008-12-18 2009-06-03 浙江大学 基于语法重构的代码级构件组装方法
KR20150099159A (ko) * 2014-02-21 2015-08-31 주식회사 넥스다임 애플리케이션 개발 환경 제공 방법
CN105094773A (zh) * 2014-05-09 2015-11-25 阿里巴巴集团控股有限公司 模块功能的重用方法及系统
CN105607902A (zh) * 2015-12-16 2016-05-25 苏州同元软控信息技术有限公司 基于构件模型的系统可视化设计及代码生成系统及方法
CN109976732A (zh) * 2017-12-28 2019-07-05 重庆南华中天信息技术有限公司 可将相同编程模型映射成不同语言代码程序的方法及系统
CN110955410A (zh) * 2019-10-23 2020-04-03 山东中创软件工程股份有限公司 一种代码自动生成方法、装置、设备及介质
CN110874508A (zh) * 2019-11-12 2020-03-10 北京环境特性研究所 一种仿真场景构建方法和装置
CN112685026A (zh) * 2020-12-25 2021-04-20 厦门渊亭信息科技有限公司 一种基于多语言的可视化建模平台和方法
CN112860234A (zh) * 2021-01-18 2021-05-28 北京神州数字科技有限公司 一种前端页面代码生成方法及系统
CN112860247A (zh) * 2021-02-09 2021-05-28 恒安嘉新(北京)科技股份公司 一种模型组件的自定义生成方法、装置、设备及介质
CN113239672A (zh) * 2021-05-18 2021-08-10 北京京东振世信息技术有限公司 目标文件编辑方法及装置、电子设备、存储介质

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
M. EGEA等: "SQL-PL4OCL: An Automatic Code Generator from OCL to SQL Procedural Language", 《2017 ACM/IEEE 20TH INTERNATIONAL CONFERENCE ON MODEL DRIVEN ENGINEERING LANGUAGES AND SYSTEMS (MODELS)》, 22 December 2017 (2017-12-22), pages 54 - 54 *
ZERO_NO1: "Java-Web开发自动生成代码", pages 1 - 7, Retrieved from the Internet <URL:《https://blog.csdn.net/zero_no1/article/details/86476438》> *
廖浩德: "业务组件与计算机应用程序的自动生成——"CallCenter业务组件与软件生成项目"研究思路与实现技术", 《福建电脑》, no. 05, 31 May 2007 (2007-05-31), pages 68 *
张晶等: "基于业务模型和界面模型的代码生成工具", 《电脑与信息技术》, vol. 24, no. 02, 30 April 2016 (2016-04-30), pages 1 - 5 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113867713A (zh) * 2021-09-24 2021-12-31 安徽杰予信息科技有限公司 一种基于零代码开发的可视生产力工具平台

Similar Documents

Publication Publication Date Title
CN113034095B (zh) 结合rpa和ai的人机互动方法、装置、存储介质及电子设备
CN100543701C (zh) 一种实现嵌入式软件异常测试的方法及系统
CN109542556B (zh) 一种基于Activiti的流程与表单交互方法及系统
US8713526B2 (en) Assigning runtime artifacts to software components
US20240045850A1 (en) Systems and methods for database orientation transformation
US20100281463A1 (en) XML based scripting framework, and methods of providing automated interactions with remote systems
CN108845940B (zh) 一种企业级信息系统自动化功能测试方法和系统
CN104778124A (zh) 一种软件应用自动化测试方法
US20090144703A1 (en) Method and system for versioning a software system
CN111399853A (zh) 机器学习模型与自定义算子的模板化部署方法
CN110109671B (zh) 一种webpack标签尺寸样式转换方法及装置
CN107479866B (zh) 基于重构技术实现开放终端应用数据与功能的方法
CN111580786B (zh) 基于互联网+的软件工程开发系统
CN111208995A (zh) Ibm主机作业的自动生成方法、系统、装置及存储介质
CN115469860B (zh) 基于指令集的需求到软件领域模型的自动生成方法及系统
CN111966350A (zh) Web前端界面生成方法及装置
CN113867714A (zh) 一种适配多语言的自动代码生成方法
CN113867714B (zh) 一种适配多语言的自动代码生成方法
CN104731900A (zh) 一种Hive调度方法及装置
CN114706738A (zh) 客户端自动埋点的方法及装置
CN113885844A (zh) 一种业务服务编排方法及相关装置
CN114356430A (zh) 一种基于airflow调度系统的DAG依赖配置工具
CN112418796A (zh) 子流程节点激活方法、装置、电子设备及存储介质
US20210021464A1 (en) Generating application-server provisioning configurations
CN116225441B (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