CN113419710A - 小程序的开发方法、装置、电子设备和介质 - Google Patents

小程序的开发方法、装置、电子设备和介质 Download PDF

Info

Publication number
CN113419710A
CN113419710A CN202110716128.8A CN202110716128A CN113419710A CN 113419710 A CN113419710 A CN 113419710A CN 202110716128 A CN202110716128 A CN 202110716128A CN 113419710 A CN113419710 A CN 113419710A
Authority
CN
China
Prior art keywords
layer
applet
file
package
development
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.)
Granted
Application number
CN202110716128.8A
Other languages
English (en)
Other versions
CN113419710B (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.)
Beijing Wukong Travel Technology Co ltd
Original Assignee
Beijing Wukong Travel Technology Co 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 Beijing Wukong Travel Technology Co ltd filed Critical Beijing Wukong Travel Technology Co ltd
Priority to CN202110716128.8A priority Critical patent/CN113419710B/zh
Publication of CN113419710A publication Critical patent/CN113419710A/zh
Application granted granted Critical
Publication of CN113419710B publication Critical patent/CN113419710B/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/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • 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

小程序的开发方法、装置、电子设备和介质
技术领域
本公开涉及信息技术领域,具体而言,涉及一种小程序的开发方法、装置、电子设备和介质。
背景技术
随着应用软件的广泛应用,越来越多的应用程序被开发为应用软件中的小程序,用户不需要安装应用软件,即可通过小程序使用应用功能,
在相关技术中,由于小程序的种类、方法和接口繁多,用户交互界面也是千变万化,因此,针对小程序多端开发的框架也有很多,例如“Taro”,通过这个框架写一套代码,再通过“Taro”的编译工具,就可以将源代码分别编译出可以在不同客户端运行的代码,客户端包括“微信”、“百度”、“支付宝”、“字节跳动”、“H5(HTML5的缩写,是移动端的web页面)”和“React-Native(开源的JS框架React在原生移动应用平台的衍生产物)”等,但不限于此。
由于在小程序开发的过程中,无法复用已开发好的逻辑,因此,每次开发小程序时首先搭建开发架构,其次在架构下编写业务逻辑代码,这就会导致了小程序的开发效率低下。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种小程序的开发方法、装置、电子设备和介质,用于至少在一定程度上克服由于相关技术的限制和缺陷而导致的小程序开发效率低的问题。
根据本公开实施例的第一方面,提供一种小程序的开发方法,包括:在模型层-视图层-控制层模式下,根据第一小程序的开发需求信息创建业务逻辑层;通过所述业务逻辑层的基础包对小程序接口文件进行第一封装处理;在所述第一小程序所属客户端创建视图层,以及所述视图层对应的控制层;将所述第一封装处理后的业务逻辑层引入至所述第一小程序的所述视图层和所述控制层。
在本公开的一种示例性实施例中,通过所述业务逻辑层的基础包对小程序接口文件进行第一封装处理包括:根据所述开发需求信息创建所述第一小程序的业务逻辑层的基础包;在所述基础包的环境变量包中创建所述第一主文件;通过所述第一主文件对所述小程序接口文件进行汇总封装处理;确定所述基础包中的第二类包,对所述汇总封装处理后的环境变量包和所述第二类包进行第一封装处理;将所述第一封装处理后的业务逻辑层导出为第一方法文件。
在本公开的一种示例性实施例中,将所述第一封装处理后的业务逻辑层引入至所述第一小程序的所述视图层和所述控制层包括:根据所述第一小程序的开发需求信息确定配置文件;根据所述配置文件确定运行环境信息;确定所述第一方法文件中与所述运行环境信息对应的小程序接口文件;将所述小程序接口文件引入至对应的所述控制层和所述视图层。
在本公开的一种示例性实施例中,还包括:在所述模型层-视图层-控制层模式下,检测到对开发后的第一小程序的更新请求;若根据所述更新请求确定不对所述视图层和所述控制层进行修改,则对所述业务逻辑层的第一方法文件进行更新。
在本公开的一种示例性实施例中,还包括:检测到对第二小程序进行开发的请求;引入所述模型层-视图层-控制层模式,并获取所述第一小程序的业务逻辑层;根据所述第二小程序的开发需求信息对所述业务逻辑层中的第一方法文件进行更新,以生成第二方法文件;将所述第二方法文件引入至所述第二小程序中对应的视图层和控制层。
在本公开的一种示例性实施例中,所述第二类包包括静态变量包、服务包、工具类包和第三方代码包中的至少一种,所述小程序的开发方法还包括:在所述服务包中添加所述开发需求信息中对应的业务逻辑代码;和/或,在所述工具类包中添加匹配于所述开发需求信息的公共方法代码;和/或,在所述静态变量包中存储所述开发需求信息对应的静态变量代码,和/或,在所述第三方代码包中存储与所述开发需求信息关联的第三方业务的代码。
在本公开的一种示例性实施例中,在所述第一小程序所属客户端创建视图层和控制层包括:确定所述第一小程序的开发需求信息,采用编写页面算法确定所述第一小程序所属客户端的模块化显示区域;对每个所述模块化显示区域创建一个所述视图层,并创建所述视图层对应的一个所述控制层。
根据本公开实施例的第二方面,提供一种小程序的开发装置,包括:创建模块,用于在模型层-视图层-控制层模式下,根据第一小程序的开发需求信息创建业务逻辑层;封装模块,用于通过所述业务逻辑层的基础包对小程序接口文件进行第一封装处理;创建模块,用于在所述第一小程序所属客户端创建视图层,以及所述视图层对应的控制层;引入模块,用于将所述第一封装处理后的业务逻辑层引入至所述第一小程序的所述视图层和所述控制层。
根据本公开的第三方面,提供一种电子设备,包括:存储器;以及耦合到所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如上述任意一项所述的方法。
根据本公开的第四方面,提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现如上述任意一项所述的小程序的开发方法。
本公开实施例,通过在MVC架构下创建开发需求信息对应的业务逻辑层,将视图层和控制层部署于小程序的客户端,以及通过业务逻辑层对小程序接口文件进行封装处理,控制层根据客户端的运行环境将封装后的业务逻辑层引入,并通过视图层进行前端展示,即完成了小程序的开发过程,不需要繁琐的架构搭建步骤,提高了小程序的开发步骤。
进一步地,完成开发的小程序的逻辑业务层可以上传至云端,在检测到新的小程序的开发请求时,通过对业务逻辑层进行修改和封装,将封装后的业务逻辑层引入至控制层,并对封装的接口方法进行暴露,即可完成新的小程序的开发,简化了新的小程序的开发步骤,提升了新的小程序开发效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本公开的一个示例性实施例中小程序的开发方法的流程图;
图2示出了本公开的另一个示例性实施例中小程序的开发方法的流程图;
图3示出了本公开的另一个示例性实施例中小程序的开发方法的流程图;
图4示出了本公开的另一个示例性实施例中小程序的开发方法的流程图;
图5示出了本公开的另一个示例性实施例中小程序的开发方法的流程图;
图6示出了本公开的另一个示例性实施例中小程序的开发方法的流程图;
图7示出了本公开的另一个示例性实施例中小程序的开发方法的流程图;
图8示出了本公开的另一个示例性实施例中小程序的开发方法的流程图;
图9示出了本公开的一个示例性实施例中小程序的开发方法的抽象处理的示意图;
图10示出了本公开的另一个示例性实施例中小程序的开发方法的抽象处理的示意图;
图11示出了本公开的一个示例性实施例中小程序的开发方法的开发架构的示意图;
图12是本公开的一个示例性实施例中一种小程序的开发装置的方框图;
图13是本公开的一个示例性实施例中一种电子设备的方框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
下面结合附图对本公开示例实施方式进行详细说明。
图1是本公开示例性实施例中小程序的开发方法的流程图。
参考图1,小程序的开发方法可以包括:
步骤S102,在模型层-视图层-控制层模式下,根据第一小程序的开发需求信息创建业务逻辑层。
在本公开的一个实施例中,模型层-视图层-控制层模式即MVC(Model ViewController)架构下的开发模式,作为一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC架构可用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
其中,“Model”对应于业务逻辑层,也可以简称为模型对象,“View”对应于视图层,“Controller”对应于控制层,具体原理如下:
(1)Model(模型)是应用程序中用于处理应用程序数据逻辑的部分,通常业务逻辑层(模型)对象负责在数据库中存取数据。
(2)View(视图)是应用程序中处理数据显示的部分,视图是依据业务逻辑层(模型)数据创建的。
(3)Controller(控制器)是应用程序中处理用户交互的部分,控制器负责从视图读取数据,控制用户输入,并向业务逻辑层(模型)发送数据。
在MVC架构下,业务逻辑层被引入控制层,且控制层触发业务逻辑层中包含的方法由视图层进行前端展示,在将业务逻辑层和视图层进行逻辑分离的同时,通过控制层来实现视图层和业务逻辑层的同步。
步骤S104,通过所述业务逻辑层的基础包对小程序接口文件进行第一封装处理。
在本公开的一个实施例中,获取开源的小程序接口文件并进行封装,以使封装后的业务逻辑层包含全部用于开发小程序的接口文件。
在本公开的一个实施例中,基础包必须包括环境变量包,在环境变量包中写入小程序接口文件并进行封装,另外,基础包还可以包括静态变量包、服务包、工具类包和第三方代码包等,但不限于此。
步骤S106,在所述第一小程序所属客户端创建视图层,以及所述视图层对应的控制层。
在本公开的一个实施例中,第一小程序是指首次采用MVC架构进行开发的小程序,对第一小程序的显示界面进行模块化划分,划分后得到多个用户交互区域,每个用户交互区域对应于一个视图层和一个控制层。
步骤S108,将所述第一封装处理后的业务逻辑层引入至所述第一小程序的所述视图层和所述控制层。
在本公开的一个实施例中,将封装后的业务逻辑层引入控制层和视图层,通过控制层来同步业务逻辑层和视图层,即根据运行环境和开发需求信息将业务逻辑层中封装的接口文件调出并暴露接口文件的方法,在对第一小程序开发后,若需要对第一小程序进行更新,则仅需对业务逻辑层中的代码进行更新,而不需要对视图层和控制层进行修改,简化了第一小程序的更新步骤,也降低了第一小程序的维护难度。
本公开实施例,通过在MVC架构下创建开发需求信息对应的业务逻辑层,将视图层和控制层部署于小程序的客户端,以及通过业务逻辑层对小程序接口文件进行封装处理,控制层根据客户端的运行环境将封装后的业务逻辑层引入,并通过视图层进行前端展示,即完成了小程序的开发过程,不需要繁琐的架构搭建步骤,提高了小程序的开发步骤。
进一步地,完成开发的小程序的逻辑业务层可以上传至云端,在检测到新的小程序的开发请求时,通过对业务逻辑层进行修改和封装,将封装后的业务逻辑层引入至控制层,并对封装的接口方法进行暴露,即可完成新的小程序的开发,简化了新的小程序的开发步骤,提升了新的小程序开发效率。
下面结合图2至图8对小程序的开发方法的各步骤进行详细说明。
如图2所示,通过所述业务逻辑层的基础包对小程序接口文件进行第一封装处理包括:
在本公开的一种示例性实施例中,步骤S2042,根据所述开发需求信息创建所述第一小程序的业务逻辑层的基础包。
在本公开的一种示例性实施例中,步骤S2044,在所述基础包的环境变量包中创建所述第一主文件,经第一主文件的接口引入小程序接口文件。
在本公开的一种示例性实施例中,步骤S2046,通过所述第一主文件对所述小程序接口文件进行汇总封装处理,其中,汇总封装处理不仅仅是将接口文件进行整合,还包括对接口文件的方法进行同一化,例如,A接口文件的方法与B接口文件的方法相同,则仅保留一个接口文件的方法。
在本公开的一种示例性实施例中,步骤S2048,确定所述基础包中的第二类包,对所述汇总封装处理后的环境变量包和所述第二类包进行第一封装处理。
在上述实施例中,在完成第一封装处理后,将环境变量包和第二类包进行第一封装处理,以形成模块化的业务逻辑层。
在本公开的一种示例性实施例中,步骤S2050,在本公开的一种示例性实施例中,将所述第一封装处理后的业务逻辑层导出为第一方法文件。
在上述实施例中,通过将所述第一封装处理后的业务逻辑层导出为第一方法文件,第一方法文件能够被客户端的控制层直接引用,并在视图层进行同步显示。
如图3所示,将所述第一封装处理后的业务逻辑层引入至所述第一小程序的所述视图层和所述控制层包括:
在本公开的一种示例性实施例中,步骤S3082,根据所述第一小程序的开发需求信息确定配置文件。
在本公开的一种示例性实施例中,步骤S3084,并根据所述配置文件确定运行环境信息。
在上述实施例中,配置文件包括运行小程序的静态变量、动态变量和运行环境信息等,根据运行环境信息从业务逻辑层中获取相应的接口文件,并将接口文件的方法引入至控制层和视图层。
在本公开的一种示例性实施例中,步骤S3086,确定所述第一方法文件中与所述运行环境信息对应的小程序接口文件。
在本公开的一种示例性实施例中,步骤S3088,将所述小程序接口文件引入至对应的所述控制层和所述视图层。
如图4所示,小程序的开发方法还包括:
在本公开的一种示例性实施例中,步骤S402,在所述模型层-视图层-控制层模式下,检测到对开发后的第一小程序的更新请求。
在本公开的一种示例性实施例中,步骤S404,若根据所述更新请求确定不对所述视图层和所述控制层进行修改,则对所述业务逻辑层的第一方法文件进行更新。
在本公开的一种示例性实施例中,检测到对开发后的第一小程序的更新请求,若第一小程序的用户交互界面不发生变化,则不需要调整视图层,相应的也不需要调整控制层,则对所述业务逻辑层的第一方法文件进行更新即可完成第一小程序的更新。
如图5所示,小程序的开发方法还包括:
在本公开的一种示例性实施例中,步骤S502,检测到对第二小程序进行开发的请求。
在本公开的一种示例性实施例中,步骤S504,引入所述模型层-视图层-控制层模式,并获取所述第一小程序的业务逻辑层。
在上述实施例中,通过引入所述模型层-视图层-控制层模式,并获取所述第一小程序的业务逻辑层,而不需要重复编写业务逻辑代码,提高了对第二小程序进行开发的效率。
在本公开的一种示例性实施例中,步骤S506,根据所述第二小程序的开发需求信息对所述业务逻辑层中的第一方法文件进行更新,即确定适用于第二小程序的接口文件,以生成第二方法文件。
在本公开的一种示例性实施例中,步骤S508,然后将所述第二方法文件引入至所述第二小程序中对应的视图层和控制层。
具体地,在第二小程序获取第一小程序的业务逻辑层后,通过引用第二方法文件至视图层和控制层,即可完成第二小程序的开发,不仅简化了业务逻辑代码的编写,也减少了开发应用程序架构的搭建步骤。
如图6所示,所述第二类包包括静态变量包、服务包、工具类包和第三方代码包中的至少一种,所述小程序的开发方法还包括:
在本公开的一种示例性实施例中,步骤S602,在所述服务包中添加所述开发需求信息中对应的业务逻辑代码。
在本公开的一种示例性实施例中,步骤S604,在所述工具类包中添加匹配于所述开发需求信息的公共方法代码。
在本公开的一种示例性实施例中,步骤S606,在所述静态变量包中存储所述开发需求信息对应的静态变量代码。
在本公开的一种示例性实施例中,步骤S608,在所述第三方代码包中存储与所述开发需求信息关联的第三方业务的代码。
在本公开的一种示例性实施例中,第三方业务是与小程序的应用业务不同类别的,例如,第一小程序为微信,第三方业务包括地图、微店、快递等,但不限于此。
如图7所示,在所述第一小程序所属客户端创建视图层和控制层包括:
在本公开的一种示例性实施例中,步骤S7062,确定所述第一小程序的开发需求信息,采用编写页面算法确定所述第一小程序所属客户端的模块化显示区域。
在本公开的一种示例性实施例中,步骤S7064,对每个所述模块化显示区域创建一个所述视图层,并创建所述视图层对应的一个所述控制层。
表1
Figure BDA0003133458080000101
在本公开的一种示例性实施例中,在MVC架构下,将视图层和业务逻辑层进行分离,根据模块化显示区域对视图层进行调整,而不需要对业务逻辑层进行重新编译,也提高了小程序的开发效率。
在本公开的一种示例性实施例中,编写页面算法是通过Page()函数用来注册一个页面的算法,接受一个object参数,其指定页面的初始数据、生命周期函数、事件处理函数等,object参数说明如表1所示。
如图8所示,根据本公开的一个实施例的小程序的开发方法还包括:
步骤S802,创建待开发的小程序项目。
步骤S804,在小程序项目下创建业务逻辑层。
在创建好的小程序项目中,创建M(Module)层。
步骤S806,在业务逻辑层下创建需要的基础包,例如,const、config、service、util、other等,但不限于此。
在M层下面根据业务需要创建基础包,例如const,config,service,util,other等,此处基础包名称无固定说明,在本公开的实施例中分别记作静态变量包、环境变量包、服务包、工具类包和第三方代码包,也可使用其他名称,基础包的命名方式不对本公开的方案产生限制。
步骤S808,在config包里创建并封装各端小程序API(Application ProgramInterface,应用程序接口)。API就是操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的API而使操作系统去执行应用程序的命令。
步骤S810,基础包根据需要开发的小程序内容填充相应文件。
首先,在config包里创建API.js文件为主输出文件用于小程序引入。其次,创建小程序对应的JS文件(以下称为小程序文件),此文件为小程序对应的API,进行封装并导出方法,在主文件中,引入小程序文件。再封装完成后导出方法,供小程序使用。最后,小程序在业务逻辑代码中,引用主输出文件相应的API。
在基础包service包中添加对应业务逻辑代码,util包中添加公共方法代码,other包可根据实际业务进行创建,const包下则主要存放静态变量JS。
步骤S812,在小程序page包下创建出的文件对应确定视图层和控制层。
在已生成的小程序项目中,找到View层(小程序展示页面)和Controller层(小程序JS文件内容为自动生成的生命周期等代码)层。根据开发过程中的需求,可引入M层中的对应的业务逻辑JS直接调用其中的方法。
步骤S814,开发结束后,可将业务逻辑层进行打包上传。
开发结束后,将M层进行打包并上传到服务器。小程序通过导入的方式,导入已开发好的M层。进行调整代码后,保证项目运行与开发后结果预期一致。
步骤S816,将业务逻辑层引入到其他小程序中,做适配调整后再次上传。
在后续的逻辑开发中,只要不涉及小程序View层与Controller层的修改,只修改M层项目。将修改好的M层再次上传并更新版本,小程序端,进行版本升级,更新M层。
步骤S818,其他小程序同步更新包,视图层不发生改变,维护业务逻辑层即可。
在开发其他小程序的过程中,在逻辑保持一致的情况下,需要将新的小程序对应的API更新维护到M层下config包新的小程序文件中,并在主文件中同步更新,需达到在新小程序下可正常运行。如有第三小程序和第四小程序需要开发,重复此步骤。
如图9、图10和图11所示,在MVC架构下对小程序进行开发的步骤包括:
如图9所示,在MVC架构902下,小程序项目904被划分为页面A、页面B、页面C和页面D,将M层整体进行抽象,V层和C层放在小程序端,进行展示并控制,M层进行模块化,然后再将M层进行抽象打包,并被C层引用,并展示于V层,将开发后的M层上传至云端。
如图10所示,获取云端的M层1002,新的待开发小程序1004,页面A的MVC可用于抽象为小程序A,页面B的MVC可用于抽象为小程序B,页面C的MVC可用于抽象为小程序C等,但不限于此。
如图11所示,在MVC架构下开发小程序1100时创建.idea进程、base进程、Image进程和pages进程,但不限于此。
其中,base进程用于创建const包、config包、service包、Util包和Other包,但不限于此。
其中,const包中包括Cache.js(缓存逻辑代码)和Data.js(数据逻辑代码),但不限于此。
其中,config包下的API.js文件即为主(输出)文件,此文件中引用并封装Http.js、APIA.js、APIB.js、APIC.js等小程序API文件导出的对应的API方法,但不限于此。API.js用于在业务逻辑开发和Controller(控制)层开发中。通过主文件对各端API进行统一和封装处理,也即上述汇总封装处理。
此结构为在上述步骤S814之前没有对M层进行封装的结构。封装后的M层的结构图不存在base包,直接将M层引入到Controller中即可,或在小程序中进行全局变量的封装。
其中,service包中包括base(基础)文件代码、order.js(命令逻辑代码)和Ad.js(广告逻辑代码)等,但不限于此。
其中,Util包中包括MDS.js(镜像逻辑代码)。
其中,pages包则为小程序创建出来的包,此包下面index下的index.js为Controller层,index.wxml为View层,View层用于实现页面的结构,Index.wxss包含页面实现的样式,base则为M层,也就是上述步骤中提到的Module层。
对应于上述方法实施例,本公开还提供一种小程序的开发装置,可以用于执行上述方法实施例。
图12是本公开示例性实施例中一种小程序的开发装置的方框图。
参考图12,小程序的开发装置1200可以包括:
创建模块1202,用于在模型层-视图层-控制层模式下,根据第一小程序的开发需求信息创建业务逻辑层。
封装模块1204,用于通过所述业务逻辑层的基础包对小程序接口文件进行第一封装处理。
创建模块1202还用于,在所述第一小程序所属客户端创建视图层,以及所述视图层对应的控制层。
引入模块1206,用于将所述第一封装处理后的业务逻辑层引入至所述第一小程序的所述视图层和所述控制层。
在本公开的一种示例性实施例中,封装模块1204还用于:根据所述开发需求信息创建所述第一小程序的业务逻辑层的基础包;在所述基础包的环境变量包中创建所述第一主文件;通过所述第一主文件对所述小程序接口文件进行汇总封装处理;确定所述基础包中的第二类包,对所述汇总封装处理后的环境变量包和所述第二类包进行第一封装处理;将所述第一封装处理后的业务逻辑层导出为第一方法文件。
在本公开的一种示例性实施例中,创建模块1202还用于:根据所述第一小程序的开发需求信息确定配置文件;根据所述配置文件确定运行环境信息;确定所述第一方法文件中与所述运行环境信息对应的小程序接口文件;将所述小程序接口文件引入至对应的所述控制层和所述视图层。
在本公开的一种示例性实施例中,封装模块1204还用于:在所述模型层-视图层-控制层模式下,检测到对开发后的第一小程序的更新请求;若根据所述更新请求确定不对所述视图层和所述控制层进行修改,则对所述业务逻辑层的第一方法文件进行更新。
在本公开的一种示例性实施例中,小程序的开发装置1200还用于:检测到对第二小程序进行开发的请求;引入所述模型层-视图层-控制层模式,并获取所述第一小程序的业务逻辑层;根据所述第二小程序的开发需求信息对所述业务逻辑层中的第一方法文件进行更新,以生成第二方法文件;将所述第二方法文件引入至所述第二小程序中对应的视图层和控制层。
在本公开的一种示例性实施例中,封装模块1204还用于:在所述服务包中添加所述开发需求信息中对应的业务逻辑代码;和/或,在所述工具类包中添加匹配于所述开发需求信息的公共方法代码;和/或,在所述静态变量包中存储所述开发需求信息对应的静态变量代码,和/或,在所述第三方代码包中存储与所述开发需求信息关联的第三方业务的代码。
在本公开的一种示例性实施例中,创建模块1202还用于:确定所述第一小程序的开发需求信息,采用编写页面算法确定所述第一小程序所属客户端的模块化显示区域;对每个所述模块化显示区域创建一个所述视图层,并创建所述视图层对应的一个所述控制层。
由于装置1200的各功能已在其对应的方法实施例中予以详细说明,本公开于此不再赘述。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图13来描述根据本发明的这种实施方式的电子设备1300。图13显示的电子设备1300仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图13所示,电子设备1300以通用计算设备的形式表现。电子设备1300的组件可以包括但不限于:上述至少一个处理单元1310、上述至少一个存储单元1320、连接不同系统组件(包括存储单元1320和处理单元1310)的总线1330。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元1310执行,使得所述处理单元1310执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元1310可以执行如本公开实施例所示的方法。
存储单元1320可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)13201和/或高速缓存存储单元13202,还可以进一步包括只读存储单元(ROM)13203。
存储单元1320还可以包括具有一组(至少一个)程序模块13205的程序/实用工具13204,这样的程序模块13205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线1330可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备1300也可以与一个或多个外部设备1340(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1300交互的设备通信,和/或与使得该电子设备1300能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1350进行。并且,电子设备1300还可以通过网络适配器1360与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1360通过总线1330与电子设备1300的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1300使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
根据本发明的实施方式的用于实现上述方法的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和构思由权利要求指出。

Claims (10)

1.一种小程序的开发方法,其特征在于,包括:
在模型层-视图层-控制层模式下,根据第一小程序的开发需求信息创建业务逻辑层;
通过所述业务逻辑层的基础包对小程序接口文件进行第一封装处理;
在所述第一小程序所属客户端创建视图层,以及所述视图层对应的控制层;
将所述第一封装处理后的业务逻辑层引入至所述第一小程序的所述视图层和所述控制层。
2.如权利要求1所述的小程序的开发方法,其特征在于,通过所述业务逻辑层的基础包对小程序接口文件进行第一封装处理包括:
根据所述开发需求信息创建所述第一小程序的业务逻辑层的基础包;
在所述基础包的环境变量包中创建所述第一主文件;
通过所述第一主文件对所述小程序接口文件进行汇总封装处理;
确定所述基础包中的第二类包,对所述汇总封装处理后的环境变量包和所述第二类包进行第一封装处理;
将所述第一封装处理后的业务逻辑层导出为第一方法文件。
3.如权利要求2所述的小程序的开发方法,其特征在于,将所述第一封装处理后的业务逻辑层引入至所述第一小程序的所述视图层和所述控制层包括:
根据所述第一小程序的开发需求信息确定配置文件;
根据所述配置文件确定运行环境信息;
确定所述第一方法文件中与所述运行环境信息对应的小程序接口文件;
将所述小程序接口文件引入至对应的所述控制层和所述视图层。
4.如权利要求2所述的小程序的开发方法,其特征在于,还包括:
在所述模型层-视图层-控制层模式下,检测到对开发后的第一小程序的更新请求;
若根据所述更新请求确定不对所述视图层和所述控制层进行修改,则对所述业务逻辑层的第一方法文件进行更新。
5.如权利要求2所述的小程序的开发方法,其特征在于,还包括:
检测到对第二小程序进行开发的请求;
引入所述模型层-视图层-控制层模式,并获取所述第一小程序的业务逻辑层;
根据所述第二小程序的开发需求信息对所述业务逻辑层中的第一方法文件进行更新,以生成第二方法文件;
将所述第二方法文件引入至所述第二小程序中对应的视图层和控制层。
6.如权利要求2所述的小程序的开发方法,其特征在于,所述第二类包包括静态变量包、服务包、工具类包和第三方代码包中的至少一种,所述小程序的开发方法还包括:
在所述服务包中添加所述开发需求信息中对应的业务逻辑代码;
和/或,在所述工具类包中添加匹配于所述开发需求信息的公共方法代码;
和/或,在所述静态变量包中存储所述开发需求信息对应的静态变量代码,
和/或,在所述第三方代码包中存储与所述开发需求信息关联的第三方业务的代码。
7.如权利要求1-6中任一项所述的小程序的开发方法,其特征在于,在所述第一小程序所属客户端创建视图层和控制层包括:
确定所述第一小程序的开发需求信息,采用编写页面算法确定所述第一小程序所属客户端的模块化显示区域;
对每个所述模块化显示区域创建一个所述视图层,并创建所述视图层对应的一个所述控制层。
8.一种小程序的开发装置,其特征在于,包括:
创建模块,用于在模型层-视图层-控制层模式下,根据第一小程序的开发需求信息创建业务逻辑层;
封装模块,用于通过所述业务逻辑层的基础包对小程序接口文件进行第一封装处理;
所述创建模块还用于,在所述第一小程序所属客户端创建视图层,以及所述视图层对应的控制层;
引入模块,用于将所述第一封装处理后的业务逻辑层引入至所述第一小程序的所述视图层和所述控制层。
9.一种电子设备,其特征在于,包括:
存储器;以及
耦合到所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如权利要求1-7任一项所述的小程序的开发方法。
10.一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现如权利要求1-7任一项所述的小程序的开发方法。
CN202110716128.8A 2021-06-25 2021-06-25 小程序的开发方法、装置、电子设备和介质 Active CN113419710B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110716128.8A CN113419710B (zh) 2021-06-25 2021-06-25 小程序的开发方法、装置、电子设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110716128.8A CN113419710B (zh) 2021-06-25 2021-06-25 小程序的开发方法、装置、电子设备和介质

Publications (2)

Publication Number Publication Date
CN113419710A true CN113419710A (zh) 2021-09-21
CN113419710B CN113419710B (zh) 2024-03-15

Family

ID=77717857

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110716128.8A Active CN113419710B (zh) 2021-06-25 2021-06-25 小程序的开发方法、装置、电子设备和介质

Country Status (1)

Country Link
CN (1) CN113419710B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114077368A (zh) * 2022-01-19 2022-02-22 腾讯科技(深圳)有限公司 车载小程序运行方法、装置、计算机设备及存储介质
CN114428657A (zh) * 2022-01-11 2022-05-03 上海万物新生环保科技集团有限公司 一种在H5端基于Taro框架的滑动方法与设备
CN116700694A (zh) * 2023-08-07 2023-09-05 深圳凡泰极客科技有限责任公司 小程序引擎

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100633478B1 (ko) * 2006-01-02 2006-10-16 김길웅 비즈니스용 전문 운영체제에 기반하는 소프트웨어개발시스템 및 그 개발방법
CN102541561A (zh) * 2011-12-29 2012-07-04 广州杰赛科技股份有限公司 配置式软件开发方法及装置
IN2013MU03944A (zh) * 2013-12-16 2015-09-25 Kronosis Hyper Technologies Private Ltd
CN106815016A (zh) * 2016-12-23 2017-06-09 四川大学 一种基于领域驱动设计的mvvm设计模型
KR101745808B1 (ko) * 2015-12-31 2017-06-28 엔에이치엔엔터테인먼트 주식회사 서버측 로직의 모듈화를 위한 모듈 처리 방법 및 시스템
CN109426492A (zh) * 2017-07-13 2019-03-05 北京微影时代科技有限公司 一种客户端软件开发方法及装置
CN110808977A (zh) * 2019-10-31 2020-02-18 重庆佳锐颖科技发展有限公司 一种避免Web程序存在XSS漏洞的开发系统及方法
CN110989993A (zh) * 2019-11-12 2020-04-10 安徽信果网络科技有限公司 一种基于微信小程序的开发方法
CN111045707A (zh) * 2019-12-20 2020-04-21 深圳市珍爱捷云信息技术有限公司 小程序的更新方法、装置、计算机设备和存储介质
CN111338925A (zh) * 2018-12-18 2020-06-26 北京京东尚科信息技术有限公司 小程序测试方法及装置、系统、电子设备和存储介质
CN111813393A (zh) * 2020-03-20 2020-10-23 北京四维智联科技有限公司 一种应用程序开发方法及装置
CN112131500A (zh) * 2020-09-25 2020-12-25 北京锐安科技有限公司 一种事件响应装置、方法、电子设备及存储介质
WO2021051913A1 (zh) * 2019-09-17 2021-03-25 创新先进技术有限公司 小程序生成方法以及装置
CN112612517A (zh) * 2020-12-18 2021-04-06 深圳市思为软件技术有限公司 数据获取方法及相关设备

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100633478B1 (ko) * 2006-01-02 2006-10-16 김길웅 비즈니스용 전문 운영체제에 기반하는 소프트웨어개발시스템 및 그 개발방법
CN102541561A (zh) * 2011-12-29 2012-07-04 广州杰赛科技股份有限公司 配置式软件开发方法及装置
IN2013MU03944A (zh) * 2013-12-16 2015-09-25 Kronosis Hyper Technologies Private Ltd
KR101745808B1 (ko) * 2015-12-31 2017-06-28 엔에이치엔엔터테인먼트 주식회사 서버측 로직의 모듈화를 위한 모듈 처리 방법 및 시스템
CN106815016A (zh) * 2016-12-23 2017-06-09 四川大学 一种基于领域驱动设计的mvvm设计模型
CN109426492A (zh) * 2017-07-13 2019-03-05 北京微影时代科技有限公司 一种客户端软件开发方法及装置
CN111338925A (zh) * 2018-12-18 2020-06-26 北京京东尚科信息技术有限公司 小程序测试方法及装置、系统、电子设备和存储介质
WO2021051913A1 (zh) * 2019-09-17 2021-03-25 创新先进技术有限公司 小程序生成方法以及装置
CN110808977A (zh) * 2019-10-31 2020-02-18 重庆佳锐颖科技发展有限公司 一种避免Web程序存在XSS漏洞的开发系统及方法
CN110989993A (zh) * 2019-11-12 2020-04-10 安徽信果网络科技有限公司 一种基于微信小程序的开发方法
CN111045707A (zh) * 2019-12-20 2020-04-21 深圳市珍爱捷云信息技术有限公司 小程序的更新方法、装置、计算机设备和存储介质
CN111813393A (zh) * 2020-03-20 2020-10-23 北京四维智联科技有限公司 一种应用程序开发方法及装置
CN112131500A (zh) * 2020-09-25 2020-12-25 北京锐安科技有限公司 一种事件响应装置、方法、电子设备及存储介质
CN112612517A (zh) * 2020-12-18 2021-04-06 深圳市思为软件技术有限公司 数据获取方法及相关设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
李哲;周灵;: "微信小程序的架构与开发浅析", 福建电脑, no. 12, 25 December 2019 (2019-12-25) *
阿珊和她的猫: "【微信小程序】小程序框架分析", pages 1, Retrieved from the Internet <URL:https://blog.csdn.net/weixin_42554191/article/details/104023584?spm=1001.2014.3001.5506> *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114428657A (zh) * 2022-01-11 2022-05-03 上海万物新生环保科技集团有限公司 一种在H5端基于Taro框架的滑动方法与设备
CN114428657B (zh) * 2022-01-11 2024-04-05 上海万物新生环保科技集团有限公司 一种在H5端基于Taro框架的滑动方法与设备
CN114077368A (zh) * 2022-01-19 2022-02-22 腾讯科技(深圳)有限公司 车载小程序运行方法、装置、计算机设备及存储介质
CN116700694A (zh) * 2023-08-07 2023-09-05 深圳凡泰极客科技有限责任公司 小程序引擎
CN116700694B (zh) * 2023-08-07 2024-01-26 深圳凡泰极客科技有限责任公司 小程序引擎

Also Published As

Publication number Publication date
CN113419710B (zh) 2024-03-15

Similar Documents

Publication Publication Date Title
US9934005B2 (en) Dynamically building locale objects or subsections of locale objects based on historical data
CN113419710B (zh) 小程序的开发方法、装置、电子设备和介质
CN111240684B (zh) 一种js代码的裁剪方法、装置、介质和电子设备
CN107450897B (zh) 图形引擎的跨平台移植方法和装置
TW201609366A (zh) 用於運行時間系統的電腦實施方法、電腦可讀取儲存記憶體及系統
CN111324833A (zh) 页面展示方法、装置、电子设计及计算机可读介质
CN111740948A (zh) 数据包发布方法、动态更新方法、装置、设备及介质
CN111191171A (zh) 基于安卓的多Fragment加载方法、装置及电子设备
CN115982491A (zh) 页面更新方法及装置、电子设备和计算机可读存储介质
US9141352B2 (en) Dynamically building locale objects at run-time
CN110020370B (zh) 在客户端应用中实现动画的方法、装置及动画脚本的框架
US9606775B2 (en) Developing rich internet application
CN107665124B (zh) 模块化JavaScript文件处理方法、设备和服务器
US20220027172A1 (en) Assigning computing resources to execution of evaluators for image animation
US20220365758A1 (en) Tool for Introspection in Object-Oriented Source Code
CN111539200B (zh) 一种生成富文本的方法、装置、介质和电子设备
CN111273913B (zh) 一种输出规范表示的应用程序接口数据的方法及装置
CN114115855A (zh) 代码复用方法及装置、计算机可读存储介质、电子设备
CN112181407B (zh) 业务实现处理方法及装置、系统、电子设备和存储介质
CN111782196A (zh) 基于mvp架构的开发方法及装置
CN114254232A (zh) 云产品页面生成方法、装置、计算机设备和存储介质
CN110837367B (zh) 用户界面处理方法、装置及电子设备
CN111666068A (zh) 一种平台开发框架、构建方法、设备及介质
CN112882698A (zh) 开发环境的生成方法及装置、计算机存储介质及电子设备
CN117519691B (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
GR01 Patent grant
GR01 Patent grant