一种代码生成方法、存储介质、电子设备及系统与流程

文档序号:21080042发布日期:2020-06-12 16:26阅读:204来源:国知局
一种代码生成方法、存储介质、电子设备及系统与流程

本发明涉及互联网移动端应用开发领域,具体涉及一种代码生成方法、存储介质、电子设备及系统。



背景技术:

随着手机移动端的快速发展,移动端中的软件代码编写与更新越来越重要。

然而在移动端的软件代码是模块化的,且模块中很多地方使用的代码文件基本上是相同的。如果全部重新编写无疑是浪费时间的,常规方案是,编写人员手动去复制代码文件所在的文件夹至当前的编写目录中,并逐一打开代码文件查找需要替换的位置进行替换,并删除不需要的代码文件,如某软件对其算法进行了更新,其部分参数命名出现了变化,程序员在编写该软件的显示界面时候,其显示模块实际变化不大,可能仅仅是参数变化,以及由其算法变化需要删除部分冗余代码文件。而程序员一般会从旧版程序中查找旧的显示模块中的代码,并拷贝该模块的文件夹,然后逐一查看显示模块总的代码文件,进行替换以及删减。

然而人工意味着速度慢,同时易出错,即这种代码生成方法虽然减少了一部分的编写工作量,但是仍然效率低下同时手动出错常常出错,有时候甚至不如重新编写。

因此亟需一种代码生产方法能够有效辅助程序员生成模块中的相似或者相同部分的代码。



技术实现要素:

针对现有技术中存在的缺陷,本发明的目的在于提供一种代码生成方法、存储介质、电子设备及系统,能够快速的将通用的基层代码文件添加到程序员需要的新代码工程文件中,不易出错,且不再需要对该代码文件进行调试。

为达到以上目的,第一方面,本发明实施例提供一种代码生成方法,应用于ios系统中代码自动生成,其包括:

编写预设模块共用的公共文件,并将所述共用的公共文件中的待替换部分以预设的标识符代替,保存所述共用的公共文件所在目录以及包含的所述标识符,所述待替换部分包括所述共用的公共文件的名称;

为每一个预设模块对应所述共用的公共文件的id,并保存该对应关系;

获取目标代码生成参数,所述目标代码生成参数包括所需的所述预设模块、代码生成目录以及替换参数;

根据预设模块和所述共用的公共文件的所述对应关系,获取需求的所述共用的公共文件的id,根据所述共用的公共文件所在目录提取文件并存放于所述代码生成目录,使用替换参数替换所述共用的公共文件中的标识符。作为一个优选的实施方案,

所述共用的公共文件名称为部分含有所述标识符的字符串。

作为一个优选的实施方案,

在获取所述目标代码生成参数时,对目标代码生成参数进行校验,若目标代码生成参数不合法,则终止代码生成,并发出警告,所述不合法包括填写内容为空值。

作为一个优选的实施方案,所述根据预设模块和所述共用的公共文件的所述对应关系,获取所述共用的需求的公共文件,根据所述共用的公共文件所在目录提取文件并存放于所述代码生成目录包括以下步骤:

创建数组类型的变量,根据预设模块和所述共用的公共文件的所述对应关系,将所需的所述共用的公共文件的名称存储于所述变量中;

遍历所述变量中的所述共用的公共文件的名称,根据所述共用的公共文件所在目录,将所述共用的公共文件复制到所述代码生成目录。

作为一个优选的实施方案,

使用copyitematpath函数将所述共用的公共文件从所述共用的公共文件所在目录复制到所述代码生成目录。

作为一个优选的实施方案,所述使用替换参数替换所述共用的公共文件中的标识符包括以下步骤:

逐一读取所述共用的公共文件,获取所述共用的公共文件对应包含的所述标识符;

获取目标代码生成参数中的替换参数,替换参数替换所述共用的公共文件对应包含的所述标识符。

作为一个优选的实施方案,

所述替换部分还包括:用户id、公司id。

第二方面,本发明实施例提供一种代码生成系统,其包括:

编写模块,用于编写预设模块共用的公共文件,并将所述共用的公共文件中的待替换部分以预设的标识符代替,保存所述共用的公共文件所在目录以及包含的所述标识符,所述待替换部分包括所述共用的公共文件名称;

对应模块,用于为每一个预设模块对应所述共用的公共文件的id,并保存该对应关系;

接口模块,用于获取目标代码生成参数,所述目标代码生成参数包括所需的所述预设模块、代码生成目录以及替换参数;

生产模块,用于根据预设模块和所述共用的公共文件的所述对应关系,获取需求的所述共用的公共文件的id,根据所述共用的公共文件所在目录提取文件并存放于所述代码生成目录,使用替换参数替换所述共用的公共文件中的标识符。

第三方面,本发明实施例还提供一种存储介质,该存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面实施例中的方法。

第四方面,本发明实施例还提供一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面实施例中的方法。

与现有技术相比,本发明的优点在于:

本发明一种代码生成方法、存储介质、电子设备及系统中编写模块总能够共用的公共文件并保存对应关系,在编写一些常用的模块时,通过该预设模块与共用的公共文件的对应关系,能够快速的将已经编写好的共用的公共文件拷贝至当前编写的工程文件夹中。同时共用的公共文件中除了固定的算法外,还有一些需要替换的内容,通过预设的标识符代替,在将该共用的公共文件拷贝至当前编写的工程文件夹后,通过查找其内部包含的标识符并进行替换,能够快速的将该共用的公共文件转化为当前编写模块能够直接使用的代码文件。加快了程序员编写代码的速度,且在替换时候完全由机器代替人工进行,出错率低,且更加迅速。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面对实施例对应的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一种代码生成方法的步骤流程图;

图2为本发明一种代码生成系统的结构示意图。

图中:1-编写模块,2-对应模块,3-接口模块,4-生产模块。

具体实施方式

以下结合附图对本发明的实施例作进一步详细说明。

参见图1所示,本发明实施例提供一种代码生成方法、存储介质、电子设备及系统,其通过编写较为通用的预设模中的共用的公共文件,并在该共用的公共文件中通过标识符来表示可以替换的元素,使得程序员能够在编写常用的模块时候,直接通过调用该共用的公共文件并替换标识符,就能够直接使用该替换后的共用的公共文件,比重新编写更快,比人工拷贝复制并调试更加方便,且出错率低。

为达到上述技术效果,本申请的总体思路如下:

编写预设模块共用的公共文件,并将共用的公共文件中的待替换部分以预设的标识符代替,保存所述共用的公共文件所在目录以及包含的所述标识符,所述待替换部分包括共用的公共文件的名称;

为每一个预设模块对应共用的公共文件的id,并保存该对应关系;

获取目标代码生成参数,所述目标代码生成参数包括所需的所述预设模块、代码生成目录以及替换参数;

根据预设模块和共用的公共文件的所述对应关系,获取需求的共用的公共文件的id,根据共用的公共文件所在目录提取文件并存放于所述代码生成目录,使用替换参数替换所述共用的公共文件中的标识符。

综上所述,程序员在编写代码时,常常预先设置好各个模块的功能,然后逐个模块,逐个功能的进行编写。但是对于一些常用的代码文件,程序员每次重新编写,效率低,而从其他项目的工程进行拷贝具有相同,则难免需要查找拷贝文件中多余的代码,同时在将拷问文件所用的参数、名称等等由于是与前项目、工程沿用关系,和当前正在编写的工程并不吻合,需要程序员一条一条代码的查找其使用的每一参数是否需要修改,而在修改好后,需要进一步的调试验证。在部分情况下,如程序员粗心出现遗留的情况时,程序员可能并不知道是这一个拷贝的文件的问题,需要首先定位该拷贝文件,然后再查找拷贝文件中的错误,进一步更改,十分不便。

而本发明直接将公用不需要更改的代码编写出来,需要替换、修改的代码以可以迅速查找的标识符进行标识,程序员不再需要重新编写代码,也不再需要一行一行的查看,只需要查看含有标识符的地方,或者直接将标识符进行全面替换,十分方便快捷,加快的程序员编写代码的速度。

为了更好的理解上述技术方案,下面结合具体实施方式进行详细的说明。

实施例一

本发明实施例提供一种代码生成方法,其包括:

s1:编写预设模块共用的公共文件,并将共用的公共文件中的待替换部分以预设的标识符代替,保存所述共用的公共文件所在目录以及包含的所述标识符,所述待替换部分包括共用的公共文件的名称;

通常程序员在编写一个完整软件时候,会将软件以模块划分,然后逐个模块编写支持该模块功能的代码文件。而一些常用模块中的特定功能常常使用基本保持不变的编写方式。因此本发明首先编写出预设模块能够共用的共用的公共文件,这些共用的公共文件可以是所有软件常用的代码,如从内存中提取指定存储地址的数据,并进行特定的运算等等。但是共用的公共文件中使用的参数、名称等等一般是需要承上启下的:从调用函数中获取参数名称,并将自身运行的结果传递给下一个文件、存储地址,这些参数、名称等等会对应不同的软件、编写工作变换。因此将这些位置作为待替换部分,供程序员或者软件进行替换。

进一步的,为了待替换部分以更加清晰的方式显示,以供程序员或者软件查找,将待替换部分以预设的标识符进行替代,同时作为使用该共用的公共文件的提示,将该共用的公共文件所在的目录以及其内部包含的标识符进行保存,当程序员或者程序调用该共用的公共文件时,通过能够直接通过目录找到该共用的公共文件,并读取其内部包含的标识符,进行拷贝、替换、修改。更加快捷。

举例来说,对于一个扫描功能,其对应设置有扫描二维码模块,该模块中一般会包含写有获取摄像头权限、提取其图像的代码的共用的公共文件,如果一开始预设一个摄像模块,并编写共用的公共文件,其能够获取摄像头权限、提取其图像,那么程序员能够直接在自己的相关模块下,添加这个共用的公共文件,并通过替换标识符的方法直接转化为立刻能够使用的代码。

作为一个优选的实施方案,共用的公共文件名称为部分含有所述标识符的字符串,共用的公共文件中的命名一般会有固定的含义,如对存储a进行读取可能名称为readmemorya,而如果整体替换,共用的公共文件的对这一功能描述可能丢失,如果将其中a改为表示符xxx,共用的公共文件中该名称为readmemoryxxx,在替换后,仅仅替换xxx,功能描述会继续保留下来,程序员在进行测试、校验时候,能够较容易的阅读代码。

s2:为每一个预设模块对应共用的公共文件的id,并保存该对应关系。

在为一个预设模块编写完成共用的公共文件后,程序员通过预设模块对应的共用的公共文件的id,能够直接找到该共用的公共文件,同时通过该对应关系,知道该共用的公共文件是对应何种预设模块进行编写的,是否能够拷贝引用。

举例来说,预设模块为二维码扫码模块,该模块编写并对应了能够获取摄像头权限、提取其图像的共用的公共文件。当程序员编写具有扫描功能的软件时,其内部设置二维码扫码模块时,即可使用该共用的公共文件。但是二维码扫码模块内需要编写内存计算时,该共用的公共文件并不能没有对应功能,是不可以引用的。

s3:获取目标代码生成参数,所述目标代码生成参数包括所需的所述预设模块、代码生成目录以及替换参数;

程序员能够直接通过程序,将模块内需求的代码文件准备好。程序员输入代码生成所需求的参数,如预设模块,代码生成的目录、替换参数,程序将建立预设的模块,并将该共用的公共文件直接拷贝到生成目录中供模块,并替换其中需要替换的内容,最后程序员只需要将非公共的文件编写完毕即可完成软件的编写了。

作为一个优选的实施方案,获取目标代码生成参数时候,需要对目标代码生成参数进行校验,若目标代码生成参数不合法,则终止代码生成,并发出警告,所述不合法包括填写内容为空值。

代码作为程序语言,其内部命名和编写是需要遵循一定规则的,不能任意进行命名,如果允许其目标代码生成参数违反这些规则,其生成的共用的公共文件可能会造成程序员调用预设模块下的共用的公共文件后,程序出现报错,需要程序员执行进行调试,调整其中参数违反规则的地方,反而增加了程序员的工作,这是得不偿失的,因此,在获取diamante生产参数后,对这些目标代码生成参数进行校验,保证其符合代码语言规则等,在加入到当前编写的模块后,不会因为这些参数的不合法,而导致程序报错。

s4:根据预设模块和共用的公共文件的所述对应关系,获取需求的共用的公共文件,根据共用的公共文件所在目录提取文件并存放于所述代码生成目录,使用替换参数替换所述共用的公共文件中的标识符。

即本发明首先获取程序员需要生成的预设模块以及代码生成目录,通过预设模块和共用的公共文件的对应关系,将该共用的公共文件拷贝到代码生成目录中,然后获取其替换的参数,将在代码生成目录中的共用的公共文件内的标识符一一替换,即完成了共用的公共文件的编写。

作为一个可选的实施方案,根据预设模块和共用的公共文件的所述对应关系,获取需求的共用的公共文件,根据共用的公共文件所在目录提取文件并存放于所述代码生成目录包括以下步骤:

创建数组类型的变量,根据预设模块和共用的公共文件的所述对应关系,将所需的共用的公共文件的名称存储于所述变量中;

遍历所述变量中的共用的公共文件的名称,根据所述共用的公共文件所在目录,将共用的公共文件复制到所述代码生成目录。

通过数组类型的变量,保存期对应关系,程序能够通过遍历的方式,循环调度共用的公共文件,更加符合程序运行逻辑,同时更加快捷和迅速。

进一步的,使用copyitematpath函数将所述共用的公共文件从所述共用的公共文件所在目录复制到所述代码生成目录。

作为一个优选的实施方案,使用替换参数替换所述共用的公共文件中的标识符包括以下步骤:

逐一读取共用的公共文件,获取该共用的公共文件对应包含的所述标识符;

获取目标代码生成参数中的替换参数,替换参数替换该共用的公共文件对应包含的所述标识符。

进一步的,公共文件中替换部分还包括:用户id、公司id。

需要说明的是,用户id起用户的标识作用,可以是用户的昵称、用户的身份证号码,只要能够代表用户的身份,包含有用户的身份信息即可。同理,公司id也其公司的标识作用,可以是公司的名称、公司的编号,只要能够代表公司的身份,包含有公司的身份信息即可。

基于同一发明构思,本申请提供实施例二,其具体实施方式如下。

实施例二

如图2所示,本发明实施例提供一种代码生成系统,其包括:

编写模块1,用于编写预设模块共用的公共文件,并将共用的公共文件中的待替换部分以预设的标识符代替,保存所述共用的公共文件所在目录以及包含的所述标识符,所述待替换部分包括共用的公共文件的名称;

对应模块2,用于为每一个预设模块对应共用的公共文件的id,并保存该对应关系;

接口模块3,用于获取目标代码生成参数,所述目标代码生成参数包括所需的所述预设模块、代码生成目录以及替换参数;

生产模块4,用于根据预设模块和共用的公共文件的所述对应关系,获取需求的共用的公共文件的id,根据共用的公共文件所在目录提取文件并存放于所述代码生成目录,使用替换参数替换所述共用的公共文件中的标识符。

前述方法实施例中的各种变化方式和具体实例同样适用于本实施例的系统,通过前述方法的详细描述,本领域技术人员可以清楚的知道本实施例中系统的实施方法,所以为了说明书的简洁,在此不再详述。

基于同一发明构思,本申请提供实施例三。

实施例三

本发明第三实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所提供的一种代码生成方法,该方法包括:

编写预设模块共用的公共文件,并将共用的公共文件中的待替换部分以预设的标识符代替,保存所述共用的公共文件所在目录以及包含的所述标识符,所述待替换部分包括共用的公共文件的名称;

为每一个预设模块对应共用的公共文件的id,并保存该对应关系;

获取目标代码生成参数,所述目标代码生成参数包括所需的所述预设模块、代码生成目录以及替换参数;

根据预设模块和共用的公共文件的所述对应关系,获取需求的共用的公共文件的id,根据共用的公共文件所在目录提取文件并存放于所述代码生成目录,使用替换参数替换所述共用的公共文件中的标识符。

本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于:电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

基于同一发明构思,本申请提供实施例四。

实施例四

本发明第四实施例还提供一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一实施例中的所有方法步骤或部分方法步骤。

所称处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。

所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、视频数据等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

总体来说,本发明实施例提供的一种代码生成方法、存储介质、电子设备及系统,通过编写较为通用的预设模中的公共文件,并在该公共文件中通过标识符来表示可以替换的元素,使得程序员能够在编写常用的模块时候,直接通过调用该公共文件并替换标识符,就能够直接使用该替换后的公共文件,比重新编写更快,比人工拷贝复制并调试更加方便,且出错率低。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1