CN109976732A - 可将相同编程模型映射成不同语言代码程序的方法及系统 - Google Patents
可将相同编程模型映射成不同语言代码程序的方法及系统 Download PDFInfo
- Publication number
- CN109976732A CN109976732A CN201711465048.XA CN201711465048A CN109976732A CN 109976732 A CN109976732 A CN 109976732A CN 201711465048 A CN201711465048 A CN 201711465048A CN 109976732 A CN109976732 A CN 109976732A
- Authority
- CN
- China
- Prior art keywords
- programming model
- code
- generator
- different language
- mapped
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000013507 mapping Methods 0.000 claims abstract description 11
- 238000011161 development Methods 0.000 abstract description 11
- 230000000007 visual effect Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 4
- 238000011017 operating method Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000012800 visualization Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/22—Procedural
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种可将相同编程模型映射成不同语言代码程序的方法及系统,该方法包括:创建编程模型,并将编程模型序列化为XML文件与业务数据对象;该编程模型为生成语言代码的生成器提供数据来源;可视化操作编程模型;读取编程模型数据;加载生成器配置文件;根据生成器配置文件,加载前端生成器、后端生成器、网页生成器;根据统一标准的映射生成不同语言的代码。本发明通过相同的编程模型与可视化操作建立前后端模型的关联关系,解决了前后端自动关联问题;并将前端与后端业务逻辑分离,使开发人员更专注于业务开发;通过统一的映射模版实现不同语言的代码生成,形成了统一规范的开发模式;降低了项目开发复杂度,提升了开发效率,节约了开发成。
Description
技术领域
本发明涉及根据编程模型生成语言代码的程序生成技术领域,尤其涉及一种可将相同编程模型映射成不同语言代码程序的方法及系统。
背景技术
在现在已有的根据编程模型生成代码的程序生成技术中,大多是生成针对性强的单一的编程语言,虽然提高了开发效率,但无法满足像软件开发这样要求前端后台多语言结合的开发需求,在实现前后交互时,需要手动关联前后端代码,产生许多重复的工作量。现有专利申请“一种编程友好型的敏捷代码自动生成系统”,虽然解决了代码生成器局限性大,扩展性差的问题,其基于多代码模板的代码生成与具体代码的解耦,降低了代码耦合度,提高了扩展性,可以很好地满足定制化需求,极大地缩短了开发周期。但现有技术不能完全满足软件开发的需求;不能解决前后端自动关联,实现进一步的解耦和分层;不能实现不同语言的代码生成;不能根据业务逻辑对代码进一步的分层。现有技术没有规范开发模式,开发人员不能更专注于业务。人力成本得不到进一步的降低,工作量也不能进一步减少。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种可将相同编程模型映射成不同语言代码程序的方法及系统,用于解决在软件开发过程中,涉及到多种开发语言的问题。
为实现上述目的及其他相关目的,本发明提供一种可将相同编程模型映射成不同语言代码程序的方法,该方法包括:
创建编程模型,并将编程模型序列化为XML文件与业务数据对象;该编程模型为生成语言代码的生成器提供数据来源;
可视化操作编程模型;
读取编程模型数据;
加载生成器配置文件;
根据生成器配置文件,加载前端生成器、后端生成器、网页生成器;
根据统一标准的映射生成不同语言的代码。
优选地,在创建编程模型步骤中,创建的是一个与语言无关的编程模型。
优选地,所述前端生成器根据编程模型数据与前端生成器配置文件生成前端JavaScript代码。
优选地,所述后端生成器根据编程模型数据与后端生成器配置文件生成后端逻辑接口Java代码、后端逻辑Java代码、控制层Java代码。
优选地,所述网页生成器根据编程模型与网页配置文件生成网页JSF代码。
为实现上述目的及其他相关目的,本发明还提供一种可将相同编程模型映射成不同语言代码程序的系统,该系统包括:
编程模型创建模块,用于创建编程模型,并将编程模型序列化为XML文件与业务数据对象,所述的编程模型为生成语言代码的生成器提供数据来源;
操作模块,用于可视化操作编程模型;
读取模块,用于读取编程模型数据;
加载模块,用于加载生成器配置文件,并根据生成器配置文件加载前端生成器、后端生成器和网页生成器;
代码生成模块,用于根据统一标准的映射生成不同语言的代码。
优选地,所述编程模型创建模块创建的是一个与语言无关的编程模型。
优选地,所述前端生成器根据编程模型数据与前端生成器配置文件生成前端JavaScript代码。
优选地,所述后端生成器根据编程模型数据与后端生成器配置文件生成后端逻辑接口Java代码、后端逻辑Java代码、控制层Java代码。
优选地,所述网页生成器根据编程模型与网页配置文件生成网页JSF代码。
如上所述,本发明的一种可将相同编程模型映射成不同语言代码程序的方法及系统,具有以下有益效果:
本发明通过相同的编程模型与可视化操作建立前后端模型的关联关系,解决了前后端自动关联问题,通过分层的思想实现进一步的解耦与分层;并将前端与后端业务逻辑分离,使开发人员更专注于业务开发;通过统一的映射模版实现不同语言的代码生成,形成了统一规范的开发模式;降低了项目开发复杂度,提升了开发效率,节约了开发成。
附图说明
图1显示为本发明的一种可将相同编程模型映射成不同语言代码程序的方法流程图。
具体实施方式
以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效。
请参阅图1。须知,本说明书所附图式所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容得能涵盖的范围内。同时,本说明书中所引用的如“上”、“下”、“左”、“右”、“中间”及“一”等的用语,亦仅为便于叙述的明了,而非用以限定本发明可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本发明可实施的范畴。
在对本实施例的技术方案进行说明之前,先对几个技术术语进行解释:
编程模型,即软件开发过程中遇到相似问题时的依赖模板。
程序生成技术,即根据可视化编辑器生成源代码的代码生成技术。
不同语言,即应用于前端或者后端的不同编程语言。
实施例一
在本发明实施例一中,通过创建一个模型实例,根据实施例的业务需求编辑模型,并配置其相关的映射,以达到底层生成技术根据模型与映射生成不同语言代码的效果。
具体地,请参阅图1,本发明提供一种可将相同编程模型映射成不同语言代码程序的方法,该方法包括:
步骤S01,创建一个与语言无关的编程模型,并将编程模型序列化为XML文件与业务数据对象;
步骤S02,通过可视化界面编辑编程模型,编程模型为生成语言代码的生成器提供数据来源;
步骤S03,读取编程模型数据;
步骤S04,加载生成器配置文件;
步骤S05,根据生成器配置文件,加载前端生成器、后端生成器、网页生成器;
于本实施例中,所述前端生成器根据编程模型数据与前端生成器配置文件生成前端JavaScript代码。
具体地,在可视化的编程模型界面中,通过双击编程模型的前端事件属性实例,跳转到前端语言编辑界面,在双击的同时,前端生成器会在JS层中根据当前实例创建一个默认的前端方法,然后操作方法名,参数,方法体。
于本实施例中,所述后端生成器根据编程模型数据与后端生成器配置文件生成后端逻辑接口Java代码、后端逻辑Java代码、控制层Java代码。
具体地,在可视化的编程模型界面中,通过双击编程模型的后端事件属性实例,跳转到控制层语言编辑界面,在双击的同时,后端生成器会在控制层根据当前实例创建一个默认的前端方法,然后操作方法名,参数,方法体。在可视化的编程模型界面中,通过在编程模型界面创建编程模型的业务逻辑关系,后端生成器会在业务逻辑层生成业务逻辑方法。
于本实施例中,所述网页生成器根据编程模型与网页配置文件生成网页JSF代码。
具体地,网页生成器是一个较复杂的生成器,它将生成编程模型与各层次相关联的代码,并会根据编程模型的层次结构生成HTML代码。
步骤S06,最后用于根据统一标准的映射生成不同语言的代码,将S01-S05步中的产物整合成一个可运行的网页代码。
在本发明实施例一中,拥有合同编号、合同名称、合同类型、邮箱、联系人等字段以及一个业务数据对象。通过可视化的操作配置每一个字段模型与前端,控制层,页面模型,业务逻辑层的交互。最后生成技术通过读取编程模型,获取编程模型数据;通过加载生成器配置文件,加载相应技术语言生成器,如:前端生成器、后端生成器、网页生成器等;通过生成器生成不同的语言代码,以达到一种可将语言无关的编程模型映射成不同语言代码的效果。
实施例二
本发明还提供一种可将相同编程模型映射成不同语言代码程序的系统,该系统包括:
编程模型创建模块,用于创建编程模型,并将编程模型序列化为XML文件与业务数据对象,所述的编程模型为生成语言代码的生成器提供数据来源;
操作模块,用于可视化操作编程模型;所述编程模型创建模块创建的是一个与语言无关的编程模型。
读取模块,用于读取编程模型数据;
加载模块,用于加载生成器配置文件,并根据生成器配置文件加载前端生成器、后端生成器和网页生成器。
具体地,所述前端生成器根据编程模型数据与前端生成器配置文件生成前端JavaScript代码;所述后端生成器根据编程模型数据与后端生成器配置文件生成后端逻辑接口Java代码、后端逻辑Java代码、控制层Java代码;所述网页生成器根据编程模型与网页配置文件生成网页JSF代码。
代码生成模块,用于根据统一标准的映射生成不同语言的代码。
另一方面,本实施例所述的一种可将相同编程模型映射成不同语言代码程序的系统,还可分为可视化层、控制层、业务逻辑层和表现层;其中可视化层作为编程模型操作的入口;控制层为前端与后端的逻辑交互类;业务逻辑层为后端实现具体业务的业务逻辑类;表现层为实现一个网页功能的网页文件。
在可视化的编程模型界面中,通过双击编程模型的前端事件属性实例,跳转到前端语言编辑界面,在双击的同时,前端生成器会在JS层中根据当前实例创建一个默认的前端方法,然后操作方法名,参数,方法体。
在可视化的编程模型界面中,通过双击编程模型的后端事件属性实例,跳转到控制层语言编辑界面,在双击的同时,后端生成器会在控制层根据当前实例创建一个默认的前端方法,然后操作方法名,参数,方法体。
在可视化的编程模型界面中,通过在编程模型界面创建编程模型的业务逻辑关系,后端生成器会在业务逻辑层生成业务逻辑方法。
网页生成器是一个较复杂的生成器,它将生成编程模型与各层次相关联的代码,并会根据编程模型的层次结构生成HTML代码。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (10)
1.一种可将相同编程模型映射成不同语言代码程序的方法,其特征在于,该方法包括:
创建编程模型,并将编程模型序列化为XML文件与业务数据对象;该编程模型为生成语言代码的生成器提供数据来源;
可视化操作编程模型;
读取编程模型数据;
加载生成器配置文件;
根据生成器配置文件,加载前端生成器、后端生成器、网页生成器;
根据统一标准的映射生成不同语言的代码。
2.根据权利要求1所述的一种可将相同编程模型映射成不同语言代码程序的方法,其特征在于,在创建编程模型步骤中,创建的是一个与语言无关的编程模型。
3.根据权利要求1所述的一种可将相同编程模型映射成不同语言代码程序的方法,其特征在于:所述前端生成器根据编程模型数据与前端生成器配置文件生成前端JavaScript代码。
4.根据权利要求1所述的一种可将相同编程模型映射成不同语言代码程序的方法,其特征在于:所述后端生成器根据编程模型数据与后端生成器配置文件生成后端逻辑接口Java代码、后端逻辑Java代码、控制层Java代码。
5.根据权利要求1所述的一种可将相同编程模型映射成不同语言代码程序的方法,其特征在于:所述网页生成器根据编程模型与网页配置文件生成网页JSF代码。
6.一种可将相同编程模型映射成不同语言代码程序的系统,其特征在于,该系统包括:
编程模型创建模块,用于创建编程模型,并将编程模型序列化为XML文件与业务数据对象,所述的编程模型为生成语言代码的生成器提供数据来源;
操作模块,用于可视化操作编程模型;
读取模块,用于读取编程模型数据;
加载模块,用于加载生成器配置文件,并根据生成器配置文件加载前端生成器、后端生成器和网页生成器;
代码生成模块,用于根据统一标准的映射生成不同语言的代码。
7.根据权利要求6所述的一种可将相同编程模型映射成不同语言代码程序的系统,其特征在于,所述编程模型创建模块创建的是一个与语言无关的编程模型。
8.根据权利要求6所述的一种可将相同编程模型映射成不同语言代码程序的系统,其特征在于:所述前端生成器根据编程模型数据与前端生成器配置文件生成前端JavaScript代码。
9.根据权利要求6所述的一种可将相同编程模型映射成不同语言代码程序的方法,其特征在于:所述后端生成器根据编程模型数据与后端生成器配置文件生成后端逻辑接口Java代码、后端逻辑Java代码、控制层Java代码。
10.根据权利要求6所述的一种可将相同编程模型映射成不同语言代码程序的方法,其特征在于:所述网页生成器根据编程模型与网页配置文件生成网页JSF代码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711465048.XA CN109976732A (zh) | 2017-12-28 | 2017-12-28 | 可将相同编程模型映射成不同语言代码程序的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711465048.XA CN109976732A (zh) | 2017-12-28 | 2017-12-28 | 可将相同编程模型映射成不同语言代码程序的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109976732A true CN109976732A (zh) | 2019-07-05 |
Family
ID=67075186
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711465048.XA Pending CN109976732A (zh) | 2017-12-28 | 2017-12-28 | 可将相同编程模型映射成不同语言代码程序的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109976732A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111104122A (zh) * | 2019-12-24 | 2020-05-05 | 联通(江苏)产业互联网有限公司 | 一种xml业务逻辑映射到java业务逻辑的方法 |
CN113867714A (zh) * | 2021-09-24 | 2021-12-31 | 安徽杰予信息科技有限公司 | 一种适配多语言的自动代码生成方法 |
CN114385175A (zh) * | 2020-10-20 | 2022-04-22 | 武汉斗鱼鱼乐网络科技有限公司 | 一种代码生成方法、装置、电子设备及存储介质 |
CN113867714B (zh) * | 2021-09-24 | 2024-06-04 | 安徽杰予信息科技有限公司 | 一种适配多语言的自动代码生成方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101122854A (zh) * | 2007-09-13 | 2008-02-13 | 上海交通大学 | 结构化的代码自动配置方法及装置 |
US20150213552A1 (en) * | 2014-01-24 | 2015-07-30 | Volmaster B.V. | Pricing user-defined financial instruments |
CN105653245A (zh) * | 2014-11-13 | 2016-06-08 | 朗新科技股份有限公司 | 代码自动生成系统、装置及方法 |
CN106293664A (zh) * | 2015-05-27 | 2017-01-04 | 交通银行股份有限公司 | 代码生成方法及装置 |
-
2017
- 2017-12-28 CN CN201711465048.XA patent/CN109976732A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101122854A (zh) * | 2007-09-13 | 2008-02-13 | 上海交通大学 | 结构化的代码自动配置方法及装置 |
US20150213552A1 (en) * | 2014-01-24 | 2015-07-30 | Volmaster B.V. | Pricing user-defined financial instruments |
CN105653245A (zh) * | 2014-11-13 | 2016-06-08 | 朗新科技股份有限公司 | 代码自动生成系统、装置及方法 |
CN106293664A (zh) * | 2015-05-27 | 2017-01-04 | 交通银行股份有限公司 | 代码生成方法及装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111104122A (zh) * | 2019-12-24 | 2020-05-05 | 联通(江苏)产业互联网有限公司 | 一种xml业务逻辑映射到java业务逻辑的方法 |
CN111104122B (zh) * | 2019-12-24 | 2023-04-11 | 联通(江苏)产业互联网有限公司 | 一种xml业务逻辑映射到java业务逻辑的方法 |
CN114385175A (zh) * | 2020-10-20 | 2022-04-22 | 武汉斗鱼鱼乐网络科技有限公司 | 一种代码生成方法、装置、电子设备及存储介质 |
CN113867714A (zh) * | 2021-09-24 | 2021-12-31 | 安徽杰予信息科技有限公司 | 一种适配多语言的自动代码生成方法 |
CN113867714B (zh) * | 2021-09-24 | 2024-06-04 | 安徽杰予信息科技有限公司 | 一种适配多语言的自动代码生成方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20150043333A (ko) | 선언형 템플릿을 사용하여 컨트롤을 스탬프 아웃하기 위한 사용자 인터페이스 컨트롤 프레임워크 | |
EP2775397A2 (en) | Visual representation of edits for collaborative application development | |
US10628013B2 (en) | Closed-loop display control for multi-dimensional user interface generation | |
CN101694618A (zh) | 适用于ajax框架的模型层与视图层数据自动映射方法 | |
CN109656617A (zh) | 一种Web Service前端部署方法、存储介质、电子设备及系统 | |
CN201993811U (zh) | 云融合商业智能终端 | |
CN101146281A (zh) | 一种面向移动终端的创建图形用户界面模型 | |
CN109117123A (zh) | 跨移动操作系统app快速开发装置与方法 | |
CN109697266A (zh) | 页面渲染系统、页面渲染方法及页面渲染装置 | |
CN101221424A (zh) | 基于领域建模的数控系统代码自动生成方法 | |
CN109976732A (zh) | 可将相同编程模型映射成不同语言代码程序的方法及系统 | |
CN105955759A (zh) | 一种用于Web开发的模板引擎实现方法 | |
CN112099780B (zh) | 一种基于erp系统的可视化应用开发方法、设备及介质 | |
US7917856B2 (en) | Converting between user interface technologies | |
CN110554866B (zh) | 一种基于mvc交易类智能合约交互式设计方法 | |
US20120159351A1 (en) | Multiple reviews of graphical user interfaces | |
CN104375814A (zh) | 接口文档的生成方法及装置 | |
Chin et al. | The Definitive Guide to Modern Java Clients with JavaFX 17 | |
KR101519381B1 (ko) | Html5를 이용하여 웹 어플리케이션을 제작하는 방법 및 장치 | |
CN104021002A (zh) | 一种pdm系统标准件存储方法 | |
CN102411498A (zh) | 一种实现数据模型的方法及图形化设计器 | |
CN106599087B (zh) | 一种空间信息服务的二次开发方法 | |
US11526578B2 (en) | System and method for producing transferable, modular web pages | |
CN102110143A (zh) | 一种面向桌面应用程序中各种控件的组件 | |
Domoszlai et al. | Editlets: type-based, client-side editors for iTasks |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190705 |
|
RJ01 | Rejection of invention patent application after publication |