CN103577170A - 网络应用的构建方法及装置 - Google Patents
网络应用的构建方法及装置 Download PDFInfo
- Publication number
- CN103577170A CN103577170A CN201210264082.1A CN201210264082A CN103577170A CN 103577170 A CN103577170 A CN 103577170A CN 201210264082 A CN201210264082 A CN 201210264082A CN 103577170 A CN103577170 A CN 103577170A
- Authority
- CN
- China
- Prior art keywords
- task
- module
- application
- configuration information
- mission bit
- 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
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
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
本发明提供了一种网络应用的构建方法及装置,其中,网络应用的构建方法包括:获取构建配置信息,所述构建配置信息包括应用的模块信息及每个模块的构建任务信息;根据该构建配置信息为该应用的每个模块加载一条任务链;为所述每个模块构建所述任务链;依次执行每条任务链,依次执行当前任务链中的每个任务。采用本发明的技术方案,可以方便地、快速地完成web应用的构建过程,并且在web应用中添加新模块后,可以方便地在已构建任务基础上增量添加构建过程而不需要重新构建,从而降低了实现复杂度,提高了开发效率。
Description
技术领域
本发明涉及网络(web)技术领域,尤其涉及一种网络应用的构建方法及装置。
背景技术
计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序。翻译的方式有两种,一种是编译,一种是解释,二者翻译的时间不同。对应的,高级语言通常也可分为编译型语言和解释性语言,常见的编译型语言有C/C++、Pascal等,常见的解释性语言有JavaScript、VBScript、Python等。
编译型语言的程序在运行前要通过编译、链接等过程产生机器语言的程序,这个过程通常称为构建。通常完整的构建环境不止是一个编译器和链接器,还可以包含一些集成开发环境(IDE)、自动化构建脚本以及测试工具等。
解释性语言的程序不需要编译,在运行程序的时候才进行翻译。对解释性语言的程序进行构建省去了编译的过程,通常包括一些代码的分析、合并、测试等过程。
随着互联网的普及和web技术的发展,使用javascript编写web应用变得越来越普遍。对于少量javascript文件是很容易构建或直接使用的。但随着web应用中使用的javascript的文件以及项目的增多,应用的构建过程变得越来越复杂。尤其是开发多个复杂web应用时,每次都要编写维护一整套构建过程,这对应用开发者是很大的工作量,增加了应用开发的复杂性,并减慢了应用的开发速度。
发明内容
本发明实施例提供了一种网络应用的构建方法及装置,以克服目前开发多个复杂web应用时,因每次都要编写维护一整套构建过程而引起的工作量增大、复杂性增大及开发效率降低的问题。
本发明实施例提供了一种网络(web)应用的构建方法,该方法包括:
获取构建配置信息,所述构建配置信息包括应用的模块信息及每个模块的构建任务信息;
根据该构建配置信息为该应用的每个模块加载一条任务链;为所述每个模块构建所述任务链;
依次执行每条任务链,依次执行当前任务链中的每个任务。
优选地,所述获取构建配置信息包括:
加载配置文件,从所述配置文件中解析出所述构建配置信息。
优选地,所述配置文件中添加有新增模块的信息及该新增模块的构建任务信息。
优选地,所述配置文件中还添加有对应所述模块或所述新增模块的构建自定义任务信息。
本发明实施例还提供了一种网络(web)应用的构建装置,该装置包括:
应用管理器,用于获取构建配置信息,所述构建配置信息包括应用的模块信息及每个模块的构建任务信息;根据该构建配置信息为该应用的每个模块加载一条任务链;为所述每个模块创建一个任务管理器,并将所述构建任务信息传递给对应的任务管理器;以及,在成功加载所有的任务链后,依次执行每条任务链;
所述任务管理器,用于接收所述应用管理器发送的所述构建任务信息,根据所述构建任务信息查找所对应的任务,确定所有的所述构建任务信息都合法后,构建所述任务链;以及,在所述应用管理器执行当前任务链时,依次执行当前任务链中的每个任务。
优选地,该装置还包括:
配置信息分析器,用于加载配置文件,从所述配置文件中解析出所述构建配置信息。
优选地,所述应用管理器,具体用于:向所述配置信息分析器发送获取请求,以及接收所述配置信息分析器返回的所述构建配置信息。
优选地,所述配置文件中添加有新增模块的信息及该新增模块的构建任务信息。
优选地,所述配置文件中还添加有对应所述模块或所述新增模块的构建自定义任务信息,所述构建任务信息或所述构建自定义任务信息均包括任务名及其对应的任务。
优选地,所述任务管理器,还用于保存所述任务名及其对应的任务。
采用本发明实施例,可以方便地、快速地完成web应用的构建过程,并且在web应用中添加新模块后,可以方便地在已构建任务基础上增量添加构建过程而不需要重新构建,从而降低了实现复杂度,提高了开发效率。
附图说明
图1为本发明应用及其相关任务的关系;
图2为本发明web应用的构建装置实施例的结构示意图;
图3为本发明web应用的构建方法实施例的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
如图1所示,每个应用可能包含一个或多个需要分别构建的模块,而对于每个模块,可能需要不同的构建任务;例如图1中的应用包含模块A、B等模块,模块A进行构建时需要经过文件排序、分析依赖关系、移除无用文件、合并文件、缩小文件5个任务,而模块B构建时需要经过分析依赖关系、合并文件、缩小文件、标记文件类型、分析文件是否需要缓存5个任务。应用中各个模块构建时使用的任务数量、种类以及任务的顺序都可能是不同的。
如图2所示,为本发明web应用的构建装置实施例的结构示意图,该装置包括:应用管理器21和任务管理器22,其中:
应用管理器,用于获取构建配置信息,所述构建配置信息包括应用的模块信息及每个模块的构建任务信息;根据该构建配置信息为该应用的每个模块加载一条任务链;为所述每个模块创建一个任务管理器,并将所述构建任务信息传递给对应的任务管理器;以及,在成功加载所有的任务链后,依次执行每条任务链;
所述任务管理器,用于接收所述应用管理器发送的所述构建任务信息,根据所述构建任务信息查找所对应的任务,确定所有的所述构建任务信息都合法后,构建所述任务链;以及,在所述应用管理器执行当前任务链时,依次执行当前任务链中的每个任务。
另外,该装置还包括:配置信息分析器23,用于加载配置文件,从所述配置文件中解析出所述构建配置信息。
其中,所述应用管理器,具体用于:向所述配置信息分析器发送获取请求,以及接收所述配置信息分析器返回的所述构建配置信息。
为了在应用中可添加新的模块,开发人员只需要在配置文件中添加对应的新增信息即可。
为了可以在当前模块中增加自定义任务,所述配置文件中还可以添加有对应所述模块或所述新增模块的构建自定义任务信息;所述构建任务信息或所述构建自定义任务信息均包括任务名及其对应的任务。
基于上述结构的web应用构建装置构建应用的过程如图3所示,该过程包括:
步骤301、构建过程开始,应用管理器要获取构建的配置信息;
步骤302、配置信息分析器加载配置文件,分析文件中的模块信息和相应的构建任务信息并返回给应用管理器;
步骤303、根据配置信息,应用管理器将会为应用的每个模块加载一条任务链;具体的,应用管理器会为每个应用模块新建一个任务管理器的实例,并将构建该模块所需的任务信息传递给该实例以便构建任务链;
步骤304、任务管理器根据应用管理器传递过来的任务信息查找所对应的任务,如果所有的任务信息都合法,则将所需的任务串成一条链,并返回链首;
步骤305、应用管理器成功加载所有的任务链后,依次执行每个任务链;
步骤306、任务管理器加载本应用模块的相关文件,依次执行任务链中的每个任务;
步骤307、所有任务执行结束时,整个应用构建过程完成。
如果应用中添加了新模块,只需要在配置文件中添加该新模块以及相应的构建任务信息,应用的构建就能够顺利进行。如果现有的任务无法满足需求,可以添加所需的自定义任务。具体的方法是,继承基础的任务并实现所需的一些功能(例如执行时所需的run函数),然后在任务管理器中注册该任务以便任务管理器能够正确识别并加载该任务。
另外,配置文件可以是json格式的文件(文件名通常为config.json),其内容可能类似这样:
如上的应用包含两个需要构建的模块“core”和“ui”,其中“core”构建时需要依次执行“sort”、“dependency”、“merge”三个任务。配置信息分析器可以将配置文件中的内容解析为一个javascript对象,根据属性名就可以直接获取模块信息及构建任务信息了。在配置文件中也可以添加其他各种实际需要的属性,以便应用管理器或任务管理器使用该信息。
对任务的一种可能实现是定义一个任务原型,该原型定义了每个任务在一个任务链中工作都要有的函数和属性,例如:run()函数定义了任务实际要执行的内容,isReady()函数定义了任务是否准备好执行了(可能只有满足了某些前置条件本任务才能执行)。当要添加新的自定义任务时,该任务要实现自己的run()、isReady()函数来完成它自己需要的动作(覆盖原型中的函数)。
在实现具体的任务后,任务管理器需要了解这个任务。在任务管理器中构造了一个入口表来告诉任务管理器关于各个任务的情况。管理任务是在任务管理器的表中查找以获取任务的实例。其中两个必要的值是:任务名和对应的任务。创建配置文件的人和任务管理器都应知道任务名,这样该任务才能被正常的使用。
上述web应用的构建装置,可以方便地、快速地完成web应用的构建过程,并且在web应用中添加新模块后,可以方便地在已构建任务基础上增量添加构建过程而不需要重新构建,从而降低了实现复杂度,提高了开发效率。
本发明实施例提供了一种网络(web)应用的构建方法,该方法包括:
步骤一、获取构建配置信息,所述构建配置信息包括应用的模块信息及每个模块的构建任务信息;
其中,所述获取构建配置信息包括:加载配置文件,从所述配置文件中解析出所述构建配置信息;
另外,为了在应用中可添加新的模块,所述配置文件中添加有新增模块的信息及该新增模块的构建任务信息;
进一步地,为了可以在当前模块中可增加自定义任务,所述配置文件中还添加有对应所述模块或所述新增模块的构建自定义任务信息;
步骤二、根据该构建配置信息为该应用的每个模块加载一条任务链;为所述每个模块构建所述任务链;
步骤三、依次执行每条任务链,依次执行当前任务链中的每个任务。
上述应用构建方法,基于任务,能够很方便用于一个web应用中,当应用添加新模块时也可以很方便的扩展构建***;另外,除了能够使用内建的任务外,能够方便的自定义任务,以满足该应用的不同需求。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,上述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
以上实施例仅用以说明本发明的技术方案而非限制,仅仅参照较佳实施例对本发明进行了详细说明。本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,均应涵盖在本发明的权利要求范围当中。
Claims (10)
1.一种网络(web)应用的构建方法,其特征在于,该方法包括:
获取构建配置信息,所述构建配置信息包括应用的模块信息及每个模块的构建任务信息;
根据该构建配置信息为该应用的每个模块加载一条任务链;为所述每个模块构建所述任务链;
依次执行每条任务链,依次执行当前任务链中的每个任务。
2.根据权利要求1所述的方法,其特征在于:
所述获取构建配置信息包括:
加载配置文件,从所述配置文件中解析出所述构建配置信息。
3.根据权利要求2所述的方法,其特征在于:
所述配置文件中添加有新增模块的信息及该新增模块的构建任务信息。
4.根据权利要求2或3所述的方法,其特征在于:
所述配置文件中还添加有对应所述模块或所述新增模块的构建自定义任务信息。
5.一种网络(web)应用的构建装置,其特征在于,该装置包括:
应用管理器,用于获取构建配置信息,所述构建配置信息包括应用的模块信息及每个模块的构建任务信息;根据该构建配置信息为该应用的每个模块加载一条任务链;为所述每个模块创建一个任务管理器,并将所述构建任务信息传递给对应的任务管理器;以及,在成功加载所有的任务链后,依次执行每条任务链;
所述任务管理器,用于接收所述应用管理器发送的所述构建任务信息,根据所述构建任务信息查找所对应的任务,确定所有的所述构建任务信息都合法后,构建所述任务链;以及,在所述应用管理器执行当前任务链时,依次执行当前任务链中的每个任务。
6.根据权利要求5所述的装置,其特征在于,该装置还包括:
配置信息分析器,用于加载配置文件,从所述配置文件中解析出所述构建配置信息。
7.根据权利要求6所述的装置,其特征在于:
所述应用管理器,具体用于:向所述配置信息分析器发送获取请求,以及接收所述配置信息分析器返回的所述构建配置信息。
8.根据权利要求6所述的装置,其特征在于:
所述配置文件中添加有新增模块的信息及该新增模块的构建任务信息。
9.根据权利要求6或8所述的装置,其特征在于:
所述配置文件中还添加有对应所述模块或所述新增模块的构建自定义任务信息,所述构建任务信息或所述构建自定义任务信息均包括任务名及其对应的任务。
10.根据权利要求9所述的装置,其特征在于:
所述任务管理器,还用于保存所述任务名及其对应的任务。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210264082.1A CN103577170A (zh) | 2012-07-27 | 2012-07-27 | 网络应用的构建方法及装置 |
PCT/CN2013/079286 WO2013185668A1 (zh) | 2012-07-27 | 2013-07-12 | 网络应用的构建方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210264082.1A CN103577170A (zh) | 2012-07-27 | 2012-07-27 | 网络应用的构建方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103577170A true CN103577170A (zh) | 2014-02-12 |
Family
ID=49757567
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210264082.1A Pending CN103577170A (zh) | 2012-07-27 | 2012-07-27 | 网络应用的构建方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN103577170A (zh) |
WO (1) | WO2013185668A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105224332A (zh) * | 2015-10-14 | 2016-01-06 | 深圳市金证科技股份有限公司 | 一种应用程序生成方法和装置 |
CN105975276A (zh) * | 2016-05-09 | 2016-09-28 | 上海携程商务有限公司 | 分布式构建***及方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107463495A (zh) * | 2017-07-19 | 2017-12-12 | 重庆扬讯软件技术股份有限公司 | 一种代码增量发布的软件测试方法及代码增量发布装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1920779A (zh) * | 2005-08-25 | 2007-02-28 | 中兴通讯股份有限公司 | 一种基于配置文件的程序流程控制方法 |
CN101354725A (zh) * | 2008-09-08 | 2009-01-28 | 中兴通讯股份有限公司 | 一种构建解析wap页面的方法及装置 |
CN101414945A (zh) * | 2008-10-15 | 2009-04-22 | 上海道仑软件有限公司 | 一种信息***的构建平台***及其方法 |
CN102214103A (zh) * | 2011-07-08 | 2011-10-12 | 珠海脉络软件有限公司 | 以功能单元为基础的任务程序的创建和执行方法及*** |
CN102479079A (zh) * | 2010-11-29 | 2012-05-30 | 中兴通讯股份有限公司 | 应用生成方法和装置 |
-
2012
- 2012-07-27 CN CN201210264082.1A patent/CN103577170A/zh active Pending
-
2013
- 2013-07-12 WO PCT/CN2013/079286 patent/WO2013185668A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1920779A (zh) * | 2005-08-25 | 2007-02-28 | 中兴通讯股份有限公司 | 一种基于配置文件的程序流程控制方法 |
CN101354725A (zh) * | 2008-09-08 | 2009-01-28 | 中兴通讯股份有限公司 | 一种构建解析wap页面的方法及装置 |
CN101414945A (zh) * | 2008-10-15 | 2009-04-22 | 上海道仑软件有限公司 | 一种信息***的构建平台***及其方法 |
CN102479079A (zh) * | 2010-11-29 | 2012-05-30 | 中兴通讯股份有限公司 | 应用生成方法和装置 |
CN102214103A (zh) * | 2011-07-08 | 2011-10-12 | 珠海脉络软件有限公司 | 以功能单元为基础的任务程序的创建和执行方法及*** |
Non-Patent Citations (1)
Title |
---|
赵跃华 等: "基于敏捷方式的Java代码生成方法的设计", 《计算机工程与设计》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105224332A (zh) * | 2015-10-14 | 2016-01-06 | 深圳市金证科技股份有限公司 | 一种应用程序生成方法和装置 |
CN105224332B (zh) * | 2015-10-14 | 2019-06-11 | 深圳市金证科技股份有限公司 | 一种应用程序生成方法和装置 |
CN105975276A (zh) * | 2016-05-09 | 2016-09-28 | 上海携程商务有限公司 | 分布式构建***及方法 |
CN105975276B (zh) * | 2016-05-09 | 2019-04-09 | 上海携程商务有限公司 | 分布式构建***及方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2013185668A1 (zh) | 2013-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11886907B2 (en) | Analytic model execution engine with instrumentation for granular performance analysis for metrics and diagnostics for troubleshooting | |
US9703678B2 (en) | Debugging pipeline for debugging code | |
US9043759B1 (en) | System and method for generating software unit tests simultaneously with API documentation | |
US9280442B1 (en) | System and method for generating coverage reports for software unit tests | |
US10579349B2 (en) | Verification of a dataflow representation of a program through static type-checking | |
CN106557413A (zh) | 基于代码覆盖率获取测试用例的方法和设备 | |
CN113032244B (zh) | 接口测试方法、装置、计算机***和计算机可读存储介质 | |
WO2016026328A1 (zh) | 一种信息处理方法、装置及计算机存储介质 | |
CN101866315A (zh) | 软件开发工具的测试方法及*** | |
EP3311265B1 (en) | A computing platform and method thereof for searching, executing, and evaluating computational algorithms | |
CN105308578A (zh) | 状态转变的诊断 | |
Celik et al. | iCoq: Regression proof selection for large-scale verification projects | |
CN107391528B (zh) | 前端组件依赖信息搜索方法及设备 | |
US20130125093A1 (en) | Generating object-oriented programming language code from a multi-domain dynamic simulation model | |
Song et al. | An approach to identifying causes of implied scenarios using unenforceable orders | |
EP2972880B1 (en) | Kernel functionality checker | |
CN103577170A (zh) | 网络应用的构建方法及装置 | |
CN115994085A (zh) | 代码覆盖率的测试处理方法、装置、设备及存储介质 | |
US8935144B2 (en) | System and method for examining concurrent system states | |
CN117008920A (zh) | 引擎***、请求处理方法、装置、计算机设备及存储介质 | |
CN116228515A (zh) | 硬件加速***、方法及相关装置 | |
CN115952089A (zh) | 一种软件自动化单元测试方法、装置、服务器及存储介质 | |
EP2535813B1 (en) | Method and device for generating an alert during an analysis of performance of a computer application | |
CN108334313A (zh) | 用于大型soc研发的持续集成方法、装置及代码管理*** | |
Neto et al. | Component models for embedded systems in industrial cyber-physical systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140212 |
|
RJ01 | Rejection of invention patent application after publication |