CN115344265A - 代码生成方法、装置、计算机设备及存储介质 - Google Patents

代码生成方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN115344265A
CN115344265A CN202210957444.9A CN202210957444A CN115344265A CN 115344265 A CN115344265 A CN 115344265A CN 202210957444 A CN202210957444 A CN 202210957444A CN 115344265 A CN115344265 A CN 115344265A
Authority
CN
China
Prior art keywords
tool
target
information
code
taro
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
Application number
CN202210957444.9A
Other languages
English (en)
Inventor
林柔佳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Property and Casualty Insurance Company of China Ltd
Original Assignee
Ping An Property and Casualty Insurance Company of China Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ping An Property and Casualty Insurance Company of China Ltd filed Critical Ping An Property and Casualty Insurance Company of China Ltd
Priority to CN202210957444.9A priority Critical patent/CN115344265A/zh
Publication of CN115344265A publication Critical patent/CN115344265A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本申请实施例属于基架运维领域,涉及一种代码生成方法,包括:接收用户输入的对于目标工具的使用指令;响应使用指令,启动目标工具,在目标工具内创建初始前端工程,并展示与初始前端工程对应的前端页面;接收用户在前端页面输入的业务代码;基于业务代码生成目标前端工程;获取预设的客户端信息;基于与目标工具对应的编译工具,将目标前端工程转换成与客户端信息对应的目标代码。本申请还提供一种代码生成装置、计算机设备及存储介质。此外,本申请还涉及区块链技术,目标代码可存储于区块链中。本申请实现了智能快速地将目标前端工程分别编译出可以在不同客户端运行的目标代码,降低了代码生成过程的开发难度,提高了开发效率。

Description

代码生成方法、装置、计算机设备及存储介质
技术领域
本申请涉及基架运维技术领域,尤其涉及代码生成方法、装置、计算机设备及存储介质。
背景技术
微信小程序是以微信为运行环境的一种应用,其实质是Hybrid技术的应用,HybridApp即混合模式移动应用,因此与H5类似,但又比H5拥有很多原生的能力,例如调用位置信息和摄像头等。小程序的开发方式与H5十分相似,用的也是JavaScript、HTML、CSS语言。
原生小程序开发有一定的学习成本。目前市面上端的形态多种多样,Web、React-Native、微信小程序等各种端大行其道,当业务要求同时在不同的端都要求有所表现的时候,现有通常需要针对不同的端去编写多套代码,这样的处理方式需要花费较大的人工和时间成本,代码生成的处理效率低下。
发明内容
本申请实施例的目的在于提出一种代码生成方法、装置、计算机设备及存储介质,以解决现有的需要针对不同的端去编写多套代码的处理方式需要花费较大的人工和时间成本,代码生成的处理效率低下技术问题。
为了解决上述技术问题,本申请实施例提供一种代码生成方法,采用了如下所述的技术方案:
接收用户输入的对于目标工具的使用指令;其中,所述目标工具为基于预设的业务需求信息对taro工具进行封装处理后生成的;
响应所述使用指令,启动所述目标工具,在所述目标工具内创建初始前端工程,并展示与所述初始前端工程对应的前端页面;
接收所述用户在所述前端页面输入的业务代码;
基于所述业务代码生成目标前端工程;
获取预设的客户端信息;
基于与所述目标工具对应的编译工具,将所述目标前端工程转换成与所述客户端信息对应的目标代码。
进一步的,在所述接收用户输入的对于目标工具的使用指令的步骤之前,还包括:
安装所述taro工具,并对所述taro工具进行项目初始化处理;
获取目标用户输入的与所述taro工具对应的工具配置信息;其中,所述工具配置信息至少包括结构信息、封装信息、引入信息、分包配置信息以及代码规范信息;
基于所述工具配置信息中包含的所述结构信息,设置所述taro工具的项目结构;
基于所述工具配置信息中包含的所述封装信息,对所述taro工具进行封装处理;
基于所述工具配置信息中包含的所述引入信息,在所述taro工具中引入与所述引入信息对应的目标组件;
基于所述工具配置信息中包含的所述分包配置信息,对所述taro工具进行分包配置处理;
基于所述工具配置信息中包含的所述代码规范信息,对所述taro工具设置代码规范,得到所述目标工具。
进一步的,所述封装信息包括样式封装信息与方法封装信息;所述基于所述工具配置信息中包含的所述封装信息,对所述taro工具进行封装处理的步骤,具体包括:
获取所述封装信息中包含的所述方法封装信息与所述样式封装信息;
基于所述方法封装信息,对所述taro工具内与所述方法封装信息对应的基础请求类进行封装处理;
基于所述样式封装信息,对所述taro工具内与所述样式封装信息对应的样式进行封装处理。
进一步的,所述基于与所述目标工具对应的编译工具,将所述目标前端工程转换成与所述客户端信息对应的目标代码的步骤,具体包括:
调用所述编译工具;
基于所述编译工具内的指定命令生成与所述客户端信息对应的转换命令;
基于所述转换命令将所述目标前端工程转换成与所述客户端信息对应的目标代码。
进一步的,所述使用指令还携带框架信息;所述在所述目标工具内创建初始前端工程的步骤,具体包括:
从所述使用指令中解析出所述框架信息;
调用预设的命令行工具;
基于所述框架信息,使用所述命令行工具在所述目标工具内创建所述初始前端工程。
进一步的,所述基于所述业务代码生成目标前端工程的步骤,具体包括:
调用预设的代码检测脚本;
基于所述代码检测脚本对所述业务代码进行检测得到对应的检测结果;
判断所述检测结果是否为检测通过;
若所述检测结果为检测通过,执行基于所述业务代码生成目标前端工程的步骤。
进一步的,在所述判断所述检测结果是否为检测通过的步骤之后,还包括:
若所述检测结果为检测未通过,生成与所述业务代码对应的代码修改信息;其中,所述代码修改信息包括代码修改位置与代码修改规范;
展示所述代码修改信息。
为了解决上述技术问题,本申请实施例还提供一种代码生成装置,采用了如下所述的技术方案:
第一接收模块,用于接收用户输入的对于目标工具的使用指令;其中,所述目标工具为基于预设的业务需求信息对taro工具进行封装处理后生成的;
创建模块,用于响应所述使用指令,启动所述目标工具,在所述目标工具内创建初始前端工程,并展示与所述初始前端工程对应的前端页面;
第二接收模块,用于接收所述用户在所述前端页面输入的业务代码;
生成模块,用于基于所述业务代码生成目标前端工程;
第一获取模块,用于获取预设的客户端信息;
转换模块,用于基于与所述目标工具对应的编译工具,将所述目标前端工程转换成与所述客户端信息对应的目标代码。
为了解决上述技术问题,本申请实施例还提供一种计算机设备,采用了如下所述的技术方案:
接收用户输入的对于目标工具的使用指令;其中,所述目标工具为基于预设的业务需求信息对taro工具进行封装处理后生成的;
响应所述使用指令,启动所述目标工具,在所述目标工具内创建初始前端工程,并展示与所述初始前端工程对应的前端页面;
接收所述用户在所述前端页面输入的业务代码;
基于所述业务代码生成目标前端工程;
获取预设的客户端信息;
基于与所述目标工具对应的编译工具,将所述目标前端工程转换成与所述客户端信息对应的目标代码。
为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,采用了如下所述的技术方案:
接收用户输入的对于目标工具的使用指令;其中,所述目标工具为基于预设的业务需求信息对taro工具进行封装处理后生成的;
响应所述使用指令,启动所述目标工具,在所述目标工具内创建初始前端工程,并展示与所述初始前端工程对应的前端页面;
接收所述用户在所述前端页面输入的业务代码;
基于所述业务代码生成目标前端工程;
获取预设的客户端信息;
基于与所述目标工具对应的编译工具,将所述目标前端工程转换成与所述客户端信息对应的目标代码。
与现有技术相比,本申请实施例主要有以下有益效果:
本申请实施例在接收到用户输入的对于目标工具的使用指令后,会先在启动好的目标工具内创建初始前端工程,并展示与初始前端工程对应的前端页面,然后接收用户在所述前端页面输入的业务代码,之后基于业务代码生成目标前端工程,后续获取预设的客户端信息,最后基于与目标工具对应的编译工具,将目标前端工程转换成与客户端信息对应的目标代码。本申请在利用用户在目标工具内前端页面输入的业务代码生成了目标前端工程后,只需通过与目标工具对应的编译工具,便可以智能快速地将目标前端工程分别编译出可以在不同客户端运行的目标代码,从而做到一次编译,多端运行,降低了代码生成过程的开发难度,提高了开发效率,且统一了各端代码,更易于对于代码的维护工作。
附图说明
为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请可以应用于其中的示例性系统架构图;
图2根据本申请的代码生成方法的一个实施例的流程图;
图3是根据本申请的代码生成装置的一个实施例的结构示意图;
图4是根据本申请的计算机设备的一个实施例的结构示意图。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了使本技术领域的人员更好地理解本申请方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving PictureExpertsGroup Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(MovingPictureExperts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的页面提供支持的后台服务器。
需要说明的是,本申请实施例所提供的代码生成方法一般由服务器/终端设备执行,相应地,代码生成装置一般设置于服务器/终端设备中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,示出了根据本申请的代码生成方法的一个实施例的流程图。所述的代码生成方法,包括以下步骤:
步骤S201,接收用户输入的对于目标工具的使用指令;其中,所述目标工具为基于预设的业务需求信息对taro工具进行封装处理后生成的。
在本实施例中,代码生成方法运行于其上的电子设备(例如图1所示的服务器/终端设备),可以通过有线连接方式或者无线连接方式获取上述使用指令。需要指出的是,上述无线连接方式可以包括但不限于3G/4G/5G连接、WiFi连接、蓝牙连接、WiMAX连接、Zigbee连接、UWB(ultra wideband)连接、以及其他现在已知或将来开发的无线连接方式。其中,taro是一个开放式跨端跨框架解决方案,支持使用React、Vue.js、Nerv等框架来开发小程序、H5、react Native等应用。另外,上述基于预设的业务需求信息对taro工具进行封装处理是指基于目标用户输入的与taro工具对应的工具配置信息对taro工具进行封装处理以得到封装后的taro工具,也即上述目标工具。
步骤S202,响应所述使用指令,启动所述目标工具,在所述目标工具内创建初始前端工程,并展示与所述初始前端工程对应的前端页面。
在本实施例中,上述前端页面是在前端提供给用户添加taro项目的项目代码的页面,具体的,上述前端页面可为taro-app/src/pages/index/index.vue,template所对应的页面。另外,上述在所述目标工具内创建初始前端工程的具体实施过程,本申请将在后续的具体实施例中对此进行进一步的细节描述,在此不作过多阐述。
步骤S203,接收所述用户在所述前端页面输入的业务代码。
在本实施例中,上述前端页面可设置有代码填充框,用户可在该代码填充框输入业务代码。
步骤S204,基于所述业务代码生成目标前端工程。
在本实施例中,上述基于所述业务代码生成目标前端工程的具体实施过程,本申请将在后续的具体实施例中对此进行进一步的细节描述,在此不作过多阐述。
步骤S205,获取预设的客户端信息。
在本实施例中,上述客户端信息可为根据预先的业务需求确定的客户端信息,即实际业务中与目标前端工程对应的待转换的客户端的信息。举例地,上述客户端可包括Web、React-Native、移动应用、小程序、H5应用等中的任意一种或多种。
步骤S206,基于与所述目标工具对应的编译工具,将所述目标前端工程转换成与所述客户端信息对应的目标代码。
在本实施例中,上述基于与所述目标工具对应的编译工具,将所述目标前端工程转换成与所述客户端信息对应的目标代码的具体实施过程,本申请将在后续的具体实施例中对此进行进一步的细节描述,在此不作过多阐述。
本申请在接收到用户输入的对于目标工具的使用指令后,会先在启动好的目标工具内创建初始前端工程,并展示与初始前端工程对应的前端页面,然后接收用户在所述前端页面输入的业务代码,之后基于业务代码生成目标前端工程,后续获取预设的客户端信息,最后基于与目标工具对应的编译工具,将目标前端工程转换成与客户端信息对应的目标代码。本申请在利用用户在目标工具内前端页面输入的业务代码生成了目标前端工程后,只需通过与目标工具对应的编译工具,便可以智能快速地将目标前端工程分别编译出可以在不同客户端运行的目标代码,从而做到一次编译,多端运行,降低了代码生成过程的开发难度,提高了开发效率,且统一了各端代码,更易于对于代码的维护工作。
在一些可选的实现方式中,在步骤S201之前,上述电子设备还可以执行以下步骤:
安装所述taro工具,并对所述taro工具进行项目初始化处理。
在本实施例中,上述对所述taro工具进行项目初始化处理的过程包括:进入项目目录开始开发,可以选择小程序预览模式,或者h5预览模式,如果使用微信小程序预览模式,则需要自行下载并打开微信开发者工具,选择预览项目根目录。设置微信小程序、H5各自的编译和发布命令。
获取目标用户输入的与所述taro工具对应的工具配置信息;其中,所述工具配置信息至少包括结构信息、封装信息、引入信息、分包配置信息以及代码规范信息。
在本实施例中,上述目标用户可为相关的运维人员。上述工具配置信息为用于对taro工具进行封装处理的指导信息。
基于所述工具配置信息中包含的所述结构信息,设置所述taro工具的项目结构。
在本实施例中,上述项目结构至少包括package.json,package.config.json,config,dist以及src。其中,package.json是依赖包,package.config.json是给微信小程序单独提供的,config是项目启动编译的配置文件的目录,dist是编译好的目录,src是源代码。另外,src目录下包括:1).index.html是为h5准备的;2).app.js即是小程序的入口,又是为h5做路由编译的路由文件(react本身是不需要配置路由的,但是需要在app.js里面配置页面地址);3).Components:抽离的公共组件;4).Utils:对应公共方法、类;5).Api:集成的请求后台接口方法;6).Config:主要存放的是与环境相关的配置和方法。Taro框架提供了变量:process.env.NODE_ENV,可以获取当前环境参数,可用于判断是测试、生产环境等。
基于所述工具配置信息中包含的所述封装信息,对所述taro工具进行封装处理。
在本实施例中,上述封装信息包括样式封装信息与方法封装信息。上述基于所述工具配置信息中包含的所述封装信息,对所述taro工具进行封装处理的具体实施过程,本申请将在后续的具体实施例中对此进行进一步的细节描述,在此不作过多阐述。
基于所述工具配置信息中包含的所述引入信息,在所述taro工具中引入与所述引入信息对应的目标组件。
在本实施例中,上述引入信息为用于引入Taro-ui的信息,所述目标组件包括由Taro-ui提供的各个业务页面封装的UI组件。
基于所述工具配置信息中包含的所述分包配置信息,对所述taro工具进行分包配置处理。
在本实施例中,微信平台限制小程序每个包只能有2M以内的大小。因此,需要对小程序做分包处理。在app.config.js文件里,利用pages和subpackages对主包、分包做区分,不同功能模块的业务页面划分到不同的包里,实现模块化管理。另外,可以在小程序开发工具编辑器里的代码依赖分析,查看主包和分包的大小。
基于所述工具配置信息中包含的所述代码规范信息,对所述taro工具设置代码规范,得到所述目标工具。
在本实施例中,上述代码规范信息包括代码规范ESlint的描述信息,以及代码格式化Prettier的描述信息。其中,在taro工具中加入了Eslint规范和Prettier格式化,在遇到不合理的代码规范时,会有详细的中文提示,从而可以节省开发成本。
本申请通过获取目标用户输入的与taro工具对应的工具配置信息,进而可以基于该工具配置信息对taro工具进行配置处理,以实现基于业务需求信息对taro工具进行封装处理得到相应的目标工具,通过将各个功能的层次分离开来,包括抽离公共组件、公共样式、公共方法/类等以生成目标工具,可以有效降低代码的耦合性,提高系统的可维护性和扩展性。另外,在生成了目标前端工程后,只需通过与目标工具对应的编译工具,便可以智能快速地将目标前端工程分别编译出可以在不同客户端运行的目标代码,从而做到一次编译,多端运行,降低了代码生成过程的开发难度,提高了开发效率,统一了各端代码,更易于维护。
在本实施例的一些可选的实现方式中,所述封装信息包括样式封装信息与方法封装信息;上述基于所述工具配置信息中包含的所述封装信息,对所述taro工具进行封装处理,包括以下步骤:
获取所述封装信息中包含的所述方法封装信息与所述样式封装信息。
在本实施例中,上述方法封装信息为目标用户设置的用于对基础请求类进行封装的信息。上述样式封装信息为目标用户设置的用于对样式进行封装的信息。
基于所述方法封装信息,对所述taro工具内与所述方法封装信息对应的基础请求类进行封装处理。
在本实施例中,上述对所述taro工具内与所述方法封装信息对应的基础请求类进行封装处理的过程包括:利用request.js对发送http请求接口的封装。其中,Taro.request支持primise的使用,request即为封装的网络请求方法。首先,对代码的网络请求的相对路径的url做处理变为绝对路径,并拼接当前登录的app_stoken;其次对用户自定义的header、methods做处理,默认header和method存放在defaultOpts变量中;最后,调用Taro.request方法发起请求。另外,实际开发中,修改header参数的情况并不多,最常见的POST请求下修改content-type为form表单提交或者json格式提交。针对上述情况,基于request方法分别封装了requestPost、requestPostJson、requestGet。
基于所述样式封装信息,对所述taro工具内与所述样式封装信息对应的样式进行封装处理。
在本实施例中,上述对所述taro工具内与所述样式封装信息对应的样式进行封装处理的过程包括:将包括iPhone底部横线适配、刘海屏适配等的公共样式抽离成公共样式文件。
本申请通过将各个功能的层次分离成抽离公共样式、公共方法/类等,可以有效降低代码的耦合性,提高系统的可维护性和扩展性。
在一些可选的实现方式中,步骤S206包括以下步骤:
调用所述编译工具。
在本实施例中,上述编译工具为@tarojs/cli工具。
基于所述编译工具内的指定命令生成与所述客户端信息对应的转换命令。
在本实施例中,在安装完@tarojs/cli工具后,使用build命令可以将taro工程编译成不同客户端的代码。其中,上述指定命令为build命令,上述转换命令为:npmbuilddev:xxx,xxx指客户端信息。举例地,如果需要将taro工程编译成微信小程序工程,则对应的转换命令为npmbuilddev:weapp。另外,对于其他不同于微信小程序的客户端的代码转换操作和上述微信小程序的代码转换操作一样,都只需一行命令,更换下对应的名称即可。
基于所述转换命令将所述目标前端工程转换成与所述客户端信息对应的目标代码。
在本实施例中,在生成了转换命令后,通过运行该转换命令,即可实现将目标前端工程转换成与客户端信息对应的目标代码。
本申请通过应用对Taro工具进行了进一步的封装处理后得到的目标工具,使得在生成了目标前端工程后,只需通过与目标工具对应的编译工具,便可以智能快速地将目标前端工程分别编译出可以在不同客户端运行的目标代码,从而做到一次编译,多端运行,降低了代码生成过程的开发难度,提高了开发效率,统一了各端代码,更易于维护。
在一些可选的实现方式中,所述使用指令还携带框架信息;步骤S202中的在所述目标工具内创建初始前端工程,包括以下步骤:
从所述使用指令中解析出所述框架信息。
在本实施例中,上述框架信息具体为React;
调用预设的命令行工具。
在本实施例中,上述命令行工具具体为官方脚手架TaroCLI。
基于所述框架信息,使用所述命令行工具在所述目标工具内创建所述初始前端工程。
在本实施例中,创建初始前端工程过程可包括:安装node环境;使用npm或yarn安装TaroCLI;安装VisualStudioCode;选择框架为React,通过TaroCLI在所述目标工具内创建所述初始前端工程,以便使用VisualStudioCode导入创建好的初始前端工程。
本申请通过使用命令行工具可以快速地在目标工具内创建出初始前端工程,有利于后续可以基于该初始前端工程来快速地生成所需的目标前端工程,进而基于与目标工具对应的编译工具来实现将目标前端工程转换成与客户端信息对应的目标代码,有效提高了代码转换的处理效率与智能性。
在本实施例的一些可选的实现方式中,步骤S204包括以下步骤:
调用预设的代码检测脚本。
在本实施例中,上述代码检测脚本为开发人员根据实际业务需求所对应的代码规范进行编写生成的用于对代码进行规范性检测的脚本文件。
基于所述代码检测脚本对所述业务代码进行检测得到对应的检测结果。
在本实施例中,在使用代码检测脚本对业务代码进行检测时,如果业务代码符合代码检测脚本中的代码规范,则对应的检测结果为检测通过。而如果业务代码不符合代码检测脚本中的代码规范,则对应的检测结果为检测不通过。
判断所述检测结果是否为检测通过。
若所述检测结果为检测通过,执行基于所述业务代码生成目标前端工程的步骤。
本申请在接收到用户在前端页面输入的业务代码后,会智能地先调用预设的代码检测脚本自动对业务代码进行检测得到对应的检测结果,只有在检测结果为检测通过,后续才会执行基于所述业务代码生成目标前端工程的步骤,有效地保证了基于业务代码生成目标前端工程的规范性。
在本实施例的一些可选的实现方式中,在判断所述检测结果是否为检测通过的步骤之后,上述电子设备还可以执行以下步骤:
若所述检测结果为检测未通过,生成与所述业务代码对应的代码修改信息;其中,所述代码修改信息包括代码修改位置与代码修改规范。
在本实施例中,上述代码修改信息是指业务代码不符合代码检测脚本的规范标准,需要对业务代码进行修改的部分对应的代码信息。代码修改信息包括至少一个待修改代码信息,待修改代码信息包括代码位置和代码修改规范。其中,代码位置是指不符合代码检测脚本的规范标准的异常代码所在的位置,代码修改规范是指不符合代码检测脚本的规范标准的异常代码对应的代码规范,代码修改规范用于提醒对应的开发人员基于该代码修改规范对业务代码中的异常代码进行适应性修改。
展示所述代码修改信息。
在本实施例中,可以在当前界面展示上述代码修改信息,以提醒用户基于代码修改信息中的代码位置和代码修改规范对检测不通过的业务代码进行相应修改。
本申请当判别出基于代码检测脚本对业务代码进行检测得到对应的检测结果为检测未通过,会智能地生成与业务代码对应的代码修改信息,并对该代码修改信息进行展示,以使得用户能够基于该代码修改信息对业务代码进行相应修改,使得业务代码能够符合代码检测脚本对应的规范标准,保证了代码转换处理过程的合规性。
需要强调的是,为进一步保证上述目标代码的私密和安全性,上述目标代码还可以存储于一区块链的节点中。
本申请所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
本申请实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指令相关的硬件来完成,该计算机可读指令可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
进一步参考图3,作为对上述图2所示方法的实现,本申请提供了一种代码生成装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图3所示,本实施例所述的代码生成装置300包括:第一获取模块301、提取模块302、确定模块303、处理模块304以及第一生成模块305。其中:
第一接收模块301,用于接收用户输入的对于目标工具的使用指令;其中,所述目标工具为基于预设的业务需求信息对taro工具进行封装处理后生成的;
创建模块302,用于响应所述使用指令,启动所述目标工具,在所述目标工具内创建初始前端工程,并展示与所述初始前端工程对应的前端页面;
第二接收模块303,用于接收所述用户在所述前端页面输入的业务代码;
生成模块304,用于基于所述业务代码生成目标前端工程;
第一获取模块305,用于获取预设的客户端信息;
转换模块306,用于基于与所述目标工具对应的编译工具,将所述目标前端工程转换成与所述客户端信息对应的目标代码。
在本实施例中,上述模块或单元分别用于执行的操作与前述实施方式的代码生成方法的步骤一一对应,在此不再赘述。
在本实施例的一些可选的实现方式中,代码生成装置还包括:
安装模块,用于安装所述taro工具,并对所述taro工具进行项目初始化处理;
第二获取模块,用于获取目标用户输入的与所述taro工具对应的工具配置信息;其中,所述工具配置信息至少包括结构信息、封装信息、引入信息、分包配置信息以及代码规范信息;
第一处理模块,用于基于所述工具配置信息中包含的所述结构信息,设置所述taro工具的项目结构;
第二处理模块,用于基于所述工具配置信息中包含的所述封装信息,对所述taro工具进行封装处理;
第三处理模块,用于基于所述工具配置信息中包含的所述引入信息,在所述taro工具中引入与所述引入信息对应的目标组件;
第四处理模块,用于基于所述工具配置信息中包含的所述分包配置信息,对所述taro工具进行分包配置处理;
第五处理模块,用于基于所述工具配置信息中包含的所述代码规范信息,对所述taro工具设置代码规范,得到所述目标工具。
在本实施例中,上述模块或单元分别用于执行的操作与前述实施方式的代码生成方法的步骤一一对应,在此不再赘述。
在本实施例的一些可选的实现方式中,所述封装信息包括样式封装信息与方法封装信息;第二处理模块包括:
获取子模块,用于获取所述封装信息中包含的所述方法封装信息与所述样式封装信息;
第一封装子模块,用于基于所述方法封装信息,对所述taro工具内与所述方法封装信息对应的基础请求类进行封装处理;
第二封装子模块,用于基于所述样式封装信息,对所述taro工具内与所述样式封装信息对应的样式进行封装处理。
本实施例中,上述模块或单元分别用于执行的操作与前述实施方式的代码生成方法的步骤一一对应,在此不再赘述。
在本实施例的一些可选的实现方式中,转换模块306包括:
第一调用子模块,用于调用所述编译工具;
第一生成子模块,用于基于所述编译工具内的指定命令生成与所述客户端信息对应的转换命令;
转换子模块,用于基于所述转换命令将所述目标前端工程转换成与所述客户端信息对应的目标代码。
在本实施例中,上述模块或单元分别用于执行的操作与前述实施方式的代码生成方法的步骤一一对应,在此不再赘述。
在本实施例的一些可选的实现方式中,所述使用指令还携带框架信息;创建模块302包括:
解析子模块,用于从所述使用指令中解析出所述框架信息;
第二调用子模块,用于调用预设的命令行工具;
创建子模块,用于基于所述框架信息,使用所述命令行工具在所述目标工具内创建所述初始前端工程。
在本实施例中,上述模块或单元分别用于执行的操作与前述实施方式的代码生成方法的步骤一一对应,在此不再赘述。
在本实施例的一些可选的实现方式中,生成模块304包括:
第三调用子模块,用于调用预设的代码检测脚本;
检测子模块,用于基于所述代码检测脚本对所述业务代码进行检测得到对应的检测结果;
判断子模块,用于判断所述检测结果是否为检测通过;
执行子模块,用于若所述检测结果为检测通过,执行基于所述业务代码生成目标前端工程的步骤。
在本实施例中,上述模块或单元分别用于执行的操作与前述实施方式的代码生成方法的步骤一一对应,在此不再赘述。
在本实施例的一些可选的实现方式中,生成模块304还包括:
第二生成子模块,用于若所述检测结果为检测未通过,生成与所述业务代码对应的代码修改信息;其中,所述代码修改信息包括代码修改位置与代码修改规范;
展示子模块,用于展示所述代码修改信息。
在本实施例中,上述模块或单元分别用于执行的操作与前述实施方式的代码生成方法的步骤一一对应,在此不再赘述。
为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图4,图4为本实施例计算机设备基本结构框图。
所述计算机设备4包括通过系统总线相互通信连接存储器41、处理器42、网络接口43。需要指出的是,图中仅示出了具有组件41-43的计算机设备4,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable GateArray,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
所述存储器41至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器41可以是所述计算机设备4的内部存储单元,例如该计算机设备4的硬盘或内存。在另一些实施例中,所述存储器41也可以是所述计算机设备4的外部存储设备,例如该计算机设备4上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。当然,所述存储器41还可以既包括所述计算机设备4的内部存储单元也包括其外部存储设备。本实施例中,所述存储器41通常用于存储安装于所述计算机设备4的操作系统和各类应用软件,例如代码生成方法的计算机可读指令等。此外,所述存储器41还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器42在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器42通常用于控制所述计算机设备4的总体操作。本实施例中,所述处理器42用于运行所述存储器41中存储的计算机可读指令或者处理数据,例如运行所述代码生成方法的计算机可读指令。
所述网络接口43可包括无线网络接口或有线网络接口,该网络接口43通常用于在所述计算机设备4与其他电子设备之间建立通信连接。
与现有技术相比,本申请实施例主要有以下有益效果:
本申请实施例中,在接收到用户输入的对于目标工具的使用指令后,会先在启动好的目标工具内创建初始前端工程,并展示与初始前端工程对应的前端页面,然后接收用户在所述前端页面输入的业务代码,之后基于业务代码生成目标前端工程,后续获取预设的客户端信息,最后基于与目标工具对应的编译工具,将目标前端工程转换成与客户端信息对应的目标代码。本申请在利用用户在目标工具内前端页面输入的业务代码生成了目标前端工程后,只需通过与目标工具对应的编译工具,便可以智能快速地将目标前端工程分别编译出可以在不同客户端运行的目标代码,从而做到一次编译,多端运行,降低了代码生成过程的开发难度,提高了开发效率,且统一了各端代码,更易于对于代码的维护工作。
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令可被至少一个处理器执行,以使所述至少一个处理器执行如上述的代码生成方法的步骤。
与现有技术相比,本申请实施例主要有以下有益效果:
本申请实施例中,在接收到用户输入的对于目标工具的使用指令后,会先在启动好的目标工具内创建初始前端工程,并展示与初始前端工程对应的前端页面,然后接收用户在所述前端页面输入的业务代码,之后基于业务代码生成目标前端工程,后续获取预设的客户端信息,最后基于与目标工具对应的编译工具,将目标前端工程转换成与客户端信息对应的目标代码。本申请在利用用户在目标工具内前端页面输入的业务代码生成了目标前端工程后,只需通过与目标工具对应的编译工具,便可以智能快速地将目标前端工程分别编译出可以在不同客户端运行的目标代码,从而做到一次编译,多端运行,降低了代码生成过程的开发难度,提高了开发效率,且统一了各端代码,更易于对于代码的维护工作。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。

Claims (10)

1.一种代码生成方法,其特征在于,包括下述步骤:
接收用户输入的对于目标工具的使用指令;其中,所述目标工具为基于预设的业务需求信息对taro工具进行封装处理后生成的;
响应所述使用指令,启动所述目标工具,在所述目标工具内创建初始前端工程,并展示与所述初始前端工程对应的前端页面;
接收所述用户在所述前端页面输入的业务代码;
基于所述业务代码生成目标前端工程;
获取预设的客户端信息;
基于与所述目标工具对应的编译工具,将所述目标前端工程转换成与所述客户端信息对应的目标代码。
2.根据权利要求1所述的代码生成方法,其特征在于,在所述接收用户输入的对于目标工具的使用指令的步骤之前,还包括:
安装所述taro工具,并对所述taro工具进行项目初始化处理;
获取目标用户输入的与所述taro工具对应的工具配置信息;其中,所述工具配置信息至少包括结构信息、封装信息、引入信息、分包配置信息以及代码规范信息;
基于所述工具配置信息中包含的所述结构信息,设置所述taro工具的项目结构;
基于所述工具配置信息中包含的所述封装信息,对所述taro工具进行封装处理;
基于所述工具配置信息中包含的所述引入信息,在所述taro工具中引入与所述引入信息对应的目标组件;
基于所述工具配置信息中包含的所述分包配置信息,对所述taro工具进行分包配置处理;
基于所述工具配置信息中包含的所述代码规范信息,对所述taro工具设置代码规范,得到所述目标工具。
3.根据权利要求2所述的代码生成方法,其特征在于,所述封装信息包括样式封装信息与方法封装信息;所述基于所述工具配置信息中包含的所述封装信息,对所述taro工具进行封装处理的步骤,具体包括:
获取所述封装信息中包含的所述方法封装信息与所述样式封装信息;
基于所述方法封装信息,对所述taro工具内与所述方法封装信息对应的基础请求类进行封装处理;
基于所述样式封装信息,对所述taro工具内与所述样式封装信息对应的样式进行封装处理。
4.根据权利要求1所述的代码生成方法,其特征在于,所述基于与所述目标工具对应的编译工具,将所述目标前端工程转换成与所述客户端信息对应的目标代码的步骤,具体包括:
调用所述编译工具;
基于所述编译工具内的指定命令生成与所述客户端信息对应的转换命令;
基于所述转换命令将所述目标前端工程转换成与所述客户端信息对应的目标代码。
5.根据权利要求1所述的代码生成方法,其特征在于,所述使用指令还携带框架信息;所述在所述目标工具内创建初始前端工程的步骤,具体包括:
从所述使用指令中解析出所述框架信息;
调用预设的命令行工具;
基于所述框架信息,使用所述命令行工具在所述目标工具内创建所述初始前端工程。
6.根据权利要求1所述的代码生成方法,其特征在于,所述基于所述业务代码生成目标前端工程的步骤,具体包括:
调用预设的代码检测脚本;
基于所述代码检测脚本对所述业务代码进行检测得到对应的检测结果;
判断所述检测结果是否为检测通过;
若所述检测结果为检测通过,执行基于所述业务代码生成目标前端工程的步骤。
7.根据权利要求6所述的代码生成方法,其特征在于,在所述判断所述检测结果是否为检测通过的步骤之后,还包括:
若所述检测结果为检测未通过,生成与所述业务代码对应的代码修改信息;其中,所述代码修改信息包括代码修改位置与代码修改规范;
展示所述代码修改信息。
8.一种代码生成装置,其特征在于,包括:
第一接收模块,用于接收用户输入的对于目标工具的使用指令;其中,所述目标工具为基于预设的业务需求信息对taro工具进行封装处理后生成的;
创建模块,用于响应所述使用指令,启动所述目标工具,在所述目标工具内创建初始前端工程,并展示与所述初始前端工程对应的前端页面;
第二接收模块,用于接收所述用户在所述前端页面输入的业务代码;
生成模块,用于基于所述业务代码生成目标前端工程;
第一获取模块,用于获取预设的客户端信息;
转换模块,用于基于与所述目标工具对应的编译工具,将所述目标前端工程转换成与所述客户端信息对应的目标代码。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如权利要求1至7中任一项所述的代码生成方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如权利要求1至7中任一项所述的代码生成方法的步骤。
CN202210957444.9A 2022-08-10 2022-08-10 代码生成方法、装置、计算机设备及存储介质 Pending CN115344265A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210957444.9A CN115344265A (zh) 2022-08-10 2022-08-10 代码生成方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210957444.9A CN115344265A (zh) 2022-08-10 2022-08-10 代码生成方法、装置、计算机设备及存储介质

Publications (1)

Publication Number Publication Date
CN115344265A true CN115344265A (zh) 2022-11-15

Family

ID=83951431

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210957444.9A Pending CN115344265A (zh) 2022-08-10 2022-08-10 代码生成方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN115344265A (zh)

Similar Documents

Publication Publication Date Title
CN105718289B (zh) 一种组件关系建立方法及其设备
CN113536185B (zh) 应用页面的加载方法、存储介质、及其相关设备
CN115098186A (zh) 项目处理方法、装置、计算机设备及存储介质
CN112631910A (zh) 前端测试方法、装置、计算机设备及存储介质
CN114996619A (zh) 一种页面显示的方法、装置、计算机设备及存储介质
CN110795181A (zh) 基于跳转协议的应用程序界面展示方法、装置及电子设备
CN112631924A (zh) 自动化测试方法、装置、计算机设备及存储介质
CN115794437A (zh) 微服务的调用方法、装置、计算机设备及存储介质
CN112346976A (zh) 基于网页的接口文档生成方法、装置、系统及计算机设备
CN111552463A (zh) 一种页面跳转方法、装置、计算机设备及存储介质
CN110851211A (zh) 用于显示应用信息的方法、装置、电子设备和介质
CN110765610B (zh) Pdm集成方法、装置、计算机设备及存储介质
CN115344265A (zh) 代码生成方法、装置、计算机设备及存储介质
CN113315829B (zh) 客户端离线化h5页面加载方法、装置、计算机设备及介质
CN115564000A (zh) 二维码生成方法、装置、计算机设备及存储介质
CN115203674A (zh) 一种应用程序自动登录方法、系统、装置及存储介质
CN103034661A (zh) 电子装置及其快速开启网页的方法
CN112328940A (zh) 网页嵌入过渡页的方法、装置、计算机设备及存储介质
CN111552898A (zh) 基于Html5的流程图绘制方法、装置、计算机设备及存储介质
CN113032003B (zh) 开发文件导出方法、装置、电子设备及计算机存储介质
CN116466945A (zh) 数据展示方法、装置、计算机设备及存储介质
CN115686475A (zh) 标准化服务sdk自动化生成方法及其相关设备
CN114995850A (zh) 安装包图片处理方法、装置、计算机设备及存储介质
CN114675813A (zh) 模板语法的统一方法、装置、计算机设备及存储介质
CN115546356A (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