平台代码的生成方法、装置及服务器与流程

文档序号:17396608发布日期:2019-04-13 00:52阅读:154来源:国知局
平台代码的生成方法、装置及服务器与流程

本发明涉及互联网技术领域,尤其是涉及一种平台代码的生成方法、装置及服务器。



背景技术:

目前,各个平台的网页和程序均是由对应的代码构成的,不同的平台使用的代码语言各有不同,因此在构建不同平台的网页或程序时,需要开发人员根据设计稿编写平台对应的代码,这对开发人员有一定的要求,而且开发效率较低。



技术实现要素:

有鉴于此,本发明的目的在于提供一种平台代码的生成方法、装置及服务器,能够减少开发人员编写平台代码的过程,提高平台代码生成的效率。

第一方面,本发明实施例提供了一种平台代码的生成方法,该方法包括:获取用户拖拽至界面内的每个组件的预设组件信息;其中,预设组件信息包括:预设属性信息和至少一个与目标平台对应的源代码模板;基于用户对组件的拖拽事件动态生成界面内的组件之间的层级关系;基于层级关系和预设属性信息生成数据对象;其中,数据对象用于记载界面包含的内容信息;基于源代码模板和数据对象生成界面的源代码;其中,生成的界面的源代码能够适应目标平台。

结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,在基于层级关系和预设组件信息生成数据对象之前包括:基于用户对预设属性信息的修改生成自定义属性信息;该方法还包括:基于层级关系、预设组件信息以及自定义属性信息生成数据对象。

结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,上述基于源代码模板和数据对象生成界面的源代码包括:获取目标平台的平台信息;查找每个组件与平台信息对应的源代码模板;根据查找到的每个组件对应的源代码模板和数据对象生成界面的源代码。

结合第一方面的第二种可能的实施方式,本发明实施例提供了第一方面的第三种可能的实施方式,其中,上述根据查找到的每个组件对应的源代码模板和数据对象生成界面的源代码,包括:基于预设的与每个源代码模板对应的代码实现模块对源代码模板进行加载,生成每个组件对应的源代码实现;基于源代码实现和数据对象生成界面的源代码。

第二方面,本发明实施例还提供一种平台代码的生成装置,该装置包括:信息获取模块,用于获取用户拖拽至界面内的每个组件的预设组件信息;其中,预设组件信息包括:预设属性信息和至少一个与目标平台对应的源代码模板;层级关系生成模块,用于基于用户对组件的拖拽事件动态生成界面内的组件之间的层级关系;数据对象生成模块,用于基于层级关系和预设属性信息生成数据对象;其中,数据对象用于记载界面包含的内容信息;源代码生成模块,用于基于源代码模板和数据对象生成界面的源代码;其中,生成的界面的源代码能够适应目标平台。

结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,上述数据对象生成模块还用于:在基于层级关系和预设组件信息生成数据对象之前包括:基于用户对预设属性信息的修改生成自定义属性信息;上述数据对象生成模块还用于:基于层级关系、预设组件信息以及自定义属性信息生成数据对象。

结合第二方面,本发明实施例提供了第二方面的第二种可能的实施方式,其中,上述源代码生成模块还用于:获取目标平台的平台信息;查找每个组件与平台信息对应的源代码模板;根据查找到的每个组件对应的源代码模板和数据对象生成界面的源代码。

结合第二方面的第二种可能的实施方式,本发明实施例提供了第二方面的第三种可能的实施方式,其中,上述源代码生成模块还用于:基于预设的与每个源代码模板对应的代码实现模块对源代码模板进行加载,生成每个组件对应的源代码实现;基于源代码实现和数据对象生成界面的源代码。

第三方面,本发明实施例还提供一种服务器,服务器包括存储器以及处理器,存储器用于存储支持处理器执行第一方面至第一方面的第三种可能的实施方式任一项方法的程序,处理器被配置为用于执行存储器中存储的程序。

第四方面,本发明实施例还提供一种计算机存储介质,用于储存为第一方面至第一方面的第三种可能的实施方式任一项方法所用的计算机软件指令。

本发明实施例带来了以下有益效果:

本发明实施例提供的平台代码的生成方法、装置及服务器,能够获取用户拖拽至界面内的每个组件的预设组件信息,其中,预设组件信息包括预设属性信息和至少一个目标平台对应的源代码模板,然后基于拖拽事件动态地生成界面内组件之间的层级关系,并基于层级关系和上述预设属性信息生成数据对象,最后基于上述源代码模板和数据对象生成界面的源代码。本发明实施例能够基于组件交互拖拽生成数据对象,并根据模板和数据对象生成目标平台的源代码,减少开发人员编写平台代码的过程,提高平台代码生成的效率。

本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

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

图1为本发明实施例提供的一种平台代码的生成方法的流程图;

图2为本发明实施例提供的另一种平台代码的生成方法的流程图;

图3为本发明实施例提供的一种界面的结构示意图;

图4为本发明实施例提供的一种平台代码的生成装置的结构示意图;

图5为本发明实施例提供的一种服务器的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

目前不同平台使用的代码语言存在一定差异,因此在不同平台编辑代码时,需要掌握该平台的代码语言并根据设计稿编写代码,对开发人员具有较高的要求,基于此,本发明实施例提供的一种平台代码的生成方法、装置及服务器,可以基于组件交互拖拽获取组件信息,并根据组件信息生成目标平台可识别的源代码。

为便于对本实施例进行理解,首先对本发明实施例所公开的一种平台代码的生成方法进行详细介绍,参见图1所示的一种平台代码的生成方法的流程图,该方法包括以下步骤:

步骤s102,获取用户拖拽至界面内的每个组件的预设组件信息。

其中,预设组件信息包括:预设属性信息和至少一个与目标平台对应的源代码模板,预设属性信息用于对组件的各项信息进行描述,组件的各项信息可以包括组件的使用条件、放置位置以及组件实现的功能。可以理解的,因为不同平台应用的编程语言有所不同,因此针对不同的平台应设置对应的源代码模板。

另外,拖拽效果主要跟鼠标的三个事件有关,这三个事件包括选择组件事件mousedown、移动组件事件mousemove和释放组件事件mouseup。进一步的,拖拽的整个过程会依次触发拖拽开始事件dragstart、拖拽事件drag和拖拽结束事件dragend。其中,拖拽开始事件对应鼠标的选择组件事件,拖拽事件对应鼠标的移动组件事件,拖拽结束事件对应鼠标的释放组件事件。在选中被拖拽的组件时,开始移动鼠标会首先触发拖拽开始事件,随后触发拖拽事件,当鼠标停止移动时会触发拖拽结束事件,无论鼠标拖拽的组件是释放到了有效位置还是无效位置均会触发拖拽结束事件。其中,在鼠标移动过程中会持续触发拖拽事件,同时鼠标的移动组件事件也会在鼠标移动过程中持续触发。

当组件被拖放到界面内时会依次触发拖拽进入事件dragenter、拖拽悬浮事件dragover,拖拽离开事件dragleave或拖拽完成事件dragdrop,其中,在组件被拖放到目标位置上时,首先会触发拖拽进入事件,随后触发拖拽悬浮事件,而且在被拖拽的组件还在放置的目标范围内移动时,会持续触发拖拽悬浮事件。当鼠标直接移出目标位置时会触发拖拽离开事件dragleave,拖拽悬浮事件不再被触发;当组件被释放到了目标位置时会触发拖拽完成事件dragdrop。当触发拖拽完成事件后,说明组件成功拖拽至界面内。

进一步的,目标平台可以为mac平台、windows平台、linux或web(worldwideweb,万维网)平台,不同平台使用的编程语言存在一定差异。具体的,web平台为上述平台中最常用的平台。mac平台常用语言包括c语言、obiective-c编程、swift语言和uikit框架;windows系统的常用语言包括c++语言、c语言和汇编语言;linux系统的常用语言是c语言;web平台常用编程语言包括html(hypertextmarkuplanguage,超级文本标记语言)语言、css(cascadingstylesheets,层叠样式表)语言和js(javascript,直译式脚本语言)语言。可以看出,不同平台使用的编程语言差异较大,因此应针对不同平台,甚至针对不同平台的不用编程语言分别设置对应的源代码模板。

步骤s104,基于用户对组件的拖拽事件动态生成界面内的组件之间的层级关系。

其中,层级关系为各组件之间的关系,可以理解的,基于用户对组件的拖拽事件,在界面内得到至少一个组件,当将多个组件拖拽至界面时,界面中的各组件之间可能存在一定的层级关系。例如,组件a包括组件b或者组件a和组件b并列。

步骤s106,基于层级关系和预设属性信息生成数据对象。

其中,数据对象用于记载界面包含的内容信息,是一种数据结构。在具体实施时,数据对象记载的内容可以包括各组件之间的层级关系以及各组件的预设属性信息,以通过数据对象记载各组件之间的层级关系为例,假设组件a包括组件b,则在数据对象中可以记载为:组件b为组件a的子元素;假设组件a和组件b为并列关系,则在数据对象中可以记载为:组件a和组件b为兄弟元素。

步骤s108,基于源代码模板和数据对象生成界面的源代码。

因为在预设属性信息中包括至少一个源代码模板,所以为了生成的界面的源代码能够适应目标平台,需要在基于源代码模板和数据对象生成界面的源代码之前,应先确定目标平台,进而确定与该目标平台对应的源代码模板,然后基于数据对象中记载的界面的内容信息,生成所需的目标平台的源代码。

本发明实施例提供的平台代码的生成方法,能够获取用户拖拽至界面内的每个组件的预设组件信息,其中,预设组件信息包括预设属性信息和至少一个目标平台对应的源代码模板,然后基于拖拽事件动态地生成界面内组件之间的层级关系,并基于层级关系和上述预设属性信息生成数据对象,最后基于上述源代码模板和数据对象生成界面的源代码。本发明实施例能够基于组件交互拖拽生成数据对象,并根据模板和数据对象生成目标平台的源代码,减少开发人员编写平台代码的过程,提高平台代码生成的效率。

为便于理解,本发明实施例在上述实施例的基础上提出另一种平台代码的生成方法,参见图2所示的另一种平台代码的生成方法的流程图,该方法包括以下步骤:

步骤s202,获取用户拖拽至界面内的每个组件的预设组件信息。

当用户将各组件拖拽至界面内后,获取界面内每个组件的预设组件信息。

步骤s204,基于用户对组件的拖拽事件动态生成界面内的组件之间的层级关系。

步骤s206,基于层级关系和预设属性信息生成数据对象。

进一步的,在基于层级关系和预设组件信息生成数据对象之前,可以基于用户对预设属性信息的修改生成自定义属性信息。可以理解的,因为在预设属性信息中存在一些默认参数,用户可以选择对这些默认参数进行修改。另外,当用户希望更改其他属性信息的参数时,也可以对预设属性进行修改,得到用户所需的自定义属性。例如,用户可以对预设属性信息中的组件名称进行修改。

当用户对预设属性信息进行修改后,将基于层级关系、预设组件信息以及自定义属性信息生成数据对象。

步骤s208,获取目标平台的平台信息。

考虑到需要根据数据对象生成目标平台的源代码,所以需要目标平台的平台信息,以便于针对平台信息获取对应的源代码模板,进而生成能够适应目标平台的源代码。优选的,因为每个平台使用的编程语言不仅仅是一种,所以平台信息还可以包括使用的编程语言信息。进一步的,可以向用户提供平台信息输入或者选择按钮,以供用户选择所需的目标平台。

例如,用户点击“平台选择”按钮,供用户选择所需的目标平台,在用户选择目标平台后,再向用户显示“编程语言选择”按钮,供用户选择编程语言,最终获得目标平台信息。假设用户希望根据数据对象生成windows平台的c++语言的源代码,用户在点击“平台选择”按钮后,会向用户展示诸如mac平台、windows平台、linux平台和web平台等多个平台,用户点击windows平台后,将显示windows平台使用的语言列表,诸如c++语言、c语言和汇编语言,在用户点击c++语言后,即可获得windows平台的c++语言的平台信息。

步骤s210,查找每个组件与平台信息对应的源代码模板。

为了便于查找与平台信息对应的源代码模板,可以设置平台信息和源代码模板的关联信息,或者将平台信息和源代码模板的对应关系关联保存至预设表格中。另外,当界面内存在多个组件时,将分别在各组件的预设属性信息内查找目标平台对应的源代码模板。

步骤s212,根据查找到的每个组件对应的源代码模板和数据对象生成界面的源代码。

进一步的,本发明实施例还提供了根据查找到的每个组件对应的源代码模板和数据对象生成界面的源代码的过程,具体参见以下步骤:

(1)基于预设的与每个源代码模板对应的代码实现模块对源代码模板进行加载,生成每个组件对应的源代码实现。其中,源代码实现用于实现源代码的生成,代码实现模板用于生成对应的源代码实现。

(2)基于源代码实现和数据对象生成界面的源代码。

本发明实施例提供的平台代码的生成方法,能够获取用户拖拽至界面内的每个组件的预设组件信息,其中,预设组件信息包括预设属性信息和至少一个目标平台对应的源代码模板,然后基于拖拽事件动态地生成界面内组件之间的层级关系,并基于层级关系和上述预设属性信息生成数据对象,获取目标平台以及与目标平台对应对的源代码模板,并根据与目标平台对应对的源代码模板和数据对象生成源代码。本发明实施例能够基于组件交互拖拽生成数据对象,并根据模板和数据对象生成目标平台的源代码,减少开发人员编写平台代码的过程,提高平台代码生成的效率。

为便于理解,本发明实施例提供了另一种平台代码的生成方法,以图3所示的一种界面的结构示意图为例,该界面为基于组件拖拽形成的登陆界面,界面包括“用户名”、“密码”、“登陆”,用户名输入框和密码输入框,其中,“用户名”基于拖拽组件a生成,“密码”基于拖拽组件b生成、用户名输入框基于拖拽组件c生成、密码输入框基于拖拽组件d生成和“登陆”基于拖拽组件e生成。

当用户将组件a、组件b、组件c、组件d和组件e分别拖拽至界面后,获取组件a、组件b、组件c、组件d和组件e对应的预设组件信息,然后基于对各组件的拖拽事件生成界面内的各组件之间的层级关系,例如,组件c为组件a的子元素、组件d为组件b的子元素,组件a、组件b和组件e为兄弟元素,然后基于组件a、组件b、组件c、组件d和组件e之间的层级关系和各组件的预设属性信息生成数据对象。当生成对应的数据对象后,获取目标平台的平台信息,然后在组件a、组件b、组件c、组件d和组件e的预设组件信息中分别查找与平台信息对应的源代码模板,并分别基于各自的源代码模板和数据结构生成界面的源代码。

综上所述本发明实施例能够基于组件交互拖拽生成数据对象,并根据模板和数据对象生成目标平台的源代码,减少开发人员编写平台代码的过程,提高平台代码生成的效率。

为便于理解,本发明实施例在上述实施例的基础上提供了一种平台代码的生成装置,参见图4所示的一种平台代码生成装置的结构示意图,该装置包括以下模块:

信息获取模块402,用于获取用户拖拽至界面内的每个组件的预设组件信息;其中,预设组件信息包括:预设属性信息和至少一个与目标平台对应的源代码模板。

层级关系生成模块404,用于基于用户对组件的拖拽事件动态生成界面内的组件之间的层级关系。

数据对象生成模块406,用于基于层级关系和预设属性信息生成数据对象;其中,数据对象用于记载界面包含的内容信息。

源代码生成模块408,用于基于源代码模板和数据对象生成界面的源代码;其中,生成的界面的源代码能够适应目标平台。

本发明实施例提供的平台代码的生成装置,信息获取模块能够获取用户拖拽至界面内的每个组件的预设组件信息,其中,预设组件信息包括预设属性信息和至少一个目标平台对应的源代码模板,然后层级关系生成模块基于拖拽事件动态地生成界面内组件之间的层级关系,并通过数据对象生成模块基于层级关系和上述预设属性信息生成数据对象,最后源代码生成模块基于上述源代码模板和数据对象生成界面的源代码。本发明实施例能够基于组件交互拖拽生成数据对象,并根据模板和数据对象生成目标平台的源代码,减少开发人员编写平台代码的过程,提高平台代码生成的效率。

进一步的,上述数据对象生成模块还用于:在基于层级关系和预设组件信息生成数据对象之前,基于用户对预设属性信息的修改生成自定义属性信息,然后基于层级关系、预设组件信息以及自定义属性信息生成数据对象。

进一步的,上述源代码生成模块还用于:获取目标平台的平台信息,并查找每个组件与平台信息对应的源代码模板,然后根据查找到的每个组件对应的源代码模板和数据对象生成界面的源代码。

进一步的,上述源代码生成模块还用于:基于预设的与每个源代码模板对应的代码实现模块对源代码模板进行加载,生成每个组件对应的源代码实现,并基于源代码实现和数据对象生成界面的源代码。

本实施例所提供的装置,其实现原理及产生的技术效果和前述实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。

该设备为一种服务器,具体的,该服务器包括处理器和存储装置;存储装置上存储有计算机程序,计算机程序在被所述处理器运行时执行如上所述实施方式的任一项所述的方法。

图5为本发明实施例提供的一种服务器的结构示意图,该服务器100包括:处理器50,存储器51,总线52和通信接口53,所述处理器50、通信接口53和存储器51通过总线52连接;处理器50用于执行存储器51中存储的可执行模块,例如计算机程序。

其中,存储器51可能包含高速随机存取存储器(ram,randomaccessmemory),也可能还包括非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。通过至少一个通信接口53(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。

总线52可以是isa总线、pci总线或eisa总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

其中,存储器51用于存储程序,所述处理器50在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器50中,或者由处理器50实现。

处理器50可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器50中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器50可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现成可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

处理器50可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器51,处理器50读取存储器51中的信息,结合其硬件完成上述方法的步骤。

本发明实施例所提供的平台代码的生成方法、装置及服务器的计算机程序产品,包括存储了处理器可执行的非易失的程序代码的计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统具体工作过程,可以参考前述实施例中的对应过程,在此不再赘述。

本发明实施例所提供的可读存储介质的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

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