CN110659027A - 一种代码生成方法、装置及电子设备 - Google Patents
一种代码生成方法、装置及电子设备 Download PDFInfo
- Publication number
- CN110659027A CN110659027A CN201910894226.3A CN201910894226A CN110659027A CN 110659027 A CN110659027 A CN 110659027A CN 201910894226 A CN201910894226 A CN 201910894226A CN 110659027 A CN110659027 A CN 110659027A
- Authority
- CN
- China
- Prior art keywords
- code
- control
- file
- view control
- configuration
- 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 39
- 238000013507 mapping Methods 0.000 claims abstract description 20
- 238000004590 computer program Methods 0.000 claims description 3
- 238000012827 research and development Methods 0.000 abstract description 26
- 238000010586 diagram Methods 0.000 description 4
- 238000011160 research Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
Abstract
本发明提供了一种代码生成方法、装置及电子设备。所述方法包括:获取待配置视图控件;根据预先配置的控件配置文件,获取所述待配置视图控件对应的预定义名称;根据视图控件与代码配置文件的映射关系,获取所述待配置视图控件对应的目标代码配置文件;根据所述目标代码配置文件,获取所述待配置视图控件对应的目标配置代码;根据所述预定义名称和所述目标配置代码,生成所述待配置视图控件对应的控件代码,并将所述控件代码写入指定文件内。本发明可以根据视图控件的预定义名称及配置代码自动生成视图控件对应的控件代码,无需研发人员手动编写代码,降低了研发人员的工作量,从而提高了研发人员的工作效率。
Description
技术领域
本发明涉及软件开发技术领域,特别是涉及一种代码生成方法、一种代码生成装置及一种电子设备。
背景技术
在Android(安卓)日常开发领域中,开发者为了实现视图层view的xml文件中的控件(view,并有id)与java代码层实现绑定关系的时候,通常会使用Android提供的findViewById函数、开源框架butterKnife提供的注解@BindView等方式来获取到xml文件中的视图控件。而这些方式也需要研发人员编写控件代码,一个控件代码的示例如下:
Xml:
<TextView
android:id="@+id/nameTv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="hello world!"/>
Java:
TextView nameTv=(TextView)findViewById(R.id.nameTv);
上面的代码仅为一个控件,而在控件增多时,就需要研发人员写很多类似的代码,研发人员在编写的时候还要记住每个控件id和类型才能进行编码,导致研发人员需要编写大量的代码,增加了研发人员的工作量,降低了工作效率。
发明内容
本发明提供一种代码生成方法、装置及电子设备,以解决现有技术中的控件代码需要研发人员手动编写,导致研发人员工作量大,降低了研发效率的问题。
为了解决上述问题,本发明公开了一种代码生成方法,包括:
获取待配置视图控件;
根据预先配置的控件配置文件,获取所述待配置视图控件对应的预定义名称;
根据视图控件与代码配置文件的映射关系,获取所述待配置视图控件对应的目标代码配置文件;
根据所述目标代码配置文件,获取所述待配置视图控件对应的目标配置代码;
根据所述预定义名称和所述目标配置代码,生成所述待配置视图控件对应的控件代码,并将所述控件代码写入指定文件内。
可选地,在所述获取待配置视图控件之前,还包括:
获取多个视图控件;所述待配置视图控件为所述多个视图控件中的一个视图控件;
针对每个所述视图控件,配置所述视图控件对应的命名和代码配置文件;所述预定义命名为多个所述命名中的一个命名,所述目标代码配置文件为多个所述代码配置文件中的一个代码配置文件;
在所述代码配置文件中添加所述视图控件对应的配置代码;所述目标配置代码为多个所述配置代码中的一个配置代码;
建立所述命名和所述代码配置文件对应的代码生成规则。
可选地,所述根据所述预定义名称和所述目标配置代码,生成所述待配置视图控件对应的控件代码,包括:
获取所述预定义名称和所述目标代码配置文件对应的目标代码生成规则;所述目标代码生成规则为多个所述代码生成规则中的一个代码生成规则;
基于所述预定义名称、所述目标配置代码和所述目标代码生成规则,生成所述控件代码。
可选地,所述获取待配置视图控件,包括:
采用预置文件获取方式,获取用户预先编写的可扩展标记语言文件;
对所述可扩展标记语言文件进行解析,得到解析结果;
根据所述解析结果,确定所述待配置视图控件。
可选地,所述采用预置文件获取方式,获取用户预先编写的可扩展标记语言文件,包括:
通过预置脚本,读取所述可扩展标记语言文件;或
接收所述用户通过web端上传的所述可扩展标记语言文件;或
调用预置工具内嵌的插件,读取所述可扩展标记语言文件。
为了解决上述问题,本发明公开了一种代码生成装置,包括:
视图控件获取模块,用于获取待配置视图控件;
预定义名称获取模块,用于根据预先配置的控件配置文件,获取所述待配置视图控件对应的预定义名称;
目标文件获取模块,用于根据视图控件与代码配置文件的映射关系,获取所述待配置视图控件对应的目标代码配置文件;
目标代码获取模块,用于根据所述目标代码配置文件,获取所述待配置视图控件对应的目标配置代码;
控件代码生成模块,用于根据所述预定义名称和所述目标配置代码,生成所述待配置视图控件对应的控件代码,并将所述控件代码写入指定文件内。
可选地,还包括:
多视图控件获取模块,用于获取多个视图控件;所述待配置视图控件为所述多个视图控件中的一个视图控件;
命名文件配置模块,用于针对每个所述视图控件,配置所述视图控件对应的命名和代码配置文件;所述预定义命名为多个所述命名中的一个命名,所述目标代码配置文件为多个所述代码配置文件中的一个代码配置文件;
配置代码添加模块,用于在所述代码配置文件中添加所述视图控件对应的配置代码;所述目标配置代码为多个所述配置代码中的一个配置代码;
代码规则建立模块,用于建立所述命名和所述代码配置文件对应的代码生成规则。
可选地,所述控件代码生成模块包括:
目标规则获取子模块,用于获取所述预定义名称和所述目标代码配置文件对应的目标代码生成规则;所述目标代码生成规则为多个所述代码生成规则中的一个代码生成规则;
控件代码生成子模块,用于基于所述预定义名称、所述目标配置代码和所述目标代码生成规则,生成所述控件代码。
可选地,所述视图控件获取模块包括:
语言文件获取子模块,用于采用预置文件获取方式,获取用户预先编写的可扩展标记语言文件;
解析结果获取子模块,用于对所述可扩展标记语言文件进行解析,得到解析结果;
视图控件确定子模块,用于根据所述解析结果,确定所述待配置视图控件。
可选地,所述语言文件获取子模块包括:
第一语言文件读取子模块,用于通过预置脚本,读取所述可扩展标记语言文件;或
语言文件接收子模块,用于接收所述用户通过web端上传的所述可扩展标记语言文件;或
第二语言文件读取子模块,用于调用预置工具内嵌的插件,读取所述可扩展标记语言文件。
为了解决上述问题,本发明公开了一种电子设备,包括:
处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一项所述的代码生成方法。
与现有技术相比,本发明包括以下优点:
本发明实施例提供的代码生成方案,通过获取待配置视图控件,根据预先配置的控件配置文件,获取待配置视图控件对应的预定义名称,根据视图控件与代码配置文件的映射关系,获取待配置视图控件对应的目标代码配置文件,根据目标代码配置文件,获取待配置视图对应的目标配置代码,根据预定义名称和目标配置代码,生成待配置视图控件对应的控件代码,并将控件代码写入指定文件内。本发明实施例可以根据视图控件的预定义名称及配置代码自动生成视图控件对应的控件代码,无需研发人员手动编写代码,降低了研发人员的工作量,从而提高了研发人员的工作效率。
附图说明
图1是本发明实施例提供的一种代码生成方法的步骤流程图;
图2是本发明实施例提供的一种代码生成方法的步骤流程图;
图3是本发明实施例提供的一种代码生成装置的结构示意图;
图4是本发明实施例提供的一种代码生成装置的结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图1,示出了本发明实施例提供的一种代码生成方法的步骤流程图,该代码生成方法具体可以包括如下步骤:
步骤101:获取待配置视图控件。
在本发明实施例中,待配置视图控件是指用于待编写代码的视图控件。
本发明中所限定的待配置视图控件可以为视图层view的xml文件中的控件,也即view控件。
待配置视图控件可以是研发人员在完成Android的视图xml编写后,从而获取的视图xml即为待配置视图控件,需要编写代码与视图xml绑定。
在本发明中,可以通过预置脚本读取xml文件,并进行解析以得到待配置视图控件;也可以接收由用户通过web端上传的xml文件,并解析得到待配置视图控件;还可以通过预置工具内嵌的插件读取xml,并解析得到待配置视图控件,具体地,将在下述实施例中进行详细描述,本发明实施例在此不再加以赘述。
当然,在具体实现中,本领域技术人员还可以采用其它方式获取待配置视图控件,具体地,可以根据业务需求而定,本发明实施例对此不加以限制。
在获取待配置控件之后,执行步骤102。
步骤102:根据预先配置的控件配置文件,获取所述待配置视图控件对应的预定义名称。
预定义名称是指业务人员预先为待配置视图控件配置的名称,例如,以控件名称为key,生成变量value,并通过“=”连接,TextView=Tv;EditText=Et;ImageView=Iv,在“=”前的即为视图控件,即视图控件包括:TextView、EditText和ImageView,这些视图控件即相当于key,而为TextView、EditText和ImageView配置的预定义名称即为:Tv、Et和Iv,这些预定义名称即为value。
可以理解地,上述示例仅是为了更好地理解本发明实施例的技术方案而列举的示例,不作为对本发明实施例的唯一限制。
控件配置文件是指业务人员预先设置的视图控件对应的配置文件,在控件配置文件中保存有各视图控件与相应的预定义名称之间的映射关系。
在获取待配置视图控件之后,可以根据预先配置的控件配置文件,获取与待配置视图控件对应的预定义名称。
在根据预先配置的控件配置文件,获取与待配置视图控件对应的预定义名称之后,执行步骤103。
步骤103:根据视图控件与代码配置文件的映射关系,获取所述待配置视图控件对应的目标代码配置文件。
代码配置文件是指由业务人员预先配置的与视图控件对应的配置代码,例如,视图控件a对应的配置代码如下:
Modify=private;可修改为:public
final=false;
forward=id;
rootView=this;可修改为空,或根布局对象名;
needConverter=true。
将视图控件a对应的配置代码可以添加到视图控件a对应的空文件中,以生成视图控件a对应的代码配置文件。
可以理解地,上述示例仅是为了更好地理解本发明实施例的技术方案而列举的示例,不作为对本发明实施例的唯一限制。
目标代码配置文件是指与待配置视图控件对应的代码配置文件。
在获取待配置视图控件之后,可以根据视图控件与代码配置文件之间的映射关系,获取待配置视图控件对应的目标代码配置文件。
在根据视图控件与代码配置文件的映射关系,获取待配置视图控件对应的目标代码配置文件之后,执行步骤104。
步骤104:根据所述目标代码配置文件,获取所述待配置视图控件对应的目标配置代码。
在代码配置文件中记录有待配置视图控件对应的配置代码,目标配置代码是指保存于目标代码配置文件中与待配置控件对应的配置代码。
在获取待配置视图控件对应的目标待配置文件之后,可以根据目标待配置文件,获取与待配置视图控件对应的目标配置代码。
在根据目标代码配置文件,获取待配置视图控件对应的目标配置代码之后,执行步骤105。
步骤105:根据所述预定义名称和所述目标配置代码,生成所述待配置视图控件对应的控件代码,并将所述控件代码写入指定文件内。
在系统中预先保存有视图控件的代码生成规则,例如,xml文件中xml控件为TextView,控件id值为name,所配置的生成规则为id+_+Tv,则生成的java代码为:
private TextView nameTv;
nameTv=(TextView)findViewById(R.id.nameTv)。
在生成上述java代码中,如果rootView不是当前对象,则配置根布局对象名。
可以理解地,上述示例仅是为了更好地理解本发明实施例的技术方案而列举的示例,不作为对本发明实施例的唯一限制。
控件代码是指与待配置视图控件对应的代码。
在获取预定义名称和目标配置代码之后,可以根据预定义名称和目标配置代码,按照代码生成规则,生成待配置视图控件对应的控件代码,并将控件代码写入指定文件内,如将控件代码复制到Java文件中等。
本发明可以根据视图控件的预定义名称及配置代码自动生成视图控件对应的控件代码,无需研发人员手动编写代码。
本发明实施例提供的代码生成方法,通过获取待配置视图控件,根据预先配置的控件配置文件,获取待配置视图控件对应的预定义名称,根据视图控件与代码配置文件的映射关系,获取待配置视图控件对应的目标代码配置文件,根据目标代码配置文件,获取待配置视图对应的目标配置代码,根据预定义名称和目标配置代码,生成待配置视图控件对应的控件代码,并将控件代码写入指定文件内。本发明实施例可以根据视图控件的预定义名称及配置代码自动生成视图控件对应的控件代码,无需研发人员手动编写代码,降低了研发人员的工作量,从而提高了研发人员的工作效率。
参照图2,示出了本发明实施例提供的一种代码生成方法的步骤流程图,该代码生成方法具体可以包括如下步骤:
步骤201:获取多个视图控件。
在本发明实施例中,视图控件是指可以为视图层view的xml文件中的控件,也即view控件。
业务人员可以预先设置多个视图控件的配置代码,进而,在后续过程中,可以根据预先配置的代码直接生成相应的代码,无需业务人员每次都进行编写。
可以理解地,下述步骤中提及的待配置视图控件为多个视图控件中的一个视图控件,当然,也可以为多个视图控件中的两个或以上个数的视图控件,具体地,可以根据实际情况而定,本发明实施例对此不加以限制。
在业务人员需要配置视图控件对应的配置代码时,可以由业务人员编写Android的视图xml。
在获取多个视图控件之后,执行步骤202。
步骤202:针对每个所述视图控件,配置所述视图控件对应的命名和代码配置文件。
步骤203:在所述代码配置文件中添加所述视图控件对应的配置代码。
在获取多个视图控件之后,可以由业务人员针对每一个视图控件,分别配置相应的命名和代码配置文件,例如,以控件名称为key,生成变量value,并通过“=”连接,举例如下:TextView=Tv;EditText=Et;ImageView=Iv;在“=”前的即为视图控件,“=”后的即为视图控件的命名,即视图控件包括:TextView、EditText和ImageView,这些视图控件即相当于key,而为TextView、EditText和ImageView配置的预定义名称即为:Tv、Et和Iv,这些预定义名称即为value。
可以理解地,上述示例仅是为了更好地理解本发明实施例的技术方案而列举的示例,不作为对本发明实施例的唯一限制。
在获取多个视图控件之后,可以由业务人员分别为每个视图控件配置相应的命名。
在下述步骤中提及的预定义命名即为多个视图控件对应的命名中的一个命名。
在为每个视图控件配置下相应的命名之后,还可以为每个视图控件配置相应的代码配置文件,进而,可以在代码配置文件中记录有各视图控件所对应的控件代码,例如,安卓控件,如遇到自定义控件或第三方类库,则需要增加配置文件内容,即代码配置文件,举例如下:
Modify=private;可修改为:public
final=false;
forward=id;
rootView=this;可修改为空,或根布局对象名;
needConverter=true。
在获取多个视图控件之后,可以分别为每个视图控件配置相应的代码配置文件,在下述步骤中提及的目标代码配置文件可以为多个代码配置文件中的一个代码配置文件,也可以为多个代码配置文件中的两个或以上的代码配置文件,具体地,可以根据业务需求而定,本发明实施例对此不加以限制。
在为每个代码配置文件中添加配置代码之后,即可完成视图控件与代码配置文件的配置工作,即预先为每个视图控件配置相应的代码。
在下述步骤中提及的目标配置代码为多个配置代码中的一个配置代码。
在代码配置文件中添加视图控件对应的配置代码之后,执行步骤204。
步骤204:建立所述命名和所述代码配置文件对应的代码生成规则。
在配置各视图控件对应的命名和代码配置文件之后,可以为各视图控件的命名和代码配置文件建立相应的代码生成规则,例如,视图控件a对应的命名为Tv,代码配置文件中的配置代码为:id值为name,所配置的生成规则为id+_+Tv,即生成的java变量nameTv等。
可以理解地,上述示例仅是为了更好地理解本发明实施例的技术方案而列举的示例,不作为对本发明实施例的唯一限制。
在建立命名和代码配置文件对应的代码生成规则之后,执行步骤205。
步骤205:采用预置文件获取方式,获取用户预先编写的可扩展标记语言文件。
预置文件获取方式是指用于获取xml文件的方式,在xml文件中即记录了xml控件。
在本发明中,可以采用预置文件获取方式,获取用户预先编写的可扩展标记语言文件(即xml文件),具体地,结合下述具体实现方式进行详细描述。
在本发明的一种具体实现中,上述步骤205可以包括:
子步骤S1:通过预置脚本,读取所述可扩展标记语言文件;或
子步骤S2:接收所述用户通过web端上传的所述可扩展标记语言文件;或
子步骤S3:调用预置工具内嵌的插件,读取所述可扩展标记语言文件。
在本发明实施例中,在xml文件所对应的的activity中,通过快捷键唤起预置工具(如IDE等)内嵌的插件,调用该插件读取xml文件。
通过预置脚本(如windows脚本等)读取xml文件。
用户可以通过上传xml或xml代码到表单中,并接收用户上传的xml文件。
可以理解地,上述示例仅是为了更好地理解本发明实施例的技术方案而列举的示例,不作为对本发明实施例的唯一限制,在具体实现中,还可以采用其它方式获取xml文件,具体地,可以根据业务需求而定。
在采用预置文件获取方式,获取用户预先编写的可扩展标记语言文件之后,执行步骤206。
步骤206:对所述可扩展标记语言文件进行解析,得到解析结果。
在得到xml文件之后,可以对xml文件进行解析,进而,可以得到相应的解析结果。
在对xml文件进行解析得到解析结果之后,执行步骤207。
步骤207:根据所述解析结果,确定所述待配置视图控件。
在解析结果包含有多个视图控件,在用户需要对其中的一个或多个视图控件进行配置时,可以选择其中的一个或多个视图控件作为待配置视图控件,例如,解析结果中包含的视图控件为:控件a、控件b、控件c和控件d,在需要对控件a和控件c进行配置时,用户可以从中选择控件a和控件c以作为待配置视图控件。
可以理解地,上述示例仅是为了更好地理解本发明实施例的技术方案而列举的示例,不作为对本发明实施例的唯一限制。
步骤208:根据预先配置的控件配置文件,获取所述待配置视图控件对应的预定义名称。
预定义名称是指业务人员预先为待配置视图控件配置的名称,例如,以控件名称为key,生成变量value,并通过“=”连接,TextView=Tv;EditText=Et;ImageView=Iv,在“=”前的即为视图控件,即视图控件包括:TextView、EditText和ImageView,这些视图控件即相当于key,而为TextView、EditText和ImageView配置的预定义名称即为:Tv、Et和Iv,这些预定义名称即为value。
可以理解地,上述示例仅是为了更好地理解本发明实施例的技术方案而列举的示例,不作为对本发明实施例的唯一限制。
控件配置文件是指业务人员预先设置的视图控件对应的配置文件,在控件配置文件中保存有各视图控件与相应的预定义名称之间的映射关系。
在获取待配置视图控件之后,可以根据预先配置的控件配置文件,获取与待配置视图控件对应的预定义名称。
在根据预先配置的控件配置文件,获取与待配置视图控件对应的预定义名称之后,执行步骤209。
步骤209:根据视图控件与代码配置文件的映射关系,获取所述待配置视图控件对应的目标代码配置文件。
代码配置文件是指由业务人员预先配置的与视图控件对应的配置代码,例如,视图控件a对应的配置代码如下:
Modify=private;可修改为:public
final=false;
forward=id;
rootView=this;可修改为空,或根布局对象名;
needConverter=true。
将视图控件a对应的配置代码可以添加到视图控件a对应的空文件中,以生成视图控件a对应的代码配置文件。
可以理解地,上述示例仅是为了更好地理解本发明实施例的技术方案而列举的示例,不作为对本发明实施例的唯一限制。
目标代码配置文件是指与待配置视图控件对应的代码配置文件。
在获取待配置视图控件之后,可以根据视图控件与代码配置文件之间的映射关系,获取待配置视图控件对应的目标代码配置文件。
在根据视图控件与代码配置文件的映射关系,获取待配置视图控件对应的目标代码配置文件之后,执行步骤209。
步骤210:根据所述目标代码配置文件,获取所述待配置视图控件对应的目标配置代码。
在代码配置文件中记录有待配置视图控件对应的配置代码,目标配置代码是指保存于目标代码配置文件中与待配置控件对应的配置代码。
在获取待配置视图控件对应的目标待配置文件之后,可以根据目标待配置文件,获取与待配置视图控件对应的目标配置代码。
在根据目标代码配置文件,获取待配置视图控件对应的目标配置代码之后,执行步骤211。
步骤211:获取所述预定义名称和所述目标代码配置文件对应的目标代码生成规则。
目标代码生成规则是指待配置控件和预定义名称所对应的代码生成规则。
在获取目标代码配置文件和预定义名称之后,可以根据目标代码配置文件和预定义名称获取相应的目标代码生成规则。
在获取目标代码生成规则之后,执行步骤212。
步骤212:基于所述预定义名称、所述目标配置代码和所述目标代码生成规则,生成所述控件代码。
在系统中预先保存有视图控件的代码生成规则,例如,xml文件中xml控件为TextView,控件id值为name,所配置的生成规则为id+_+Tv,则生成的java代码为:
private TextView nameTv;
nameTv=(TextView)findViewById(R.id.nameTv)。
在生成上述java代码中,如果rootView不是当前对象,则配置根布局对象名。
可以理解地,上述示例仅是为了更好地理解本发明实施例的技术方案而列举的示例,不作为对本发明实施例的唯一限制。
控件代码是指与待配置视图控件对应的代码。
在获取预定义名称和目标配置代码之后,可以根据预定义名称和目标配置代码,按照代码生成规则,生成待配置视图控件对应的控件代码,并将控件代码写入指定文件内,如将控件代码复制到Java文件中等。
本发明可以根据视图控件的预定义名称及配置代码自动生成视图控件对应的控件代码,无需研发人员手动编写代码。
本发明实施例提供的代码生成方法,通过获取待配置视图控件,根据预先配置的控件配置文件,获取待配置视图控件对应的预定义名称,根据视图控件与代码配置文件的映射关系,获取待配置视图控件对应的目标代码配置文件,根据目标代码配置文件,获取待配置视图对应的目标配置代码,根据预定义名称和目标配置代码,生成待配置视图控件对应的控件代码,并将控件代码写入指定文件内。本发明实施例可以根据视图控件的预定义名称及配置代码自动生成视图控件对应的控件代码,无需研发人员手动编写代码,降低了研发人员的工作量,从而提高了研发人员的工作效率。
参照图3,示出了本发明实施例提供的一种代码生成装置的结构示意图,该代码生成装置具体可以包括如下模块:
视图控件获取模块301,用于获取待配置视图控件;
预定义名称获取模块302,用于根据预先配置的控件配置文件,获取所述待配置视图控件对应的预定义名称;
目标文件获取模块303,用于根据视图控件与代码配置文件的映射关系,获取所述待配置视图控件对应的目标代码配置文件;
目标代码获取模块304,用于根据所述目标代码配置文件,获取所述待配置视图控件对应的目标配置代码;
控件代码生成模块305,用于根据所述预定义名称和所述目标配置代码,生成所述待配置视图控件对应的控件代码,并将所述控件代码写入指定文件内。
本发明实施例提供的代码生成装置,通过获取待配置视图控件,根据预先配置的控件配置文件,获取待配置视图控件对应的预定义名称,根据视图控件与代码配置文件的映射关系,获取待配置视图控件对应的目标代码配置文件,根据目标代码配置文件,获取待配置视图对应的目标配置代码,根据预定义名称和目标配置代码,生成待配置视图控件对应的控件代码,并将控件代码写入指定文件内。本发明实施例可以根据视图控件的预定义名称及配置代码自动生成视图控件对应的控件代码,无需研发人员手动编写代码,降低了研发人员的工作量,从而提高了研发人员的工作效率。
参照图4,示出了本发明实施例提供的一种代码生成装置的结构示意图,该代码生成装置具体可以包括如下模块:
多视图控件获取模块401,用于获取多个视图控件;所述待配置视图控件为所述多个视图控件中的一个视图控件;
命名文件配置模块402,用于针对每个所述视图控件,配置所述视图控件对应的命名和代码配置文件;所述预定义命名为多个所述命名中的一个命名,所述目标代码配置文件为多个所述代码配置文件中的一个代码配置文件;
配置代码添加模块403,用于在所述代码配置文件中添加所述视图控件对应的配置代码;所述目标配置代码为多个所述配置代码中的一个配置代码;
代码规则建立模块404,用于建立所述命名和所述代码配置文件对应的代码生成规则;
视图控件获取模块405,用于获取待配置视图控件;
预定义名称获取模块406,用于根据预先配置的控件配置文件,获取所述待配置视图控件对应的预定义名称;
目标文件获取模块407,用于根据视图控件与代码配置文件的映射关系,获取所述待配置视图控件对应的目标代码配置文件;
目标代码获取模块408,用于根据所述目标代码配置文件,获取所述待配置视图控件对应的目标配置代码;
控件代码生成模块409,用于根据所述预定义名称和所述目标配置代码,生成所述待配置视图控件对应的控件代码,并将所述控件代码写入指定文件内。
可选地,所述控件代码生成模块409包括:
目标规则获取子模块4091,用于获取所述预定义名称和所述目标代码配置文件对应的目标代码生成规则;所述目标代码生成规则为多个所述代码生成规则中的一个代码生成规则;
控件代码生成子模块4092,用于基于所述预定义名称、所述目标配置代码和所述目标代码生成规则,生成所述控件代码。
可选地,所述视图控件获取模块405包括:
语言文件获取子模块4051,用于采用预置文件获取方式,获取用户预先编写的可扩展标记语言文件;
解析结果获取子模块4052,用于对所述可扩展标记语言文件进行解析,得到解析结果;
视图控件确定子模块4053,用于根据所述解析结果,确定所述待配置视图控件。
可选地,所述语言文件获取子模块4051包括:
第一语言文件读取子模块,用于通过预置脚本,读取所述可扩展标记语言文件;或
语言文件接收子模块,用于接收所述用户通过web端上传的所述可扩展标记语言文件;或
第二语言文件读取子模块,用于调用预置工具内嵌的插件,读取所述可扩展标记语言文件。
本发明实施例提供的代码生成装置,通过获取待配置视图控件,根据预先配置的控件配置文件,获取待配置视图控件对应的预定义名称,根据视图控件与代码配置文件的映射关系,获取待配置视图控件对应的目标代码配置文件,根据目标代码配置文件,获取待配置视图对应的目标配置代码,根据预定义名称和目标配置代码,生成待配置视图控件对应的控件代码,并将控件代码写入指定文件内。本发明实施例可以根据视图控件的预定义名称及配置代码自动生成视图控件对应的控件代码,无需研发人员手动编写代码,降低了研发人员的工作量,从而提高了研发人员的工作效率。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
另外地,本发明实施例还提供了一种电子设备,包括:处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一项所述的代码生成方法。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种代码生成方法、一种代码生成装置和一种电子设备,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (11)
1.一种代码生成方法,其特征在于,包括:
获取待配置视图控件;
根据预先配置的控件配置文件,获取所述待配置视图控件对应的预定义名称;
根据视图控件与代码配置文件的映射关系,获取所述待配置视图控件对应的目标代码配置文件;
根据所述目标代码配置文件,获取所述待配置视图控件对应的目标配置代码;
根据所述预定义名称和所述目标配置代码,生成所述待配置视图控件对应的控件代码,并将所述控件代码写入指定文件内。
2.根据权利要求1所述的方法,其特征在于,在所述获取待配置视图控件之前,还包括:
获取多个视图控件;所述待配置视图控件为所述多个视图控件中的一个视图控件;
针对每个所述视图控件,配置所述视图控件对应的命名和代码配置文件;所述预定义命名为多个所述命名中的一个命名,所述目标代码配置文件为多个所述代码配置文件中的一个代码配置文件;
在所述代码配置文件中添加所述视图控件对应的配置代码;所述目标配置代码为多个所述配置代码中的一个配置代码;
建立所述命名和所述代码配置文件对应的代码生成规则。
3.根据权利要求2所述的方法,其特征在于,所述根据所述预定义名称和所述目标配置代码,生成所述待配置视图控件对应的控件代码,包括:
获取所述预定义名称和所述目标代码配置文件对应的目标代码生成规则;所述目标代码生成规则为多个所述代码生成规则中的一个代码生成规则;
基于所述预定义名称、所述目标配置代码和所述目标代码生成规则,生成所述控件代码。
4.根据权利要求1所述的方法,其特征在于,所述获取待配置视图控件,包括:
采用预置文件获取方式,获取用户预先编写的可扩展标记语言文件;
对所述可扩展标记语言文件进行解析,得到解析结果;
根据所述解析结果,确定所述待配置视图控件。
5.根据权利要求4所述的方法,其特征在于,所述采用预置文件获取方式,获取用户预先编写的可扩展标记语言文件,包括:
通过预置脚本,读取所述可扩展标记语言文件;或
接收所述用户通过web端上传的所述可扩展标记语言文件;或
调用预置工具内嵌的插件,读取所述可扩展标记语言文件。
6.一种代码生成装置,其特征在于,包括:
视图控件获取模块,用于获取待配置视图控件;
预定义名称获取模块,用于根据预先配置的控件配置文件,获取所述待配置视图控件对应的预定义名称;
目标文件获取模块,用于根据视图控件与代码配置文件的映射关系,获取所述待配置视图控件对应的目标代码配置文件;
目标代码获取模块,用于根据所述目标代码配置文件,获取所述待配置视图控件对应的目标配置代码;
控件代码生成模块,用于根据所述预定义名称和所述目标配置代码,生成所述待配置视图控件对应的控件代码,并将所述控件代码写入指定文件内。
7.根据权利要求6所述的装置,其特征在于,还包括:
多视图控件获取模块,用于获取多个视图控件;所述待配置视图控件为所述多个视图控件中的一个视图控件;
命名文件配置模块,用于针对每个所述视图控件,配置所述视图控件对应的命名和代码配置文件;所述预定义命名为多个所述命名中的一个命名,所述目标代码配置文件为多个所述代码配置文件中的一个代码配置文件;
配置代码添加模块,用于在所述代码配置文件中添加所述视图控件对应的配置代码;所述目标配置代码为多个所述配置代码中的一个配置代码;
代码规则建立模块,用于建立所述命名和所述代码配置文件对应的代码生成规则。
8.根据权利要求7所述的装置,其特征在于,所述控件代码生成模块包括:
目标规则获取子模块,用于获取所述预定义名称和所述目标代码配置文件对应的目标代码生成规则;所述目标代码生成规则为多个所述代码生成规则中的一个代码生成规则;
控件代码生成子模块,用于基于所述预定义名称、所述目标配置代码和所述目标代码生成规则,生成所述控件代码。
9.根据权利要求6所述的装置,其特征在于,所述视图控件获取模块包括:
语言文件获取子模块,用于采用预置文件获取方式,获取用户预先编写的可扩展标记语言文件;
解析结果获取子模块,用于对所述可扩展标记语言文件进行解析,得到解析结果;
视图控件确定子模块,用于根据所述解析结果,确定所述待配置视图控件。
10.根据权利要求9所述的装置,其特征在于,所述语言文件获取子模块包括:
第一语言文件读取子模块,用于通过预置脚本,读取所述可扩展标记语言文件;或
语言文件接收子模块,用于接收所述用户通过web端上传的所述可扩展标记语言文件;或
第二语言文件读取子模块,用于调用预置工具内嵌的插件,读取所述可扩展标记语言文件。
11.一种电子设备,其特征在于,包括:
处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1至5任一项所述的代码生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910894226.3A CN110659027A (zh) | 2019-09-20 | 2019-09-20 | 一种代码生成方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910894226.3A CN110659027A (zh) | 2019-09-20 | 2019-09-20 | 一种代码生成方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110659027A true CN110659027A (zh) | 2020-01-07 |
Family
ID=69038272
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910894226.3A Pending CN110659027A (zh) | 2019-09-20 | 2019-09-20 | 一种代码生成方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110659027A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111736806A (zh) * | 2020-05-14 | 2020-10-02 | 广州三七网络科技有限公司 | 控件注入方法、装置及终端设备 |
CN112181437A (zh) * | 2020-09-04 | 2021-01-05 | 招商局金融科技有限公司 | 基于Devops的灰度发布方法、装置、计算机设备及存储介质 |
CN112631588A (zh) * | 2020-12-28 | 2021-04-09 | 北京五八信息技术有限公司 | 文件生成方法、装置、电子设备和计算机可读介质 |
WO2024066576A1 (zh) * | 2022-09-29 | 2024-04-04 | 华为技术有限公司 | 软件配置方法和装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102117202A (zh) * | 2009-12-30 | 2011-07-06 | 北大方正集团有限公司 | 基于j2ee架构的代码生成装置 |
US20110271248A1 (en) * | 2010-04-29 | 2011-11-03 | Microsoft Corporation | Converting controls into source code |
CN102830957A (zh) * | 2011-06-15 | 2012-12-19 | 康佳集团股份有限公司 | 一种生成界面代码和电视机应用软件的方法 |
CN103383645A (zh) * | 2013-07-29 | 2013-11-06 | 北京邮电大学 | 代码生成方法及系统 |
CN104049974A (zh) * | 2014-06-25 | 2014-09-17 | 国家电网公司 | 控件动态组装方法和系统 |
CN106202006A (zh) * | 2016-06-27 | 2016-12-07 | 北京百度网讯科技有限公司 | 文件生成方法和装置 |
CN107992304A (zh) * | 2017-12-29 | 2018-05-04 | 北京远特科技股份有限公司 | 一种生成显示界面的方法和装置 |
-
2019
- 2019-09-20 CN CN201910894226.3A patent/CN110659027A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102117202A (zh) * | 2009-12-30 | 2011-07-06 | 北大方正集团有限公司 | 基于j2ee架构的代码生成装置 |
US20110271248A1 (en) * | 2010-04-29 | 2011-11-03 | Microsoft Corporation | Converting controls into source code |
CN102830957A (zh) * | 2011-06-15 | 2012-12-19 | 康佳集团股份有限公司 | 一种生成界面代码和电视机应用软件的方法 |
CN103383645A (zh) * | 2013-07-29 | 2013-11-06 | 北京邮电大学 | 代码生成方法及系统 |
CN104049974A (zh) * | 2014-06-25 | 2014-09-17 | 国家电网公司 | 控件动态组装方法和系统 |
CN106202006A (zh) * | 2016-06-27 | 2016-12-07 | 北京百度网讯科技有限公司 | 文件生成方法和装置 |
CN107992304A (zh) * | 2017-12-29 | 2018-05-04 | 北京远特科技股份有限公司 | 一种生成显示界面的方法和装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111736806A (zh) * | 2020-05-14 | 2020-10-02 | 广州三七网络科技有限公司 | 控件注入方法、装置及终端设备 |
CN112181437A (zh) * | 2020-09-04 | 2021-01-05 | 招商局金融科技有限公司 | 基于Devops的灰度发布方法、装置、计算机设备及存储介质 |
CN112181437B (zh) * | 2020-09-04 | 2024-03-19 | 招商局金融科技有限公司 | 基于Devops的灰度发布方法、装置、计算机设备及存储介质 |
CN112631588A (zh) * | 2020-12-28 | 2021-04-09 | 北京五八信息技术有限公司 | 文件生成方法、装置、电子设备和计算机可读介质 |
WO2024066576A1 (zh) * | 2022-09-29 | 2024-04-04 | 华为技术有限公司 | 软件配置方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110659027A (zh) | 一种代码生成方法、装置及电子设备 | |
US11538046B2 (en) | Page data acquisition method, apparatus, server, electronic device and computer readable medium | |
CN104484216A (zh) | 服务接口文档和在线测试工具生成方法、装置 | |
CN109783388B (zh) | Ui自动化测试方法、装置及电子设备 | |
CN112765023B (zh) | 测试用例生成方法、装置 | |
CN113076096B (zh) | 一种桌面应用程序开发方法、装置、设备及存储介质 | |
KR20140009297A (ko) | 예시에 의한 데이터 포매팅 | |
CN102541732B (zh) | 一种构建Web自动化测试框架的方法 | |
CN104793961A (zh) | 使用原生Web代码的快速JavaWeb开发方法及系统 | |
CN110673847A (zh) | 配置页面的生成方法、装置、电子设备和可读存储介质 | |
CN111818175B (zh) | 企业服务总线配置文件生成方法、装置、设备和存储介质 | |
US20180150530A1 (en) | Method, Apparatus, Computing Device and Storage Medium for Analyzing and Processing Data | |
CN110727429B (zh) | 一种前端页面的生成方法、装置及设备 | |
WO2013175560A1 (ja) | 情報通信システム及び情報変換方法 | |
JP4568262B2 (ja) | データ収集システム | |
CN107608663A (zh) | 一种移动应用插件及移动应用的开发方法及装置 | |
CN110543299A (zh) | 一种云计算管理平台代码生成方法和装置 | |
CN113961196A (zh) | 一种自动生成代码方法、装置、设备及可读存储介质 | |
CN116149747A (zh) | 接口编排方法、装置、电子设备和计算机可读存储介质 | |
CN114153473A (zh) | 模块集成方法、装置、存储介质及电子设备 | |
CN114048415A (zh) | 表单生成方法及装置、电子设备和计算机可读存储介质 | |
CN101876998A (zh) | 一种实现数据编辑的方法和系统 | |
CN112861059A (zh) | 可视化组件生成方法、装置、计算机设备及可读存储介质 | |
CN112306471A (zh) | 一种任务的调度方法和装置 | |
CN116360887A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200107 |