CN110580147B - 一种应用程序的开发方法和装置 - Google Patents

一种应用程序的开发方法和装置 Download PDF

Info

Publication number
CN110580147B
CN110580147B CN201810580599.9A CN201810580599A CN110580147B CN 110580147 B CN110580147 B CN 110580147B CN 201810580599 A CN201810580599 A CN 201810580599A CN 110580147 B CN110580147 B CN 110580147B
Authority
CN
China
Prior art keywords
functional component
information
application
data
component
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.)
Active
Application number
CN201810580599.9A
Other languages
English (en)
Other versions
CN110580147A (zh
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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201810580599.9A priority Critical patent/CN110580147B/zh
Priority to TW108108593A priority patent/TW202001548A/zh
Priority to PCT/CN2019/088258 priority patent/WO2019233293A1/zh
Publication of CN110580147A publication Critical patent/CN110580147A/zh
Application granted granted Critical
Publication of CN110580147B publication Critical patent/CN110580147B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请实施例提供了一种应用程序的开发方法和装置,所述方法包括:确定应用程序的功能组件,所述功能组件具有相应的编码信息;生成与所述功能组件相对应的结构化描述信息;依据所述结构化描述信息对所述功能组件的编码信息进行配置,以获得目标组件;获取待加载的数据;针对多个应用端,分别将所述目标组件和所述待加载的数据编译为可执行程序。本实施例可以在不同的应用端使同一套代码编写方式,然后通过构建翻译成不同的应用端支持的可执行程序,无需针对不同的应用端分别进行开发,实现了一套业务逻辑的在多个应用端的复用,提高了应用程序的开发效率,降低了应用程序的开发成本。

Description

一种应用程序的开发方法和装置
技术领域
本申请涉及计算机技术领域,特别是涉及一种应用程序的开发方法和一种应用程序的开发装置。
背景技术
React是一个用于构建用户界面的JavaScript(一种直译式脚本语言)库,其设计思想极其独特,性能也十分出众,然而代码逻辑却非常简单。于是有越来越多的开发人员开始关注和使用React,并通过React进行应用程序的开发。
在基于React进行的应用程序的开发过程中,开发人员首先需要将业务需求拆分为具体步骤,然后按照各个步骤的顺序依次去实现、集成,直到最终完成整个应用程序的开发。在此过程中,开发形式往往是以串行方式,而非协议配置的形式来进行的。
按照React此种开发方式,其最终产出的语法结构是类似XML(Extensible MarkupLanguage,可扩展标记语言)结构,通过该结构进行应用程序的搭建,如果仅仅是应用在一个平台上,不会有特别的问题出现。但是,针对具体编程实现来完成的开发任务,很难做到将同一种业务模型和逻辑应用到其他不同的平台上,使得基于React开发完成的应用程序难以适配多个不同的平台。如果要将该应用程序应用在多个平台上,就需要针对各个平台分别进行开发,导致开发成本的急剧增加。
发明内容
鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种应用程序的开发方法和相应的一种应用程序的开发装置。
为了解决上述问题,本申请公开了一种应用程序的开发方法,包括:
确定应用程序的功能组件,所述功能组件具有相应的编码信息;
生成与所述功能组件相对应的结构化描述信息;
依据所述结构化描述信息对所述功能组件的编码信息进行配置,以获得目标组件;
获取待加载的数据;
针对多个应用端,分别将所述目标组件和所述待加载的数据编译为可执行程序。
可选地,所述生成与所述功能组件相对应的结构化描述信息的步骤包括:
确定各个功能组件的逻辑实现信息;
将所述逻辑实现信息转换为结构化描述信息。
可选地,所述结构化描述信息为Json Schema描述信息。
可选地,所述依据所述结构化描述信息对所述功能组件的编码信息进行配置,以获得目标组件的步骤包括:
加载所述功能组件的编码信息至解析引擎;
按照所述结构化描述信息,在所述解析引擎中对所述功能组件的编码信息进行渲染,以获得目标组件。
可选地,所述加载所述功能组件的编码信息至解析引擎的步骤包括:
调用预设的注册函数;
通过所述注册函数,将所述功能组件的编码信息注册至解析引擎。
可选地,所述获取待加载的数据的步骤包括:
确定各个功能组件的数据配置规则;
按照所述数据配置规则,获取相应的待加载数据。
可选地,所述针对多个应用端,分别将所述目标组件和所述待加载的数据编译为可执行程序的步骤包括:
确定目标应用端,所述目标应用端具有对应的编译方式;
按照所述编译方式,将所述目标组件和所述待加载的数据编译为所述目标应用端的可执行程序。
可选地,还包括:
在所述目标应用端中运行所述可执行程序。
可选地,还包括:
对所述应用程序的功能组件进行更新或修改。
可选地,所述对所述应用程序的功能组件进行更新或修改的步骤包括:
确定待更新或修改的功能组件;
对所述待更新或修改的功能组件对应的结构化描述信息进行更新或修改。
为了解决上述问题,本申请公开了一种应用程序的开发方法,包括:
确定应用程序的功能组件,所述功能组件具有相应的编码信息和逻辑实现信息;
将所述功能组件的逻辑实现信息转换为Json Schema描述信息;
加载所述功能组件的编码信息至解析引擎;
依据所述Json Schema描述信息,在所述解析引擎中对所述功能组件的编码信息进行配置,以获得目标组件;
获取待加载的数据;
针对多个应用端,分别将所述目标组件和所述待加载的数据编译为可执行程序;
分别在各个应用端中运行所述可执行程序。
为了解决上述问题,本申请公开了一种应用程序的开发装置,包括:
确定模块,用于确定应用程序的功能组件,所述功能组件具有相应的编码信息;
生成模块,用于生成与所述功能组件相对应的结构化描述信息;
配置模块,用于依据所述结构化描述信息对所述功能组件的编码信息进行配置,以获得目标组件;
获取模块,用于获取待加载的数据;
编译模块,用于针对多个应用端,分别将所述目标组件和所述待加载的数据编译为可执行程序。
可选地,所述生成模块包括:
逻辑实现信息确定子模块,用于确定各个功能组件的逻辑实现信息;
逻辑实现信息转换子模块,用于将所述逻辑实现信息转换为结构化描述信息。
可选地,所述结构化描述信息为Json Schema描述信息。
可选地,所述配置模块包括:
编码信息加载子模块,用于加载所述功能组件的编码信息至解析引擎;
编码信息渲染子模块,用于按照所述结构化描述信息,在所述解析引擎中对所述功能组件的编码信息进行渲染,以获得目标组件。
可选地,所述编码信息加载子模块包括:
注册函数调用单元,用于调用预设的注册函数;
编码信息注册单元,用于通过所述注册函数,将所述功能组件的编码信息注册至解析引擎。
可选地,所述获取模块包括:
数据配置规则确定子模块,用于确定各个功能组件的数据配置规则;
待加载数据获取子模块,用于按照所述数据配置规则,获取相应的待加载数据。
可选地,所述编译模块包括:
目标应用端确定子模块,用于确定目标应用端,所述目标应用端具有对应的编译方式;
可执行程序编译子模块,用于按照所述编译方式,将所述目标组件和所述待加载的数据编译为所述目标应用端的可执行程序。
可选地,所述装置还包括:
运行模块,用于在所述目标应用端中运行所述可执行程序。
可选地,所述装置还包括:
更新修改模块,用于对所述应用程序的功能组件进行更新或修改。
可选地,所述更新修改模块包括:
功能组件确定子模块,用于确定待更新或修改的功能组件;
结构化描述信息更新修改子模块,用于对所述待更新或修改的功能组件对应的结构化描述信息进行更新或修改。
为了解决上述问题,本申请公开了一种应用程序的开发装置,包括:
确定模块,用于确定应用程序的功能组件,所述功能组件具有相应的编码信息和逻辑实现信息;
转换模块,用于将所述功能组件的逻辑实现信息转换为Json Schema描述信息;
加载模块,用于加载所述功能组件的编码信息至解析引擎;
配置模块,用于依据所述Json Schema描述信息,在所述解析引擎中对所述功能组件的编码信息进行配置,以获得目标组件;
获取模块,用于获取待加载的数据;
编译模块,用于针对多个应用端,分别将所述目标组件和所述待加载的数据编译为可执行程序;
运行模块,用于分别在各个应用端中运行所述可执行程序。
与背景技术相比,本申请实施例包括以下优点:
本申请实施例,通过确定应用程序的各个功能组件,并生成与各个功能组件相对应的结构化描述信息,从而可以依据上述结构化描述信息对功能组件的编码信息进行配置获得目标组件,然后在获取待加载的数据后,可以针对多个不同的应用端,分别将上述目标组件和待加载的数据编译为能够在不同的应用端上运行的可执行程序。本实施例可以在不同的应用端使同一套代码编写方式,然后通过构建翻译成不同的应用端支持的可执行程序,无需针对不同的应用端分别进行开发,实现了一套业务逻辑的在多个应用端的复用,提高了应用程序的开发效率,降低了应用程序的开发成本。
附图说明
图1是本申请一个实施例的一种应用程序的开发方法的步骤流程示意图;
图2是本申请一个实施例的另一种应用程序的开发方法的步骤流程示意图;
图3是本申请一个实施例的又一种应用程序的开发方法的步骤流程示意图;
图4是本申请一个实施例的一种应用程序的开发方法的原理图;
图5是本申请一个实施例的一种应用程序的开发装置的示意性结构框图;
图6是本申请一个实施例的另一种应用程序的开发装置的示意性结构框图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
参照图1,示出了本申请一个实施例的一种应用程序的开发方法的步骤流程示意图,具体可以包括如下步骤:
步骤101,确定应用程序的功能组件,所述功能组件具有相应的编码信息;
需要说明的是,上述应用程序可以是应用于不同的应用平台或应用端的程序或软件。例如,Web端、Html5端、Native端等等,本实施例对此不作限定。
通常,各个应用程序都包括有相应的功能,各种功能都是通过具体的功能组件来实现的。因此,在进行应用程序的开发时,开发人员首先需要确定当前开发的应用程序应当具有哪些功能组件。
在本申请实施例中,各个功能组件具有的编码信息可以是由开发人员在确定出相应的功能组件后按照特定的开发方式进行编写得到的组件代码。在具体实现中,开发人员可以使用React Component编写应用程序各个功能组件的代码。
React Component是一个抽象基类,通过实现一个它的子类,并且至少定义一个render()方法即可使用。React Component允许开发人员将UI(User Interface,用户界面)拆分为独立的可重用的部分,并单独地去考虑每个部分。
步骤102,生成与所述功能组件相对应的结构化描述信息;
在本申请实施例中,在开发人员进行应用程序的开发时,为了实现一次开发便能够最大限度地在多个不同的应用端上应用,可以在确定出应用程序的各个功能组件后,以一种结构化的描述信息去描述各个功能组件。
在本申请实施例中,结构化描述信息可以是一种结构化的协议。对于应用程序的功能组件,可以通过该协议去进行描述或表达。
在具体实现中,上述结构化描述信息可以是Json Schema描述信息。
熟悉XML的开发人员都知道,对XML文档的定义有一个XML Schema(模式)。同样,对于Json文件的定义,也应该有一个Json Schema来规范Json文件的内容。因此,Json Schema是一种用以标注和验证Json文档的元数据的文档,可以类比于XML Schema。相对于JsonSchema,一个Json文档就是Json Schema的一个instance(实例)。
Json Schema可以解决有关一致性验证的问题,例如:
1、值的数据类型是否正确:可以具体规定一个值是数字、字符串等类型;
2、是否包含所需的数据:可以规定哪些数据是需要的,哪些是不需要的;
3、值的形式是不是我需要的:可以指定范围、最小值和最大值。
如下信息,是Json Schema描述的一种示例:
Figure BDA0001688402670000071
Figure BDA0001688402670000081
Figure BDA0001688402670000091
步骤103,依据所述结构化描述信息对所述功能组件的编码信息进行配置,以获得目标组件;
在本申请实施例中,通过结构化描述信息对功能组件的编码信息进行配置可以在解析引擎中实现。
以结构化描述信息为Json Schema描述信息为例,上述解析引擎即是可以对JsonSchema协议进行解析的一种装置。通过解析引擎,可以将Json文档最终解析为应用功能的代码实现。
在具体实现中,可以首先提供一个注册函数,来把功能组件的代码信息注册到解析引擎中。
例如,engine.register({input:ComInput}),其中input为定义的功能组件的类型(type),comInput为具体的功能组件。
只有注册到解析引擎中的功能组件,才能在Json Schema中完成配置,并且最终通过解析引擎才能解析并渲染出该功能组件,从而得到需要的目标组件。
步骤104,获取待加载的数据;
通常,一个功能组件仅有样式等信息是不够的,还需要有具体的行为或者数据来支持。例如,一个图表模块,需要去拉取在该图标中进行显示的数据;或者,该图表模块可能还有一些交互行为,如点击的时候需要响应等等。这就需要具体的数据去支持。
在本申请实施例中,在获取待加载的数据前,可以首先确定在Json Schema中配置数据的规则、相关的定制逻辑等等,然后按照上述规则或逻辑去拉取相应的数据。
步骤105,针对多个应用端,分别将所述目标组件和所述待加载的数据编译为可执行程序。
在本申请实施例中,在完成前述各个步骤后,为了实现将待开发的应用程序应用在不同的应用端中,可以利用解析引擎,将目标组件和待加载的数据解析为不同应用端的可执行程序,从而实现一套业务逻辑在多个应用端的的复用。
在本申请实施例中,通过确定应用程序的各个功能组件,并生成与各个功能组件相对应的结构化描述信息,从而可以依据上述结构化描述信息对功能组件的编码信息进行配置获得目标组件,然后在获取待加载的数据后,可以针对多个不同的应用端,分别将上述目标组件和待加载的数据编译为能够在不同的应用端上运行的可执行程序。本实施例可以在不同的应用端使同一套代码编写方式,然后通过构建翻译成不同的应用端支持的可执行程序,无需针对不同的应用端分别进行开发,实现了一套业务逻辑的在多个应用端的复用,提高了应用程序的开发效率,降低了应用程序的开发成本。
参照图2,示出了本申请一个实施例的另一种应用程序的开发方法的步骤流程示意图,具体可以包括如下步骤:
步骤201,确定应用程序的功能组件,所述功能组件具有相应的编码信息;
需要说明的是,上述应用程序可以是应用于多个应用端的程序或软件。例如,Web端、Html5端、Native端等等。
在本申请实施例中,开发人员在进行应用程序的开发前,可以首先确定该应用程序所具有的功能组件包括哪些。该应用程序具有的各种功能均可以通过各个功能组件来实现。
在本申请实施例中,应用程序各个功能组件的编码信息可以是由开发人员使用React Component编写得到的功能组件的代码。
步骤202,确定各个功能组件的逻辑实现信息;
在本申请实施例中,各个功能组件的逻辑实现信息可以是指该功能组件的具体功能实现,逻辑实现常常以软件编程的形式得以体现。
步骤203,将所述逻辑实现信息转换为结构化描述信息;
在本申请实施例中,上述结构化描述信息可以是Json Schema描述信息,JsonSchema描述信息可以是一种Json Schema协议。
为了实现一次开发便能够最大限度地在多个不同的应用端上应用,可以在确定出应用程序的各个功能组件的逻辑实现后,以一种Json Schema协议去描述各个功能组件。
步骤204,加载所述功能组件的编码信息至解析引擎;
在本申请实施例中,通过结构化描述信息对功能组件的编码信息进行配置可以在解析引擎中实现。
例如,在结构化描述信息为Json Schema描述信息时,上述解析引擎即是可以对Json Schema协议进行解析的一种装置,如,React Engine(一种基于React的解析引擎)。通过React Engine,可以将Json文档最终解析为应用功能的代码实现。
在具体实现中,可以首先调用预设的注册函数,通过该注册函数,可以将功能组件的编码信息注册至React Engine解析引擎。
步骤205,按照所述结构化描述信息,在所述解析引擎中对所述功能组件的编码信息进行渲染,以获得目标组件;
在本申请实施例中,只有注册到React Engine中的功能组件,才能在Json Schema中完成配置,并且最终通过React Engine才能解析并渲染出该功能组件,从而得到需要的目标组件。
因此,在将功能组件的代码注册到React Engine后,可以按照Json Schema协议,在React Engine中对上述代码进行配置和渲染,得到所需的目标组件。
步骤206,确定各个功能组件的数据配置规则;
通常,一个功能组件仅有样式等信息是不够的,还需要有具体的行为或者数据来支持。例如,一个图表模块,需要去拉取在该图标中进行显示的数据;或者,该图表模块可能还有一些交互行为,如点击的时候需要响应等等。这就需要具体的数据去支持。
在本申请实施例中,在获取相应的数据前,可以首先确定在Json Schema中配置数据的规则、相关的定制逻辑等等。
步骤207,按照所述数据配置规则,获取相应的待加载数据;
在确定出在Json Schema中配置数据的规则后,,便可以按照这个规则去拉取相应的数据。这些数据即是在后续的开发过程中,需要用到的待加载数据,通过将这些数据加载至目标组件中,可以使得形成的各个目标组件具备了具体的行为和数据支撑。
步骤208,确定目标应用端,所述目标应用端具有对应的编译方式;
在本申请实施例中,目标应用端可以是指当前开发的应用程序所要运行的应用端。例如,目标应用端可以是Web端、Html5端、Native端,以及,其他类型的应用端。
通常,不同的应用端具有不同的软件开发编译方式。因此,在确定出目标应用端后,可以进一步确定与该目标应用端相匹配的编译方式是什么,从而可以按照对应的编译方式将前述步骤获得的目标组件和待加载的数据编译为适配于该目标应用端的可执行程序。。
步骤209,按照所述编译方式,将所述目标组件和所述待加载的数据编译为所述目标应用端的可执行程序;
在本申请实施例中,可以按照各个应用端对应的编译方式,通过构建方式,例如babel脚本,将一套代码编译成可以在不同应用端运行的可执行程序。
Babel是一种用于编写下一代JavaScript的编译器,能够把用最新标准编写的JavaScript代码向下编译成可以在今天随处可用的版本。这一过程通常被叫做“源码到源码”编译,也被称为转换编译。
通过上述编译过程,使得程序能够匹配不同的应用端,实现一次开发便能够在多个应用端上的复用。
步骤210,在所述目标应用端中运行所述可执行程序。
在本申请实施例中,在将代码编译为对应目标应用端上的可执行程序后,便可以在该目标应用端上运行该程序,从而完成在多个应用端上的应用程序开发。
需要说明的是,在完成对应用程序的开发后,还可以根据应用程序在后续的使用过程中的实际需要,对应用程序的功能组件进行更新或修改,动态地替换掉已经上线的功能组件的各个内容,例如,如更改图标、字段、颜色等等,实现对应用程序的内容的随时更新。
在本申请实施例中,由于各个应用端共用一份结构化描述信息,因此在需要对应用程序进行更新后修改时,可以首先确定待更新或修改的功能组件是哪一个,然后对上述待更新或修改的功能组件对应的结构化描述信息进行更新或修改,实现一次修改多端同步,对应用程序内容快速更新。
在本申请实施例中,通过将应用程序的设计抽象为Json Schema描述,这样PC端、Mobile端等各个不同的应用端都可以使用同一份Schema描述来生成功能组件;同时,整个应用程序都是Json数据格式的,每一次操作都是一份新的Json文档,所有过程都是可逆的;业务逻辑通过相应的配置规则实现,不会侵入功能组件内部,降低了组件的使用难度,无需针对不同的应用端分别进行开发,实现了一套业务逻辑的在多个应用端的复用,提高了应用程序的开发效率,降低了应用程序的开发成本。
参照图3,示出了本申请一个实施例的又一种应用程序的开发方法的步骤流程示意图,具体可以包括如下步骤:
步骤301,确定应用程序的功能组件,所述功能组件具有相应的编码信息和逻辑实现信息;
步骤302,将所述功能组件的逻辑实现信息转换为Json Schema描述信息;
步骤303,加载所述功能组件的编码信息至解析引擎;
步骤304,依据所述Json Schema描述信息,在所述解析引擎中对所述功能组件的编码信息进行配置,以获得目标组件;
步骤305,获取待加载的数据;
步骤306,针对多个应用端,分别将所述目标组件和所述待加载的数据编译为可执行程序;
步骤307,分别在各个应用端中运行所述可执行程序。
在本申请实施例中,开发人员在进行应用程序的开发时,可以首先确定该应用程序所要运行的应用端包括哪些。
如图4所示,是本申请一个实施例的一种应用程序的开发方法的原理图。在图4中,当前开发的应用程序可以是需要运行于Web端、Html5端,以及,Native端中。
然后,可以进一步确定该应用程序所具有的功能组件包括哪些,以及各个功能组件的逻辑实现信息。通过这些功能组件能够实现该应用程序的完整功能。
在确定出功能组件的逻辑实现信息后,可以将上述逻辑实现信息抽象为JsonSchema描述,如图4中所示的Component(组件)、Layout(布局)、Data(数据)、Rules(配置规则)。
进而,将通过使用React Component编写得到的各个功能组件的代码加载至能够解析Json Schema的React Engine解析引擎中,并在React Engine进行解析、配置和渲染,得到目标组件。
在获取到待加载的数据后,可以针对各个应用端,将目标组件编译为对应应用端的可执行程序,并在该应用端中进行运行。例如,在图4中,对应于Web端,可以编译得到适配于该Web端的Web Page(网页页面);对应于Html5端,可以编译得到适配于该Html5端的Html5APP(Html5应用程序);对应于Native端,可以编译得到适配于该Native端的NativeAPP(Native应用程序)。
由于本实施例中各个步骤与前述实施例步骤201-步骤210类似,可以相互参阅,本实施例对此描述得比较简单,相关过程可以参见上述步骤201-步骤210的描述,本实施例对此不再赘述。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
参照图5,示出了本申请一个实施例的一种应用程序的开发装置的示意性结构框图,具体可以包括如下模块:
确定模块501,用于确定应用程序的功能组件,所述功能组件具有相应的编码信息;
生成模块502,用于生成与所述功能组件相对应的结构化描述信息;
配置模块503,用于依据所述结构化描述信息对所述功能组件的编码信息进行配置,以获得目标组件;
获取模块504,用于获取待加载的数据;
编译模块505,用于针对多个应用端,分别将所述目标组件和所述待加载的数据编译为可执行程序。
在本申请实施例中,所述生成模块502具体可以包括如下子模块:
逻辑实现信息确定子模块,用于确定各个功能组件的逻辑实现信息;
逻辑实现信息转换子模块,用于将所述逻辑实现信息转换为结构化描述信息。
在本申请实施例中,所述结构化描述信息可以为Json Schema描述信息。
在本申请实施例中,所述配置模块503具体可以包括如下子模块:
编码信息加载子模块,用于加载所述功能组件的编码信息至解析引擎;
编码信息渲染子模块,用于按照所述结构化描述信息,在所述解析引擎中对所述功能组件的编码信息进行渲染,以获得目标组件。
在本申请实施例中,所述编码信息加载子模块具体可以包括如下单元:
注册函数调用单元,用于调用预设的注册函数;
编码信息注册单元,用于通过所述注册函数,将所述功能组件的编码信息注册至解析引擎。
在本申请实施例中,所述获取模块504具体可以包括如下子模块:
数据配置规则确定子模块,用于确定各个功能组件的数据配置规则;
待加载数据获取子模块,用于按照所述数据配置规则,获取相应的待加载数据。
在本申请实施例中,所述编译模块505具体可以包括如下子模块:
目标应用端确定子模块,用于确定目标应用端,所述目标应用端具有对应的编译方式;
可执行程序编译子模块,用于按照所述编译方式,将所述目标组件和所述待加载的数据编译为所述目标应用端的可执行程序。
在本申请实施例中,所述装置还可以包括如下模块:
运行模块,用于在所述目标应用端中运行所述可执行程序。
在本申请实施例中,所述装置还可以包括如下模块:
更新修改模块,用于对所述应用程序的功能组件进行更新或修改。
在本申请实施例中,所述更新修改模块具体可以包括如下子模块:
功能组件确定子模块,用于确定待更新或修改的功能组件;
结构化描述信息更新修改子模块,用于对所述待更新或修改的功能组件对应的结构化描述信息进行更新或修改。
参照图6,示出了本申请一个实施例的另一种应用程序的开发装置的示意性结构框图,具体可以包括如下模块:
确定模块601,用于确定应用程序的功能组件,所述功能组件具有相应的编码信息和逻辑实现信息;
转换模块602,用于将所述功能组件的逻辑实现信息转换为Json Schema描述信息;
加载模块603,用于加载所述功能组件的编码信息至解析引擎;
配置模块604,用于依据所述Json Schema描述信息,在所述解析引擎中对所述功能组件的编码信息进行配置,以获得目标组件;
获取模块605,用于获取待加载的数据;
编译模块606,用于针对多个应用端,分别将所述目标组件和所述待加载的数据编译为可执行程序;
运行模块607,用于分别在各个应用端中运行所述可执行程序。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
在一个典型的配置中,所述计算机设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非持续性的电脑可读媒体(transitory media),如调制的数据信号和载波。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种应用程序的开发方法和一种应用程序的开发装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (13)

1.一种应用程序的开发方法,其特征在于,包括:
确定应用程序的功能组件,所述功能组件具有相应的编码信息;所述编码信息为基于可拆分成独立的可重用的部分的基类生成的组件代码,用于确定各个功能组件的逻辑实现信息;
将所述逻辑实现信息生成与所述功能组件相对应的结构化描述信息;
依据所述结构化描述信息对所述功能组件的编码信息进行配置,以获得目标组件;所述目标组件基于在解析引擎中按照所述结构化描述信息对所述编码信息进行渲染得到;
获取待加载的数据;所述待加载的数据基于各个功能组件的数据配置规则获取,包括针对所述功能组件的交互行为数据和响应数据;
针对多个应用端,分别将所述目标组件和所述待加载的数据编译为可执行程序。
2.根据权利要求1所述的方法,其特征在于,所述生成与所述功能组件相对应的结构化描述信息的步骤包括:
确定各个功能组件的逻辑实现信息;
将所述逻辑实现信息转换为结构化描述信息。
3.根据权利要求2所述的方法,其特征在于,所述结构化描述信息为Json Schema描述信息。
4.根据权利要求1所述的方法,其特征在于,所述依据所述结构化描述信息对所述功能组件的编码信息进行配置,以获得目标组件的步骤包括:
加载所述功能组件的编码信息至解析引擎;
按照所述结构化描述信息,在所述解析引擎中对所述功能组件的编码信息进行渲染,以获得目标组件。
5.根据权利要求4所述的方法,其特征在于,所述加载所述功能组件的编码信息至解析引擎的步骤包括:
调用预设的注册函数;
通过所述注册函数,将所述功能组件的编码信息注册至解析引擎。
6.根据权利要求1所述的方法,其特征在于,所述获取待加载的数据的步骤包括:
确定各个功能组件的数据配置规则;
按照所述数据配置规则,获取相应的待加载数据。
7.根据权利要求1所述的方法,其特征在于,所述针对多个应用端,分别将所述目标组件和所述待加载的数据编译为可执行程序的步骤包括:
确定目标应用端,所述目标应用端具有对应的编译方式;
按照所述编译方式,将所述目标组件和所述待加载的数据编译为所述目标应用端的可执行程序。
8.根据权利要求7所述的方法,其特征在于,还包括:
在所述目标应用端中运行所述可执行程序。
9.根据权利要求1所述的方法,其特征在于,还包括:
对所述应用程序的功能组件进行更新或修改。
10.根据权利要求9所述的方法,其特征在于,所述对所述应用程序的功能组件进行更新或修改的步骤包括:
确定待更新或修改的功能组件;
对所述待更新或修改的功能组件对应的结构化描述信息进行更新或修改。
11.一种应用程序的开发方法,其特征在于,包括:
确定应用程序的功能组件,所述功能组件具有相应的编码信息和逻辑实现信息;所述编码信息为基于可拆分成独立的可重用的部分的基类生成的组件代码,用于确定各个功能组件的逻辑实现信息;
将所述功能组件的逻辑实现信息转换为Json Schema描述信息;
加载所述功能组件的编码信息至解析引擎;
依据所述Json Schema描述信息,在所述解析引擎中对所述功能组件的编码信息进行配置,以获得目标组件;所述目标组件基于在解析引擎中按照所述Json Schema描述信息对所述编码信息进行渲染得到;
获取待加载的数据;所述待加载的数据基于各个功能组件的数据配置规则获取,包括针对所述功能组件的交互行为数据和响应数据;
针对多个应用端,分别将所述目标组件和所述待加载的数据编译为可执行程序;
分别在各个应用端中运行所述可执行程序。
12.一种应用程序的开发装置,其特征在于,包括:
确定模块,用于确定应用程序的功能组件,所述功能组件具有相应的编码信息;所述编码信息为基于可拆分成独立的可重用的部分的基类生成的组件代码,用于确定各个功能组件的逻辑实现信息;
生成模块,用于将所述逻辑实现信息生成与所述功能组件相对应的结构化描述信息;
配置模块,用于依据所述结构化描述信息对所述功能组件的编码信息进行配置,以获得目标组件;所述目标组件基于在解析引擎中按照所述结构化描述信息对所述编码信息进行渲染得到;
获取模块,用于获取待加载的数据;所述待加载的数据基于各个功能组件的数据配置规则获取,包括针对所述功能组件的交互行为数据和响应数据;
编译模块,用于针对多个应用端,分别将所述目标组件和所述待加载的数据编译为可执行程序。
13.一种应用程序的开发装置,其特征在于,包括:
确定模块,用于确定应用程序的功能组件,所述功能组件具有相应的编码信息和逻辑实现信息;所述编码信息为基于可拆分成独立的可重用的部分的基类生成的组件代码;
转换模块,用于将所述功能组件的逻辑实现信息转换为Json Schema描述信息;
加载模块,用于加载所述功能组件的编码信息至解析引擎;
配置模块,用于依据所述Json Schema描述信息,在所述解析引擎中对所述功能组件的编码信息进行配置,以获得目标组件;所述目标组件基于在解析引擎中按照所述JsonSchema描述信息对所述编码信息进行渲染得到;
获取模块,用于获取待加载的数据;所述待加载的数据基于各个功能组件的数据配置规则获取,包括针对所述功能组件的交互行为数据和响应数据;
编译模块,用于针对多个应用端,分别将所述目标组件和所述待加载的数据编译为可执行程序;
运行模块,用于分别在各个应用端中运行所述可执行程序。
CN201810580599.9A 2018-06-07 2018-06-07 一种应用程序的开发方法和装置 Active CN110580147B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201810580599.9A CN110580147B (zh) 2018-06-07 2018-06-07 一种应用程序的开发方法和装置
TW108108593A TW202001548A (zh) 2018-06-07 2019-03-14 應用程式的開發方法和裝置
PCT/CN2019/088258 WO2019233293A1 (zh) 2018-06-07 2019-05-24 一种应用程序的开发方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810580599.9A CN110580147B (zh) 2018-06-07 2018-06-07 一种应用程序的开发方法和装置

Publications (2)

Publication Number Publication Date
CN110580147A CN110580147A (zh) 2019-12-17
CN110580147B true CN110580147B (zh) 2022-07-05

Family

ID=68769715

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810580599.9A Active CN110580147B (zh) 2018-06-07 2018-06-07 一种应用程序的开发方法和装置

Country Status (3)

Country Link
CN (1) CN110580147B (zh)
TW (1) TW202001548A (zh)
WO (1) WO2019233293A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111339136A (zh) * 2020-02-19 2020-06-26 中国建设银行股份有限公司 一种数据检核方法、装置、电子设备及存储介质
CN111338608B (zh) * 2020-02-28 2022-03-04 腾讯科技(深圳)有限公司 分布式应用开发方法、装置、节点设备及可读存储介质
CN113360134B (zh) * 2020-03-06 2022-06-17 武汉斗鱼网络科技有限公司 安全验证程序的生成方法、装置、设备和存储介质
CN111399810A (zh) * 2020-03-11 2020-07-10 杭州涂鸦信息技术有限公司 一种iOS应用程序动态组件化开发方法及其系统和设备
CN113495727A (zh) * 2020-04-07 2021-10-12 腾讯科技(深圳)有限公司 业务组件开发方法、装置、电子设备及介质
CN111880785A (zh) * 2020-06-23 2020-11-03 北京三快在线科技有限公司 程序代码转换方法、装置,电子设备
CN112051985B (zh) * 2020-07-23 2023-07-25 北京奇艺世纪科技有限公司 事件触发方法、装置、电子设备及可读存储介质
CN112487163B (zh) * 2020-11-30 2024-04-12 广州品唯软件有限公司 自动化流程的执行方法及其接口数据的获取方法、装置
WO2022205013A1 (zh) * 2021-03-30 2022-10-06 京东方科技集团股份有限公司 程序数据包生成方法、装置、设备及存储介质
CN113672224A (zh) * 2021-08-20 2021-11-19 上海哔哩哔哩科技有限公司 小程序页面代码生成方法、装置及计算机设备
CN113869016A (zh) * 2021-09-28 2021-12-31 城云科技(中国)有限公司 图表配置方法、装置及计算机程序产品
CN116088855B (zh) * 2023-02-15 2023-06-23 天翼云科技有限公司 开发方法、装置、电子设备和存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100426750C (zh) * 2006-04-23 2008-10-15 华为技术有限公司 一种生成两套网管系统的方法
CN103246515B (zh) * 2013-05-13 2016-11-02 广东飞企互联科技股份有限公司 一种可视化mvc功能建模控制方法
US9678723B2 (en) * 2014-08-20 2017-06-13 Verizon Patent And Licensing Inc. Application programming interface (API) engine
US9558020B2 (en) * 2014-09-17 2017-01-31 International Business Machines Corporation Method of processing javascript (JS) API requests
CN104714830B (zh) * 2015-04-03 2018-03-30 普元信息技术股份有限公司 基于原生开发语言实现跨平台应用开发的系统及方法
KR101787527B1 (ko) * 2016-03-31 2017-10-24 주식회사 티맥스 소프트 다중 플랫폼 위에서 실행되는 클라이언트 애플리케이션 개발용 프레임워크를 지원하기 위한 장치 및 이를 사용한 방법
US10346184B2 (en) * 2016-05-13 2019-07-09 Sap Se Open data protocol services in applications and interfaces across multiple platforms
CN106775725B (zh) * 2016-12-19 2020-12-01 网易(杭州)网络有限公司 一种可视化的配置编辑方法及装置
CN106873989A (zh) * 2017-01-20 2017-06-20 北京奇虎科技有限公司 应用程序构造方法和装置
CN106951231B (zh) * 2017-02-23 2021-02-26 微梦创科网络科技(中国)有限公司 一种计算机软件开发方法及装置
CN106990966A (zh) * 2017-03-31 2017-07-28 中国科学技术大学苏州研究院 基于前端框架的移动端跨平台应用开发框架及开发方法
CN107193545B (zh) * 2017-04-07 2020-07-10 广东省科技基础条件平台中心 一种面向构件的多语言协同开发装置、方法与系统
CN107908432A (zh) * 2017-11-17 2018-04-13 深圳泉眼体育运营管理有限公司 应用程序的配置方法及装置、终端设备及可读存储介质

Also Published As

Publication number Publication date
CN110580147A (zh) 2019-12-17
TW202001548A (zh) 2020-01-01
WO2019233293A1 (zh) 2019-12-12

Similar Documents

Publication Publication Date Title
CN110580147B (zh) 一种应用程序的开发方法和装置
CN110020307B (zh) 一种客户端视图的绘制方法和装置
US9471282B2 (en) System and method for using annotations to automatically generate a framework for a custom javaserver faces (JSF) component
CN108920496B (zh) 一种渲染方法及装置
CN110888645A (zh) 一种转换为小程序的方法、装置和存储介质
CN110457656A (zh) 一种文档展示方法和装置
EP3008585A1 (en) Automatic source code generation
CN114153459A (zh) 接口文档生成方法及装置
CN112306486B (zh) 一种界面生成方法、装置、服务器及存储介质
US11604662B2 (en) System and method for accelerating modernization of user interfaces in a computing environment
CN108984223B (zh) 一种程序调用解耦方法、装置、电子设备及存储介质
Shute Advanced JavaScript: Speed up web development with the powerful features and benefits of JavaScript
US9697021B2 (en) Modifiable high-level intermediate representation of source code
CN111736812A (zh) 文档代码执行方法、装置、计算机设备及存储介质
CN111651160B (zh) 插件构建、网页设计的方法和装置
US9747085B2 (en) Source code generation from prototype source
CN114489607A (zh) 跨栈应用处理与页面渲染方法、装置、设备及存储介质
CN113391806A (zh) 一种将颜色代码进行转换的方法、装置、设备和可读介质
CN116521144A (zh) 一种程序封装方法、装置及电子设备
CN110716746B (zh) 将rn样式代码转换为小程序样式代码的方法及装置
Jobsen Less Web Development Essentials
CN117289905B (zh) 一种应用软件开发方法和装置、存储介质和电子设备
CN114443053A (zh) 一种目标应用程序的打包方法、装置及电子设备
CN115373683A (zh) 页面的展示方法、编译源代码的方法及相关设备
Gunasinghe et al. Refactoring and Code Fixes

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40018689

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant