CN116048612A - 项目生成方法、装置、插件与电子设备 - Google Patents
项目生成方法、装置、插件与电子设备 Download PDFInfo
- Publication number
- CN116048612A CN116048612A CN202111280113.8A CN202111280113A CN116048612A CN 116048612 A CN116048612 A CN 116048612A CN 202111280113 A CN202111280113 A CN 202111280113A CN 116048612 A CN116048612 A CN 116048612A
- Authority
- CN
- China
- Prior art keywords
- code
- rules
- architecture
- domain model
- layering
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/74—Reverse engineering; Extracting design information from source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/186—Templates
-
- 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/36—Software reuse
Abstract
本发明提供一种项目生成方法、装置、插件与电子设备,所述方法包括:基于架构规则,确定代码模板,所述架构规则包括领域模型规则和分层规则,所述领域模型规则包括各领域模型的信息,所述分层规则包括各领域模型内的分层信息;基于所述代码模板和逆向工程,生成项目文件。本发明提供的方法、装置、插件与电子设备,通过结合该代码模板以及逆向工程,由此生成项目文件,能够很好的实现快速搭建具有分层架构形式的模块化代码,实现快速开发一个新的项目,避免了开发人员重复写系统逻辑的代码,极大减少了开发人员的工作量,提高了开发效率,并且,避免了开发人员模板使用不统一的问题,从项目开始就确定基础架构风格,结构清晰、方便维护。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种项目生成方法、装置、插件与电子设备。
背景技术
插件是一种辅助开发工具,可以有效提高开发效率,帮助开发人员完成项目初期搭建。
目前,业界有多种这类开发工具,常用的有两种:1、idea模板编程;2、mybatis逆向工程。当前这两种工具只能生成工程项目中的小部分代码,无法作为项目代码直接进行开发,开发人员仍需要花费大量时间重复写系统逻辑的代码,工作量较大。
发明内容
本发明提供一种项目生成方法、装置、插件与电子设备,用以解决现有技术中开发工具所生成的代码无法作为项目代码直接进行开发的缺陷,实现快速搭建具有分层架构形式的模块化代码。
本发明提供一种项目生成方法,包括:
基于架构规则,确定代码模板,所述架构规则包括领域模型规则和分层规则,所述领域模型规则包括各领域模型的信息,所述分层规则包括各领域模型内的分层信息;
基于所述代码模板和逆向工程,生成项目文件。
根据本发明提供的一种项目生成方法,所述基于架构规则,确定代码模板,包括:
基于所述架构规则,以及代码风格规范和/或数据访问实现方式,确定所述代码模板。
根据本发明提供的一种项目生成方法,所述基于所述架构规则,以及代码风格规范和/或数据访问实现方式,确定所述代码模板,包括:
基于所述领域模型规则和分层规则,构建初始代码模板;
基于所述代码风格规范和/或数据访问实现方式,配置所述初始代码模板,得到所述代码模板。
根据本发明提供的一种项目生成方法,所述基于所述代码模板和逆向工程,生成项目文件,包括:
基于所述代码模板和逆向工程,生成从接口层到数据层的逻辑代码;
基于所述从接口层到数据层的逻辑代码,生成所述项目文件。
根据本发明提供的一种项目生成方法,所述基于所述代码模板和逆向工程,生成从接口层到数据层的逻辑代码,包括:
基于数据库中的数据模型,所述代码模板,以及所述逆向工程的代码生成功能,生成所述从接口层到数据层的逻辑代码。
根据本发明提供的一种项目生成方法,所述架构规则是基于如下步骤确定的:
将多个候选架构规则集成在用户界面中;
基于用户在所述用户界面中选择的候选架构规则,确定所述架构规则。
根据本发明提供的一种项目生成方法,所述各领域模型的信息包括模块的划分信息以及数据边界的划分信息。
本发明还提供一种项目生成装置,包括:
确定模块,用于基于架构规则,确定代码模板,所述架构规则包括领域模型规则和分层规则,所述领域模型规则包括各领域模型的信息,所述分层规则包括各领域模型内的分层信息;
生成模块,用于基于所述代码模板和逆向工程,生成项目文件。
本发明还提供一种插件,包括用户界面,以及如上述所述的项目生成装置。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述项目生成方法的步骤。
本发明提供的项目生成方法、装置、插件与电子设备,通过基于架构规则,确定代码模板,架构规则包括领域模型规则和分层规则,并结合该代码模板以及逆向工程,由此生成项目文件,从而能够很好的实现快速搭建具有分层架构形式的模块化代码,实现快速开发一个新的项目,避免了开发人员重复写系统逻辑的代码,极大减少了开发人员的工作量,提高了开发效率,并且,避免了开发人员模板使用不统一的问题,从项目开始就确定基础架构风格,结构清晰、方便维护。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的项目生成方法的流程示意图;
图2是本发明提供的插件的结构示意图之一;
图3是本发明提供的项目生成装置的结构示意图;
图4是本发明提供的插件的结构示意图之二;
图5是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
插件是一种辅助开发工具,可以有效提高开发效率,帮助开发人员完成项目初期搭建。该插件可解决研发中的下面几个问题:1、包结构命名不规范;2、重复写一些基础的属性代码;3、代码注释风格不统一;4、命名方法不统一;5、重复写一种风格的代码。
目前,业界有多种这类开发工具,常用的有两种:1、idea模板编程:由idea(IntelliJ IDEA,java编程语言开发的集成环境)自带,可以设置代码模板和注释模板;2、mybatis逆向工程:mybatis逆向工程生成的dao(Data Access Object,数据访问对象)层过于简单,对象组装工作量较大,参数的支持类型不完善,xml(Extensible MarkupLanguage,可扩展置标语言)里标签id(Identity,身份)必须唯一,导致dao层不支持方法重载,Sql(Structured Quevy Language,结构化查询语言)工作量大。
当前这两种开发工具只能生成工程项目中的小部分代码,无法很好的实现快速搭建具有分层架构形式的模块化代码,无法作为项目代码直接进行开发,开发人员仍需要花费大量时间重复写系统逻辑的代码,工作量较大。另外,这两种开发工具还存在开发人员模板使用不统一的问题,不利于后期复用和维护,进一步增加了开发人员和维护人员的工作量。
对此,本发明实施例提供了一种项目生成方法。图1是本发明提供的项目生成方法的流程示意图,如图1所示,该方法包括:
步骤110,基于架构规则,确定代码模板,架构规则包括领域模型规则和分层规则,领域模型规则包括各领域模型的信息,分层规则包括各领域模型内的分层信息;
步骤120,基于代码模板和逆向工程,生成项目文件。
具体地,考虑到现有的模板工具和逆向工程工具无法很好的实现快速搭建具有分层架构形式的模块化代码,开发人员需要重复写系统逻辑的代码,工作量较大。针对这一问题,本发明实施例根据预先确定的架构规则,生成具有分层架构的代码模板,在此基础上,即可根据该代码模板和逆向工程,生成项目文件,从而可以快速开始一个新项目的搭建,避免开发人员重复写系统逻辑的代码,极大减少了开发人员的工作量。
其中,架构规则可以是基于领域驱动设计(Domain Driven Design,DDD)得到的,架构规则可以包括领域模型规则,具体可以基于数据所属的业务领域对项目进行领域模型的划分,可以划分为一个或多个领域模型,由此即可得到该项目的领域模型规则,例如,对于培训管理业务场景,可以把项目划分成教员领域模型、学员领域模型和管理部门领域模型这三个领域模型,该项目的领域模型规则即包括这三个领域模型的相关信息。领域模型规则可以包括各领域模型的信息,此处的领域模型的信息可以包括领域模型的名称、类型等信息,领域模型的类型例如可以是DO(Data Object,数据源对象)、DTO(Data TransferObject,数据传输对象)等,本发明实施例对此不作具体限定。
架构规则还可以包括分层规则。为了实现进一步对领域模型的管理,还可以对领域模型进行分层管理,根据各领域模型的业务复杂度配置对应的分层信息,从而得到包括各领域模型内的分层信息的分层规则,例如,在上述示例中,根据教员领域模型和学员领域模型的业务复杂度的不同,可以将教员领域模型分成三层,将学员领域模型分成四层。分层规则可以包括各领域模型内的分层信息,分层信息可以包括各领域模型所分的层数,每层的身份(ID)、每层的功能、每层在软件架构中的位置等信息,分层的方式例如可以是MVC(Model-View-Controller,模型-视图-控制器)、MVVM(Model-View-View-Model,模型-视图-视图-模型)等,本发明实施例对此也不作具体限定。
需要说明的是,区别于现有的代码开发工具中,模板和逆向工程分开使用,存在开发人员模板使用不统一的问题,而本发明实施例通过将代码模板和逆向工程整合,来实现项目文件的生成,在项目开发前期就通过代码模板把规则定好了,从而保证了项目整体方案的一致,提高了代码的可维护性和可扩展性,节省了代码维护的成本。并且,通过架构规则包括领域模型规则和分层规则,基于该架构规则生成代码模板,从而能够很好的实现快速搭建具有分层架构形式的模块化代码,可以快速开始一个新项目的搭建,无需开发人员重复性创建包、频繁写工具,极大减少了开发人员的工作量。
本发明实施例提供的方法,通过基于架构规则,确定代码模板,架构规则包括领域模型规则和分层规则,并结合该代码模板以及逆向工程,由此生成项目文件,从而能够很好的实现快速搭建具有分层架构形式的模块化代码,实现快速开发一个新的项目,避免了开发人员重复写系统逻辑的代码,极大减少了开发人员的工作量,提高了开发效率,并且,避免了开发人员模板使用不统一的问题,从项目开始就确定基础架构风格,结构清晰、方便维护。
基于上述任一实施例,步骤110中,基于架构规则,确定代码模板,包括:
基于架构规则,以及代码风格规范和/或数据访问实现方式,确定代码模板。
具体地,考虑到现有的项目中存在开发人员编码风格不一致、技术实现不统一等问题,不利于后期复用和维护,增加开发人员和维护人员的工作量,对此,本发明实施例根据架构规则以及代码风格规范,或者根据架构规则以及数据访问实现方式,或者根据架构规则、代码风格规范以及数据访问实现方式,确定代码模板,在此基础上再进行项目文件的生成,从而可以保证项目中注释、编码风格、数据访问实现方式一致。
此处,代码风格规范可以是编码风格规范、注释风格规范等,编码风格规范例如可以是平铺式、流式等,注释风格规范例如可以是“/*”、“//”等,本发明实施例对此不作具体限定。数据访问实现方式可以是mybatis-plus、hibernate、jdbc-template等,本发明实施例对此也不作具体限定。
本发明实施例提供的方法,通过基于架构规则,以及代码风格规范和/或数据访问实现方式,确定代码模板,解决了项目中编码风格不一致,技术实现不统一的问题,保证了注释、编码风格一致,数据访问实现方式一致,减少了开发人员和维护人员的工作量,提高了代码的可维护性和可扩展性。
基于上述任一实施例,基于架构规则,以及代码风格规范和/或数据访问实现方式,确定代码模板,包括:
基于领域模型规则和分层规则,构建初始代码模板;
基于代码风格规范和/或数据访问实现方式,配置初始代码模板,得到代码模板。
具体地,为了解决项目中编码风格不一致,技术实现不统一的问题,节省代码的维护成本,本发明实施例具体通过如下方式确定代码模板:首先,根据领域模型规则和分层规则,构建具有分层架构的初始代码模板,可以理解的是,不论是横向分模块还是纵向分层,该初始代码模板中都已经构建好了整个架构,随即,根据代码风格规范和/或数据访问实现方式,对该初始代码模板进行配置,即可得到最终的代码模板,从而实现项目中代码风格规范、数据访问实现方式的一致。
基于上述任一实施例,步骤120包括:
基于代码模板和逆向工程,生成从接口层到数据层的逻辑代码;
基于从接口层到数据层的逻辑代码,生成项目文件。
具体地,考虑到现有的代码开发工具通常只写到数据访问dao层的代码,这些代码只是一个工程项目代码的一小部分,无法作为项目代码直接进行开发,仍需要开发人员花费大量时间搭建框架以及编写上层的代码,才能进一步开展项目开发。针对这一问题,本发明实施例应用代码模板以及逆向工程,除了可以生成与数据源绑定的代码外,还可以生成从接口层到数据层的逻辑代码,从而可以提供项目的完整框架,在此基础上,即可直接生成满足当前业务需求的项目文件。
此处,接口层可以是api(Application Programming Interface,应用程序编程接口)层,数据层可以是dao层。逻辑代码可以是java代码、c++代码等,具体可以根据编程语言而定,本发明实施例对此不作具体限定。可以理解的是,dao层作为架构中的底层,api层作为项目入口,是架构中的上层,通过生成从api层到dao层的逻辑代码,从上层到底层之间的数据链路都连通了,并且不论是横向还是纵向的分层架构都已经设定了,按照该分层架构,从项目入口一直到数据层直接就拓展生成好了,后续即可直接开展项目开发,或者只需稍作修改即可,从而极大减少了开发人员的工作量,提高了开发效率。
本发明实施例提供的方法,通过基于代码模板和逆向工程,生成从接口层到数据层的逻辑代码,可以按照既定的分层架构和模块设定自动生成从api层到数据层所需的简单逻辑代码,无需开发人员进行大量代码改造,实现快速开发一个新项目。
基于上述任一实施例,基于代码模板和逆向工程,生成从接口层到数据层的逻辑代码,包括:
基于数据库中的数据模型,代码模板,以及逆向工程的代码生成功能,生成从接口层到数据层的逻辑代码。
具体地,可以通过如下方式生成从接口层到数据层的逻辑代码:首先,从数据库中获取数据模型,将该数据模型映射的数据作为数据支撑,随即,通过逆向工程调取代码模板,并执行代码生成功能,从而得到从接口层到数据层的逻辑代码。此处,数据库可以是MySQL、Oracle、SQLServer等,本发明实施例对此不作具体限定。
本发明实施例提供的方法,通过基于数据模型及所选的分层和模块,快速生成从接口层到数据层所需的逻辑代码,从而能够实现快速开发一个新项目,避免了开发人员重复写系统逻辑的代码,极大减少了开发人员的工作量,提高了开发效率。
基于上述任一实施例,架构规则是基于如下步骤确定的:
将多个候选架构规则集成在用户界面中;
基于用户在用户界面中选择的候选架构规则,确定架构规则。
具体地,用户界面(User Interface,UI)用于接收用户的请求,向用户返回数据,为用户提供一种交互式操作的界面等。本发明实施例将多个候选架构规则集成在用户界面中,以供用户通过用户界面选择需要的架构规则,当用户选择了候选架构规则之后,即可根据用户选择的候选架构规则确定架构规则。
进一步地,用户界面还可以集成多个候选代码风格规范、候选数据访问实现方式、包名、数据库信息等内容,以供用户进行选择或录入,在此基础上,即可根据用户选择或录入的参数确定最终的代码模板,再由逆向工程调取该代码模板,并执行代码生成功能,从而得到项目文件。
本发明实施例提供的方法,通过将多个候选架构规则集成在用户界面中,并基于用户在用户界面中选择的候选架构规则,确定架构规则,从而可以满足用户的定制化架构需求,提升用户体验,并且,基于不同架构规则确定的代码模板,可以适应不同的项目需求。
基于上述任一实施例,各领域模型的信息包括模块的划分信息以及数据边界的划分信息。
具体地,领域模型规则可以包括各领域模型的信息,各领域模型可以是一个整体的模块,也可以对各领域模型所属的领域进一步细分为多个子域,得到多个模块,因此,各领域模型的信息可以包括模块的划分信息以及各模块数据边界的划分信息。此处,边界可以通过限界上下文来确定。限界上下文定义领域边界,以确保每个上下文含义在它特定的边界内都具有唯一含义,领域模型则存于该边界内。
基于上述任一实施例,本发明实施例以业界最流行的微服务框架Dubbo,SpringCloud为主,配合开源的注册中心Nacos(Dynamic Naming and Configuration Service,动态命名和配置服务),针对多微服务框架的架构,设计了一套合适的开发框架及规范。
基于此,本发明实施例提供了一种插件。基于Spring Boot,可以按照既定的分层架构和模块设定自动生成从数据层到api层的简单逻辑代码,方便开发人员项目大家开发一个新的项目。图2是本发明提供的插件的结构示意图之一,如图2所示,该插件包括插件UI、代码模板和逆向工程lib库等元素,具体说明如下:
1、插件UI
插件UI可以是IDE(Integrated Development Environment,集成开发环境)的插件UI,例如可以是Material Theme UI插件。
该插件UI具有以下功能:(1)提供界面选择项目,包含:项目名;模块名;基础包名;领域模型规则:do,dto,query,bo(Business Object,业务对象),vo(View Object,显示层对象)等;架构分层规则选择:api/controller,service,dao/repository等;数据访问实现方式选择:mybatis-plus,hibernate,jdbc-template;数据库信息:地址,库名,表名;(2)模板方法录入;类,代码注释方法录入;代码编码风格规范选择。
其中,do是与数据库表结构一一对应,通过dao层向上传输数据源对象;dto是数据传输对象,service或manager向外传输的对象;query是数据查询对象,各层接收上层的查询请求;bo是业务对象,由service层输出的封装业务逻辑的对象;vo是显示层对象,通常是web向模板渲染引擎层传输的对象。模板方法例如可以是代码生成方法、扩展到api层的实现方式等。
2、代码模板
代码模板可以是idea的代码模板,可以使用自定义编排的模板,具体可以以xml文件的形式进行存储。执行插件UI界面选择后,将用户通过插件UI选择或录入的参数写入代码模板中的xml节点,从而得到最终的代码模板。
3、逆向工程lib库
逆向工程lib(library,图书馆)库可以是类似于mybatis的逆向工程jar(JavaArchive,Java归档文件),mybatis是一个支持普通Sql查询、存储过程和高级映射的优秀持久层框架,可以使用简单的xml或注解进行配置和原始映射,将接口和Java的对象映射成数据库中的记录,其主要思想就是将程序中的大量Sql语句剥离出来,配置在配置文件中,以实现Sql的灵活配置。
逆向工程lib库可以是一个库,也可以是多个库,本发明实施例对此不作具体限定。具体应用方式可以是执行插件UI界面选择后,将用户通过插件UI选择或录入的参数存储入代码模板,再通过调用逆向工程lib库的sdk(Software Development Kit,软件开发工具包),从代码模板中拉取领域模型规则、分层规则、代码编码风格规范等数据,并按照这些数据执行代码生成功能,按选择的类目生成对应的包和类,从而得到项目文件。此处,具体的代码生成方式可以采用编码规范生成。
本发明实施例提供的插件,通过应用代码模板,从项目创建开始就确定好了包名、领域模型规则、架构分层规则、数据访问实现方式、注释,编码风格等,从而可以确保项目整体方案一致,确保注释、编码风格一致,并且,将该代码模板与逆向工程相结合,从而能够很好的实现快速搭建具有分层架构形式的模块化代码,创建了api层到dao层的一套机械性代码,实现了快速开发一个新的项目,避免了开发人员重复写系统逻辑的代码、重复性创建包,极大减少了开发人员的工作量,提高了开发效率。
下面对本发明提供的项目生成装置进行描述,下文描述的项目生成装置与上文描述的项目生成方法可相互对应参照。
基于上述任一实施例,本发明实施例提供了一种项目生成装置。图3是本发明提供的项目生成装置的结构示意图,如图3所示,该装置包括:
确定模块310,用于基于架构规则,确定代码模板,架构规则包括领域模型规则和分层规则,领域模型规则包括各领域模型的信息,分层规则包括各领域模型内的分层信息;
生成模块320,用于基于代码模板和逆向工程,生成项目文件。
具体地,考虑到现有的模板工具和逆向工程工具无法很好的实现快速搭建具有分层架构形式的模块化代码,开发人员需要重复写系统逻辑的代码,工作量较大。针对这一问题,本发明实施例根据预先确定的架构规则,生成具有分层架构的代码模板,在此基础上,即可根据该代码模板和逆向工程,生成项目文件,从而可以快速开始一个新项目的搭建,避免开发人员重复写系统逻辑的代码,极大减少了开发人员的工作量。
其中,架构规则可以是基于领域驱动设计得到的,架构规则可以包括领域模型规则,具体可以基于数据所属的业务领域对项目进行领域模型的划分,可以划分为一个或多个领域模型,由此即可得到该项目的领域模型规则,例如,对于培训管理业务场景,可以把项目划分成教员领域模型、学员领域模型和管理部门领域模型这三个领域模型,该项目的领域模型规则即包括这三个领域模型的相关信息。领域模型规则可以包括各领域模型的信息,此处的领域模型的信息可以包括领域模型的名称、类型等信息,领域模型的类型例如可以是DO、DTO等,本发明实施例对此不作具体限定。
架构规则还可以包括分层规则。为了实现进一步对领域模型的管理,还可以对领域模型进行分层管理,根据各领域模型的业务复杂度配置对应的分层信息,从而得到包括各领域模型内的分层信息的分层规则,例如,在上述示例中,根据教员领域模型和学员领域模型的业务复杂度的不同,可以将教员领域模型分成三层,将学员领域模型分成四层。分层规则可以包括各领域模型内的分层信息,分层信息可以包括各领域模型所分的层数,每层的身份(ID)、每层的功能、每层在软件架构中的位置等信息,分层的方式例如可以是MVC、MVVM等,本发明实施例对此也不作具体限定。
需要说明的是,区别于现有的代码开发工具中,模板和逆向工程分开使用,存在开发人员模板使用不统一的问题,而本发明实施例通过将代码模板和逆向工程整合,来实现项目文件的生成,在项目开发前期就通过代码模板把规则定好了,从而保证了项目整体方案的一致,提高了代码的可维护性和可扩展性,节省了代码维护的成本。并且,通过架构规则包括领域模型规则和分层规则,基于该架构规则生成代码模板,从而能够很好的实现快速搭建具有分层架构形式的模块化代码,可以快速开始一个新项目的搭建,无需开发人员重复性创建包、频繁写工具,极大减少了开发人员的工作量。
本发明实施例提供的装置,通过基于架构规则,确定代码模板,架构规则包括领域模型规则和分层规则,并结合该代码模板以及逆向工程,由此生成项目文件,从而能够很好的实现快速搭建具有分层架构形式的模块化代码,实现快速开发一个新的项目,避免了开发人员重复写系统逻辑的代码,极大减少了开发人员的工作量,提高了开发效率,并且,避免了开发人员模板使用不统一的问题,从项目开始就确定基础架构风格,结构清晰、方便维护。
基于上述任一实施例,基于架构规则,确定代码模板,包括:
基于架构规则,以及代码风格规范和/或数据访问实现方式,确定代码模板。
基于上述任一实施例,基于架构规则,以及代码风格规范和/或数据访问实现方式,确定代码模板,包括:
基于领域模型规则和分层规则,构建初始代码模板;
基于代码风格规范和/或数据访问实现方式,配置初始代码模板,得到代码模板。
基于上述任一实施例,生成模块320包括:
逻辑代码生成单元,用于基于代码模板和逆向工程,生成从接口层到数据层的逻辑代码;
项目文件生成单元,用于基于从接口层到数据层的逻辑代码,生成项目文件。
基于上述任一实施例,逻辑代码生成单元用于:
基于数据库中的数据模型,代码模板,以及逆向工程的代码生成功能,生成从接口层到数据层的逻辑代码。
基于上述任一实施例,架构规则是基于如下步骤确定的:
将多个候选架构规则集成在用户界面中;
基于用户在用户界面中选择的候选架构规则,确定架构规则。
基于上述任一实施例,各领域模型的信息包括模块的划分信息以及数据边界的划分信息。
基于上述任一实施例,本发明实施例提供了一种插件。图4是本发明提供的插件的结构示意图之二,如图4所示,该插件包括用户界面410,以及上述各实施例所述的项目生成装置420。
本发明实施例提供的插件,通过基于架构规则,确定代码模板,架构规则包括领域模型规则和分层规则,并结合该代码模板以及逆向工程,由此生成项目文件,从而能够很好的实现快速搭建具有分层架构形式的模块化代码,实现快速开发一个新的项目,避免了开发人员重复写系统逻辑的代码,极大减少了开发人员的工作量,提高了开发效率,并且,避免了开发人员模板使用不统一的问题,从项目开始就确定基础架构风格,结构清晰、方便维护。
图5示例了一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)510、通信接口(Communications Interface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储器530中的逻辑指令,以执行项目生成方法,该方法包括:基于架构规则,确定代码模板,所述架构规则包括领域模型规则和分层规则,所述领域模型规则包括各领域模型的信息,所述分层规则包括各领域模型内的分层信息;基于所述代码模板和逆向工程,生成项目文件。
此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的项目生成方法,该方法包括:基于架构规则,确定代码模板,所述架构规则包括领域模型规则和分层规则,所述领域模型规则包括各领域模型的信息,所述分层规则包括各领域模型内的分层信息;基于所述代码模板和逆向工程,生成项目文件。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的项目生成方法,该方法包括:基于架构规则,确定代码模板,所述架构规则包括领域模型规则和分层规则,所述领域模型规则包括各领域模型的信息,所述分层规则包括各领域模型内的分层信息;基于所述代码模板和逆向工程,生成项目文件。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种项目生成方法,其特征在于,包括:
基于架构规则,确定代码模板,所述架构规则包括领域模型规则和分层规则,所述领域模型规则包括各领域模型的信息,所述分层规则包括各领域模型内的分层信息;
基于所述代码模板和逆向工程,生成项目文件。
2.根据权利要求1所述的项目生成方法,其特征在于,所述基于架构规则,确定代码模板,包括:
基于所述架构规则,以及代码风格规范和/或数据访问实现方式,确定所述代码模板。
3.根据权利要求2所述的项目生成方法,其特征在于,所述基于所述架构规则,以及代码风格规范和/或数据访问实现方式,确定所述代码模板,包括:
基于所述领域模型规则和分层规则,构建初始代码模板;
基于所述代码风格规范和/或数据访问实现方式,配置所述初始代码模板,得到所述代码模板。
4.根据权利要求1所述的项目生成方法,其特征在于,所述基于所述代码模板和逆向工程,生成项目文件,包括:
基于所述代码模板和逆向工程,生成从接口层到数据层的逻辑代码;
基于所述从接口层到数据层的逻辑代码,生成所述项目文件。
5.根据权利要求4所述的项目生成方法,其特征在于,所述基于所述代码模板和逆向工程,生成从接口层到数据层的逻辑代码,包括:
基于数据库中的数据模型,所述代码模板,以及所述逆向工程的代码生成功能,生成所述从接口层到数据层的逻辑代码。
6.根据权利要求1至5中任一项所述的项目生成方法,其特征在于,所述架构规则是基于如下步骤确定的:
将多个候选架构规则集成在用户界面中;
基于用户在所述用户界面中选择的候选架构规则,确定所述架构规则。
7.根据权利要求1至5中任一项所述的项目生成方法,其特征在于,所述各领域模型的信息包括模块的划分信息以及数据边界的划分信息。
8.一种项目生成装置,其特征在于,包括:
确定模块,用于基于架构规则,确定代码模板,所述架构规则包括领域模型规则和分层规则,所述领域模型规则包括各领域模型的信息,所述分层规则包括各领域模型内的分层信息;
生成模块,用于基于所述代码模板和逆向工程,生成项目文件。
9.一种插件,其特征在于,包括用户界面,以及如权利要求8所述的项目生成装置。
10.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述项目生成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111280113.8A CN116048612A (zh) | 2021-10-28 | 2021-10-28 | 项目生成方法、装置、插件与电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111280113.8A CN116048612A (zh) | 2021-10-28 | 2021-10-28 | 项目生成方法、装置、插件与电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116048612A true CN116048612A (zh) | 2023-05-02 |
Family
ID=86127781
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111280113.8A Pending CN116048612A (zh) | 2021-10-28 | 2021-10-28 | 项目生成方法、装置、插件与电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116048612A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117311683A (zh) * | 2023-11-24 | 2023-12-29 | 浙江口碑网络技术有限公司 | 一种代码辅助系统、代码辅助处理方法、装置及电子设备 |
-
2021
- 2021-10-28 CN CN202111280113.8A patent/CN116048612A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117311683A (zh) * | 2023-11-24 | 2023-12-29 | 浙江口碑网络技术有限公司 | 一种代码辅助系统、代码辅助处理方法、装置及电子设备 |
CN117311683B (zh) * | 2023-11-24 | 2024-03-19 | 浙江口碑网络技术有限公司 | 一种代码辅助系统、代码辅助处理方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105487864B (zh) | 代码自动生成的方法和装置 | |
CN111061817B (zh) | 自适应业务构建系统、方法及计算机可读介质 | |
US8635253B2 (en) | Decorated model architecture for efficient model-driven application development | |
CN106484394B (zh) | 一种双引擎快速软件开发系统 | |
CN104111826A (zh) | 一种软件项目开发方法及装置 | |
DE102019005879A1 (de) | Generieren von dreidimensionalem Digitalcontent aus in natürlicher Sprache gegebenen Aufforderungen | |
CN110147225A (zh) | 一种代码生成方法、装置及计算机设备、存储介质 | |
CN110389832A (zh) | ZooKeeper容器集群部署方法、系统、设备及存储介质 | |
CN111666355B (zh) | 一种领域、数据、场景三层模型的模型构建方法及装置 | |
CN112817946A (zh) | 一种基于分层微服务的智能开发方法和系统 | |
CN116048612A (zh) | 项目生成方法、装置、插件与电子设备 | |
CN109783083B (zh) | Web应用开发方法及其系统 | |
CN110222047A (zh) | 一种动态表单生成方法和装置 | |
US10140387B2 (en) | Model for managing variations in a product structure for a product | |
Miao et al. | ModelHUB: lifecycle management for deep learning | |
US10157360B1 (en) | Smart bricks information system | |
US11693652B2 (en) | Automated authoring of software solutions from a data model | |
US20120011157A1 (en) | Method and system for inferencing taxonomy topic concept objects using a metamodel instance model | |
Xu et al. | Enabling user driven big data application on remote computing resources | |
WO2015196787A1 (zh) | 一种基于界面元视图以构造界面视图的可视界面建模方法 | |
CN115794967B (zh) | 关系数据映射与语义本体同步生成方法及装置 | |
CN111752552A (zh) | 一种工业软件设计与应用平台 | |
CN117093259B (zh) | 一种模型配置方法及相关设备 | |
WO2005089350A2 (en) | Custom database system and method of building the same | |
CN113190463B (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 |