具体实施方式
以下描述和附图充分地示出本发明的具体实施方案,以使本领域的技术人员能够实践它们。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
下面结合附图详细说明本公开的可选实施例。
如图1所示,本公开实施例提供一种逻辑代码自动生成方法,具体包括如下方法步骤:
S102:获取待实现的至少一项目标功能。
在本申请实施例中,目标功能包括:主体表格、分页、数据添加、数据编辑、数据删除、单数据查看、数据搜索、数据拖动排序、单列排序、单列编辑、单张图片上传、多张图片上传、将多张图片上传并进行排序、将多张图片上传并进行裁切和排序、数据多级联动选择、数据联想补充、批量数据导入、批量数据导出、状态开关和操作表。
上述仅仅罗列了一些常规的目标功能,本公开实施例提供的自动生成方法生成的管理系统除了具有上述目标功能之外,还可以根据不同应用场景的需求,引入其它的目标功能,在此不再赘述。
例如,在一种应用场景中,若待实现的目标功能为分页时,则本公开实施例提供的方法,就可以根据分页的目标功能,最终生成具有分页功能的后台管理系统,且该分页功能能够在可视化界面上直观地呈现出来。
或者,在另一种应用场景中,若待实现的目标功能为数据搜索时,则本公开实施例提供的方法,就可以根据数据搜索的目标功能,最终生成具有数据搜索功能的后台管理系统,且该数据搜索的功能能够在可视化界面上直观地呈现出来。
又或者,在另一种应用场景中,若待实现的目标功能为单列编辑时,则本公开实施例提供的方法,就可以根据单列编辑的目标功能,最终生成具有单列编辑功能的后台管理系统,且该单列编辑的功能能够在可视化界面上直观地呈现出来。
再者,在另一种应用场景中,若待实现的目标功能为数据拖动排序时,则本公开实施例提供的方法,就可以根据数据拖动排序的目标功能,最终生成具有数据拖动排序功能的后台管理系统,且该数据拖动排序的功能能够在自动生成的后台管理系统的可视化界面上直观地呈现出来。
S104:根据至少一项目标功能,编写目标配置文件。
在本申请实施例中,目标配置文件的格式可以为JSON((JavaScript ObjectNotation,,对象简谱)格式。JSON是一种轻量级的数据交换格式,其易于人阅读和编写,同时也易于机器解析和生成。任何支持的类型都可以通过JSON来表示,例如,字符串、数字、对象、数组等。但是对象和数组是比较特殊且常用的两种类型。JSON可以将JavaScript对象中表示的一组数据转换为字符串,然后就可以在网络或者程序之间轻松地传递这个字符串,并在需要的时候将它还原为各编程语言所支持的数据格式,例如在PHP中,可以将JSON还原为数组或者一个基本对象。在用到AJAX时,如果需要用到数组传值,这时就需要用JSON将数组转化为字符串。
S106:读取目标配置文件,得到各项配置项。
在本申请实施例中,各项配置项是与其实现的目标功能对应的。待实现的目标功能不同,则各项配置项也是不同的,在此不再赘述。
在本申请实施例中,目标配置文件的格式可以为JSON格式。针对JSON格式的描述参见前述相同部分或相似部分的描述,在此不再赘述。
S108:将各项配置项置入代码生成器中进行代码生成,生成用于实现至少一项目标功能的目标逻辑代码。
在本申请实施例中,针对目标功能的描述参见前述相同或相似部分的描述,在此不再赘述。
在一种可能的实现方式中,在在将各项配置项置入代码生成器中进行代码生成之前,所述方法还包括以下步骤:配置代码生成器,代码生成器用于自动生成实现至少一项目标功能的目标逻辑代码。
在本申请实施例中,配置代码生成器包括以下步骤:
配置与至少一项目标功能对应的页面名称;
配置与至少一项目标功能对应的目标接口地址;
配置与实现至少一项目标功能关联的各项配置参数以及对各项配置参数的配置过程;
配置与实现至少一项目标功能关联的数据列。
上述仅仅罗列了常规的配置代码生成器涉及到的配置参数,还可以根据不同应用场景的需求,引入其它的配置参数进行配置,在此不再赘述。
在本申请实施例中,配置与实现至少一项目标功能关联的数据列包括以下步骤:
从数据列中选取任意一列作为当前列;
配置当前列的字段;
配置当前列的名称;
配置当前列的类型。
上述仅仅罗列了常见的配置与实现至少一项目标功能关联的数据列的配置过程,还可以根据不同应用场景的需求,引入其它的配置参数进行配置,以实现待实现的目标功能,在此不再赘述。
在本申请实施例中,当前列的类型包括以下至少一项:数字、文本、下拉选项、单选、复选、图片、日期、大文本、开关和联动选择。
上述仅仅罗列了当前列的常见类型,还可以根据不同应用场景的需求,还可以将当前列的类型设置为其它类型,在此不再赘述。
在本申请实施例中,目标逻辑代码为前端代码。前端代码是基于Vue.js和Element框架结合的代码。Vue.js是当前前端领域主流的核心框架之一。Vue.js是一套构建用户界面的渐进式框架。Vue只关注视图层,采用自底向上增量开发的设计方式。Vue的目标是通过尽可能简单的API实现响应的数据绑定和组合的视图组件。Element是开源的一套前端UI框架,提供了较为丰富的组件,界面简洁优雅。Element分别提供了Vue.js、React和Angular的实现。
在一种可能的实现方式中,本申请实施例提供的逻辑代码自动生成方法还包括以下步骤:
分别构建两个文本框,两个文本框包括输入框和输出框;
编写代码生成器,直至解析得到对应的文本;
将文本输出至输出框内,以生成代码生成器;这样,就能够自动生成代码生成器,以便于通过该代码生成器自动生成用于实现至少一项目标功能的目标逻辑代码;由于省去了前后端对接调试过程,能够有效地提高逻辑代码的自动生成效率。
根据上述可知,配置代码生成器包括以下步骤:配置与至少一项目标功能对应的页面名称;配置与至少一项目标功能对应的目标接口地址;配置与实现至少一项目标功能关联的各项配置参数以及对各项配置参数的配置过程;配置与实现至少一项目标功能关联的数据列,进一步的,在一种可能的实现方式中,编写代码生成器,直至解析得到对应的文本包括:从命令文件中读取各项子文件,各项子文件包括与各项目标功能对应的数据子文件;其中,命令文件的格式可以为JSON、NODEJS、TypeScript,还可以以其它语言编写的命令文件,在此不再赘述。
遍历数据子文件中的数组,得到每项主体数据的各项信息;
构建空文本,根据对命令文件进行解析所得到的解析内容组装相应的标准代码,并将代码中的业务相关部分以对应的标准代码进行替换,直至完成对命令文件的解析过程,得到对应的文本。
在本申请实施例中,各项子文件除了上述与各项目标功能对应的数据子文件之外,各项子文件还包括与各项目标功能的配置项目对应的属性子文件和与页面名称对应的子文件。
在实际应用场景中,在根据上述命令文件中的各项子文件将后台管理系统的主体结构编写好之后,就可以在此基础上,通过增加各项功能标记来添加对应的业务。
在本公开实施例提供的逻辑代码自动生成方法中,各项功能标记用于实现以下至少一项功能:分页、数据添加、数据编辑、数据删除、单数据查看、数据搜索、数据拖动排序、单列排序、单列编辑、单图片上传、多图上传、多图上传并排序、多图上传裁切并排序、数据多级联动选择、数据联想补充、批量导入、批量导出、状态开关、操作表。
需要说明的是,上述功能仅仅是示例,还可以根据不同应用场景的需求,引入其它的功能,在此不再赘述。
在本公开实施例提供的逻辑代码自动生成方法中,“col”可以用于标识列字段、“name”可以用于标识列名称、“type”可以用于标识列类型、“add”可以用于标识出是否存在于添加表单中、“edit”可以用于标识出是否存在于编辑表单中、“required”可以用于标识是否为必填项、“main”可以用于标识是否为主列、“search”可以用于标识是否待检索。
在一种可能的实现方式中,将代码中的业务相关部分以对应的标准代码进行替换包括以下步骤:
读取命令文件中的任意一项功能属性对应的前端代码;
根据预先配置的任意一段前端代码和对应的可执行程序代码之间的对应关系和任意一项功能属性对应的前端代码,生成该前端代码对应的可执行程序代码;
将该前端代码替换为对应的可执行程序代码;这样,能够将任意一段前端代码替换为对应的可执行程序代码,遍历命令文件中的每一段前端代码,生成与该段前端代码对应的可执行程序代码,并将该段前端代码替换为对应的可执行程序代码;这样,针对命令文件中的每一段前端代码进行逐条替换,均替换为对应的可执行程序代码,最终生成了与命令文件对应的后端代码文件,该后端代码文件中包括能够在后端自动运行的可执行程序,这样,省去了前后端对接及调试过程,从而提高了逻辑代码的自动生成效率。
S110:将各项具有目标功能的目标逻辑代码在服务器上运行,生成具有至少一项目标功能的后台管理系统的功能模块。
在本申请实施例中,针对目标功能的描述参见前述相同或相似部分的描述,在此不再赘述。
在本申请实施例中,目标逻辑代码为前端代码,将目标逻辑代码在服务器上运行,生成用于实现至少一项目标功能的后台管理系统的功能模块包括以下步骤:
同步生成与目标逻辑代码对应的虚拟后端代码;
根据虚拟后端代码生成用于实现至少一项目标功能的后台管理系统的功能模块。
在本申请实施例中,后端代码是基于Node.js+Sqlite3数据库+Express生成的接口代码。Node.js是一个基于Chrome v8引擎的JavaScript运行时环境。
下面详细介绍Node.js,具体如下所述:
Node.js的特点和应用场景:
Node.js使用了事件驱动、非阻塞式I/O模型,轻量又高效。
事件驱动是一种处理数据的方式,这种方式同传统的数据处理方式CRUD(增加、读取、更新、删除)截然不同。在CRUD模式中只保存数据的当前状态,因此所有的后续变更都会直接在数据本体上进行处理。这样做的弊端主要有:
弊端1:CRUD会直接在数据存储区进行操作,会降低响应速度和性能水平,对进程的开销过大也会限制项目的规模和可扩展性。
弊端2:在存在大量并发用户的协作域中,对于同一数据主体的操作很可能会引起冲突。
弊端3:在没有额外监听措施的情况下,任何节点能够获得的只有当前的状态快照,历史数据会丢失。
事件驱动(EventSourcing)定义了一种由事件驱动的数据处理方式,应用发送的所有事件都会被载入附加存储区,每一一个事件都代表了一系列的数据变更。被保留下来的事件会作为操作历史留存下来,与此同时事件流会被不间断地同步到客户端供其使用,例如更新整体的物化视图,把事件流提供给外部系统,或者通过重演与特定物体有关的历史事件来确定它的当前状态等。
对比CRUD,事件驱动具有如下优势:
优势1:已经发生的事件是不可更改的,并且只在附加区域中存储而不影响主线程,因此对事件进行处理的操作完全可以在后台进行而不影响到客户端的UI和内容展示。这对性能优化和提升应用的可扩展性来说大大有利。
优势2:不同用户对同一个对象的同时操作不会产生冲突,因为这种数据处理方式避免了对数据本身的直接更改。
优势3:附加区域中存储的事件流实际上提供了一个监听机制,使开发者能够通过重演历史事件的方式来获取当前状态,进而有助于系统的测试和漏洞修复。
事件驱动的异步I/O模型使得Node.js非常适合用来处理I/O密集型应用,但也不限于此,例如,Web聊天室、Web博客、Web论坛、前端模块管理平台、浏览器环境工具、命令行工具等。流行的Nodejis应用框架有Express、Koa、Meteor等。
需要说明的是,Node.js能够运行在Linux、macOS、Microsoft Windows、UNIX等平台上,并且可以用能够被编译为JavaScript的任何语言(包括CoffeeScript和TypeScript等)进行编写。使用Node.js进行开发的过程其实就是使用JavaScript结合一系列处理核心功能的模块来创建如Web服务器、通信等工具的过程。其中,这些模块承担着诸如读取与存入文件、通信、双向数据交换、加密解密等功能,且开放API(Application ProgrammingInterface,应用程序编程接口)供开发者使用。
下面详细介绍Sqlite3数据库,具体如下所述:
Sqlite是一个非常轻量级自包含的DBMS,它可移植性好,很容易使用,很小、高效而且可靠。
Sqlite嵌入到使用它的应用程序中,它们共用相同的进程空间,而不是单独的一个进程。从外部看,它并不像一个RDBMS,但在进程内部,它却是完整的,自包含的数据库引擎。嵌入式数据库的优点为:基于客户端和服务器在同一进程空间运行,因此,在程序内部不需要网络配置,也不需要管理。
Sqlite的数据库权限只依赖于文件系统,没有用户帐户的概念。SqLite有数据库级锁定,没有网络服务器。它需要占用内存,但其它开销很小,适合用于嵌入式设备,需要做的仅仅是把它正确的编译到的程序。
Sqlite的数据库的基本操作命令如下:
创建数据库、显示数据库、创建表、显示所有的表和视图、显示表结构、获取指定表的索引列表、从SQL文件导入数据库、导出数据库到SQL文件、格式化输出数据到CSV格式、从CSV文件导入数据到表中、备份数据库和恢复数据库。
存储种类和数据类型:
数据类型:
NULL:表示该值为NULL值。
INTEGER:无符号整型值。
REAL:浮点值。
TEXT:文本字符串,存储使用的编码方式为UTF-8、UTF-16BE、UTF-16LE。
BLOB:存储Blob数据,该类型数据和输入数据完全相同。
类型亲缘性:
为了最大化Sqlite和其它数据库引擎之间的数据类型兼容性,Sqlite提出了"类型亲缘性"的概念。在表字段被声明之后,Sqlite都会根据该字段声明时的类型为其选择一种亲缘类型,当数据插入时,该字段的数据将会优先采用亲缘类型作为该值的存储方式,除非亲缘类型不匹配或无法转换当前数据到该亲缘类型,这样,Sqlite才会考虑其它更适合该值的类型存储该值。
Sqlite目前的版本支持以下五种亲缘类型:
TEXT:数值型数据在被插入之前,需要先被转换为文本格式,之后再插入到目标字段中。
NUMERIC:当文本数据被插入到亲缘性为NUMERIC的字段中时,如果转换操作不会导致数据信息丢失以及完全可逆,那么Sqlite就会将该文本数据转换为INTEGER或REAL类型的数据,如果转换失败,Sqlite仍会以TEXT方式存储该数据。对于NULL或BLOB类型的新数据,Sqlite将不做任何转换,直接以NULL或BLOB的方式存储该数据。对于浮点格式的常量文本,如"30000.0",如果该值可以转换为INTEGER同时又不会丢失数值信息,那么Sqlite就会将其转换为INTEGER的存储方式。
INTEGER:对于亲缘类型为INTEGER的字段,其规则等同于NUMERIC,唯一差别是在执行CAST表达式时。
REAL:其规则基本等同于NUMERIC,唯一的差别是不会将"30000.0"这样的文本数据转换为INTEGER存储方式。
NONE:不做任何的转换,直接以该数据所属的数据类型进行存储。
决定字段亲缘性的规则:
字段的亲缘性是根据该字段在声明时被定义的类型来决定的,具体的规则可以参照以下列表。需要注意的是以下列表的顺序,即如果某一字段类型同时符合两种亲缘性,那么排在前面的规则将先产生作用。
1)如果类型字符串中包含"INT",那么该字段的亲缘类型是INTEGER。
2)如果类型字符串中包含"CHAR"、"CLOB"或"TEXT",那么该字段的亲缘类型是TEXT,如VARCHAR。
3)如果类型字符串中包含"BLOB",那么该字段的亲缘类型是NONE。
4)如果类型字符串中包含"REAL"、"FLOA"或"DOUB",那么该字段的亲缘类型是REAL。
5)其余情况下,字段的亲缘类型为NUMERIC。
例如,在一种应用场景中,若待实现的目标功能为单列排序,则本公开实施例提供的方法,就可以根据单列排序的目标功能,生成用于实现单列排序的目标功能的目标逻辑代码,将该目标逻辑代码在服务器上运行,生成用于实现该单列排序功能的后台管理系统的功能模块,且在该后台管理系统的可视化界面上呈现单列排序功能,以便于用户能够直观地看到该功能模块的功能是否得以实现。
在生成用于实现单列排序的目标功能的目标逻辑代码之后,同步生成与该目标逻辑代码对应的虚拟后端代码,并根据该虚拟后端代码生成用于实现单列排序的目标功能的后台管理系统的功能模块。在上述过程中,由于目标逻辑代码与生成的虚拟后端代码能够兼容,这样,省去了现有的前后端对接调试过程,从而简化了后台管理系统的功能模块的生成过程。
又例如,在另一种应用场景中,若待实现的目标功能为数据编辑,则本公开实施例提供的方法,就可以根据数据编辑的目标功能,生成用于实现数据编辑的目标功能的目标逻辑代码,将该目标逻辑代码在服务器上运行,生成用于实现数据编辑功能的后台管理系统的功能模块,且在该后台管理系统的可视化界面上呈现数据编辑功能,以便于用户能够直观地看到该数据编辑功能是否得以实现。
在生成用于实现数据编辑的目标功能的目标逻辑代码之后,同步生成与该目标逻辑代码对应的虚拟后端代码,并根据该虚拟后端代码生成用于实现数据编辑的目标功能的后台管理系统的功能模块。在上述过程中,由于目标逻辑代码与生成的虚拟后端代码能够兼容,这样,省去了现有的前后端对接调试过程,从而简化了后台管理系统的生成过程。
进一步地,由于本公开实施例提供的方法,省去了现有的前后端对接调试过程,这样,能够有效地提升不同项目的开发效率;此外,在本公开实施例提供的方法中,前端代码和虚拟后端代码均是自动生成的,这样,有效地降低了开发中可能产生的代码错误。
在一种可能的实现方式中,本公开实施例提供的自动生成方法还包括以下步骤:
创建空数据库;
根据命令文件下的数据子文件中的相关数据构建结构化查询语言语句;
执行结构化查询语言语句,并创建所需的数据库表;这样,就能够灵活地创建出所需的数据库表。
在一种可能的实现方式中,各项子文件还包括与各项目标功能的接口地址对应的子文件;本公开实施例提供的自动生成方法还包括以下步骤:
根据命令文件下的与各项目标功能的接口地址对应的子文件中的数据,构建对应的同名应用程序编程接口;这样,就能够灵活地构建同名应用程序编程接口。
在一种可能的实现方式中,本公开实施例提供的自动生成方法还包括以下步骤:
响应于发送请求,将与任意一段前端代码匹配的可执行程序代码提交至对应的同名后端接口;
对任意一段前端代码匹配的可执行程序代码进行组装,得到组装后的可执行程序代码;
将可执行程序代码写入与同名后端接口对应的目录下,生成对应的后端代码文件;上述过程省去了现有的前后端对接调试过程,从而简化了后台管理系统的功能模块的生成过程。
如图2所示,是本公开实施例提供的一种具体应用场景下的逻辑代码自动生成方法的流程示意图。
如图2所示,该具体应用场景下的逻辑代码自动生成方法包括以下步骤:
S202:编写目标配置文件;在本申请实施例中,目标配置文件的格式可以为JSON格式。针对JSON格式的描述参见前述相同或相似部分的描述,在此不再赘述。
S204:将目标配置文件中的各项配置项置入代码生成器中,点击生成按钮,生成各项具有目标功能的目标逻辑代码。
针对该步骤的详细描述,参见前述相同或相似部分的描述,在此不再赘述。
S206:复制生成的各项具有目标功能的目标逻辑代码,并将各项目标逻辑代码在服务器上运行,生成后台管理系统对应的各个功能模块。
针对该步骤的详细描述,参见前述相同或相似部分的描述,在此不再赘述。
在本公开实施例中,获取待实现的至少一项目标功能;根据至少一项目标功能,编写目标配置文件;读取目标配置文件,得到各项配置项;将各项配置项置入代码生成器中进行代码生成,生成用于实现至少一项目标功能的目标逻辑代码;将各项具有目标功能的目标逻辑代码在服务器上运行,生成具有至少一项目标功能的后台管理系统的功能模块。本公开实施例提供的逻辑代码自动生成方法,将各项配置项置入代码生成器中进行代码生成,生成用于实现至少一项目标功能的目标逻辑代码,以及将各项具有目标功能的目标逻辑代码在服务器上运行,生成具有至少一项目标功能的后台管理系统的功能模块,这样,能够自动生成后台管理系统的各个功能模块,省去了前后端对接调试过程,从而简化了后台管理系统的各个功能模块的生成过程。
下述为本公开实施例逻辑代码自动生成装置实施例,可以用于执行本公开实施例逻辑代码自动生成方法实施例。对于本公开实施例逻辑代码自动生成装置实施例中未披露的细节,请参照本公开实施例逻辑代码自动生成方法实施例。
请参见图3,其示出了本发明一个示例性实施例提供的逻辑代码自动生成装置的结构示意图。该逻辑代码自动生成装置可以通过软件、硬件或者两者的结合实现成为终端的全部或一部分。该逻辑代码自动生成装置包括获取模块302、编写模块304、读取模块306、代码生成模块308和功能模块生成模块310。
具体而言,获取模块302,用于获取待实现的至少一项目标功能;
编写模块304,用于根据获取模块302获取的至少一项目标功能,编写目标配置文件;
读取模块306,用于读取编写模块304编写的目标配置文件,得到各项配置项;
代码生成模块308,用于将读取模块306读取出的各项配置项置入代码生成器中进行代码生成,生成用于实现至少一项目标功能的目标逻辑代码;
功能模块生成模块310,用于将各项具有目标功能的目标逻辑代码在服务器上运行,生成具有至少一项目标功能的后台管理系统的功能模块。
可选的,所述装置还包括:
构建模块(在图3中未示出),用于分别构建两个文本框,构建模块构建的两个文本框包括输入框和输出框;
编写及解析模块(在图3中未示出),用于编写代码生成器,直至解析得到对应的文本;
输出模块(在图3中未示出),用于将编写及解析模块解析得到的文本输出至输出框内,以生成代码生成器。
可选的,编写及解析模块用于:
从命令文件中读取各项子文件,各项子文件包括与各项目标功能对应的数据子文件;
遍历数据子文件中的数组,得到每项主体数据的各项信息;
构建空文本,根据对命令文件进行解析所得到的解析内容组装相应的标准代码,并将代码中的业务相关部分以对应的标准代码进行替换,直至完成对命令文件的解析过程,得到对应的文本。
可选的,编写及解析模块具体用于:
读取命令文件中的任意一项功能属性对应的前端代码;
根据预先配置的任意一段前端代码和对应的可执行程序代码之间的对应关系和任意一项功能属性对应的前端代码,生成该前端代码对应的可执行程序代码;
将该前端代码替换为对应的可执行程序代码。
可选的,所述装置还包括:
创建模块(在图3中未示出),用于创建空数据库;
结构化查询语言语句构建模块(在图3中未示出),用于根据命令文件下的数据子文件中的相关数据构建结构化查询语言语句;
执行及数据库表创建模块(在图3中未示出),用于执行结构化查询语言语句构建模块构建的结构化查询语言语句,并创建所需的数据库表。
可选的,各项子文件还包括与各项目标功能的接口地址对应的子文件;所述装置还包括:
接口创建模块(在图3中未示出),用于根据命令文件下的与各项目标功能的接口地址对应的子文件中的数据,构建对应的同名应用程序编程接口。
可选的,所述装置还包括:
后端代码文件生成模块(在图3中未示出),具体用于:
响应于发送请求,将与任意一段前端代码匹配的可执行程序代码提交至对应的同名后端接口;
对任意一段前端代码匹配的可执行程序代码进行组装,得到组装后的可执行程序代码;
将可执行程序代码写入与同名后端接口对应的目录下,生成对应的后端代码文件。
可选的,各项子文件还包括与各项目标功能的配置项目对应的属性子文件和与页面名称对应的子文件。
需要说明的是,上述实施例提供的逻辑代码自动生成装置在执行逻辑代码自动生成方法时,仅以上述各功能单元的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元完成,即将设备的内部结构划分成不同的功能单元,以完成以上描述的全部或者部分功能。另外,上述实施例提供的逻辑代码自动生成装置与逻辑代码自动生成方法实施例属于同一构思,其体现实现过程详见逻辑代码自动生成方法实施例,这里不再赘述。
在本公开实施例中,获取模块用于获取待实现的至少一项目标功能;编写模块用于根据获取模块获取的至少一项目标功能,编写目标配置文件;读取模块用于读取编写模块编写的目标配置文件,得到各项配置项;代码生成模块用于将读取模块读取出的各项配置项置入代码生成器中进行代码生成,生成用于实现至少一项目标功能的目标逻辑代码;以及功能模块生成模块用于将各项具有目标功能的目标逻辑代码在服务器上运行,生成具有至少一项目标功能的后台管理系统的功能模块。本公开实施例提供的逻辑代码自动生成装置,由于代码生成模块将各项配置项置入代码生成器中进行代码生成,生成用于实现至少一项目标功能的目标逻辑代码,以及功能模块生成模块将各项具有目标功能的目标逻辑代码在服务器上运行,生成具有至少一项目标功能的后台管理系统的功能模块,这样,能够自动生成后台管理系统的各个功能模块,省去了前后端对接调试过程,从而简化了后台管理系统的各个功能模块的生成过程;此外,由于用于实现至少一项目标功能的目标逻辑代码是自动生成的,因此,有效地提高了代码生成效率,以及大大地降低了自动编写代码过程中可能出现的错误代码。
如图4所示,本实施例提供一种电子设备,该电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器运行计算机程序以实现如上所述的方法步骤。
本公开实施例提供了一种存储有计算机可读指令的存储介质,其上存储有计算机程序,程序被处理器执行实现如上所述的方法步骤。
下面参考图4,其示出了适于用来实现本公开实施例的电子设备的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图4示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图4所示,电子设备可以包括处理装置(例如中央处理器、图形处理器等)401,其可以根据存储在只读存储器(ROM)402中的程序或者从存储装置408加载到随机访问存储器(RAM)403中的程序而执行各种适当的动作和处理。在RAM 403中,还存储有电子设备操作所需的各种程序和数据。处理装置401、ROM402以及RAM403通过总线409彼此相连。输入/输出(I/O)接口405也连接至总线404。
通常,以下装置可以连接至I/O接口405:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置406;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置407;包括例如磁带、硬盘等的存储装置408;以及通信装置409。通信装置409可以允许电子设备与其他设备进行无线或有线通信以交换数据。虽然图4示出了具有各种装置的电子设备,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置409从网络上被下载和安装,或者从存储装置408被安装,或者从ROM402被安装。在该计算机程序被处理装置401执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。