首页> 中国专利> 作品共创方法及装置、电子设备、存储介质

作品共创方法及装置、电子设备、存储介质

摘要

本申请提供一种作品共创方法及装置、电子设备、存储介质,所述方法包括:获取管理用户触发的作品模块创建需求,作品模块创建需求包括作品名称以及多个不同的作品子模块;根据作品模块创建需求,确定不同参与用户在作品子模块中对应的编程代码数据;接收所有参与用户上传的最新的编程代码数据,并生成作品的目标发布版本代码数据。本申请方法能够解决实施共创作品过程中出现的代码互斥、互锁问题,尤其是应用的编程教学领域,使参与协同创作作品的学员或用户之间能够互相启发、互相学习。在多人协作完成一件作品的开发过程中,各学员或用户之间可以分工协作,最终联动运行到一个作品工程中进行调试,提高了协同创造的工作效率。

著录项

  • 公开/公告号CN116185410A

    专利类型发明专利

  • 公开/公告日2023-05-30

    原文格式PDF

  • 申请/专利权人 北京思明启创科技有限公司;

    申请/专利号CN202310183984.0

  • 发明设计人

    申请日2023-02-17

  • 分类号G06F8/38;G06F8/36;G06F8/41;G06F8/71;

  • 代理机构北京超凡宏宇专利代理事务所(特殊普通合伙);

  • 代理人钟扬飞

  • 地址 100080 北京市海淀区海淀大街38号5层

  • 入库时间 2024-04-18 19:52:40

说明书

技术领域

本申请涉及编程技术领域,特别涉及一种作品共创方法及装置、电子设备、存储介质。

背景技术

随着互联网技术的快速发展,国内线上编程学习也越来越普及,随着孩子学习的进步,学生和家长都追求更多、更好、更高阶的知识获得。学员们期望能学习更复杂的项目工程制作方法,也希望获得和他人协同共创完成更大型作品的能力和经验。

目前,学员的线上编程只能个人独立完成,当多个学员进行线上编程而完成同一个项目作品时,通常会将该项目作品划分为多个子作品,然后分别由不同的学员参与来完成对应的子作品,最终共同完成整个作品。由于共同创造作品过程中存在代码互斥、互锁问题,导致学员不能顺利完成同一项编程作品的创造,最终无法有效的实现作品的协作,影响工作效率。

发明内容

本申请实施例的目的在于提供一种作品共创方法,本申请提出的作品共创方法,能够解决实施共创作品过程中出现的代码互斥、互锁问题,尤其是应用的编程教学领域,使参与协同创作作品的学员或用户之间能够互相启发、互相学习,提高了协同创造的工作效率。

第一方面,本申请提供一种作品共创方法,包括:

获取管理用户触发的作品模块创建需求,所述作品模块创建需求包括作品名称以及多个不同的作品子模块;

根据所述作品模块创建需求,确定不同参与用户在所述作品子模块中对应的编程代码数据;

接收所有所述参与用户上传的最新的所述编程代码数据,并确定所述作品的目标发布版本代码数据。

于一实施例中,所述获取管理用户触发的作品模块创建需求,包括:

获取所述管理用户输入的所述作品名称,确定所述作品名称对应的多个不同的所述作品子模块;

其中,所述管理用户在创建所述作品模块时具有创建权限、删除权限、编辑提交权限、代码修改权限、调试权限以及演示权限。

于一实施例中,所述确定不同参与用户在所述作品子模块中对应的编程代码数据,包括:

获取不同的所述作品子模块对应的所述参与用户的成员信息;

根据所述参与用户的成员信息,确定所述参与用户在所述作品子模块中对应的所述编程代码数据;

其中,所述参与用户在操作所述编程代码数据时具有编辑提交权限、代码修改权限、调试权限以及演示权限。

于一实施例中,在所述根据所述作品模块创建需求,确定不同参与用户在所述作品子模块中对应的编程代码数据之后,所述方法还包括:

响应于所述参与用户在所述作品子模块的编辑提交权限的申请指令;

获取所述参与用户对应的所述作品子模块的版本信息;

根据所述作品子模块的版本信息,获取所述参与用户在所述作品子模块中编辑完成的所述编程代码数据。

于一实施例中,所述接收所有所述参与用户上传的最新的所述编程代码数据,并生成所述作品的目标发布版本代码数据,包括:

判断不同的所述参与用户上传的最新的所述编程代码数据之间是否出现逻辑冲突导致报错;

若是,所述管理用户从后端下载最新的所述编程代码数据,作为所述作品的目标发布版本代码数据;

若否,根据所述编程代码数据对应的版本号信息,确定最新的所述版本号信息对应的所述编程代码数据,作为所述作品的目标发布版本代码数据,其中,所述版本号信息包括作品编号、所述作品子模块分类信息以及所述编程代码数据时间信息。

于一实施例中,所述根据所述编程代码数据对应的版本号信息,确定最新的所述版本号信息对应的所述编程代码数据,作为所述作品的目标发布版本代码数据,包括:

当所述作品编号以及所述作品子模块分类信息相同,所述编程代码数据时间信息不同时,以最新的所述编程代码数据时间信息对应的所述编程代码数据作为所述作品的目标发布版本代码数据;

当所述作品编号相同,所述作品子模块分类信息不相同时,将每个所述作品子模块对应的所述编程代码数据进行合并,以合并后的所述编程代码数据作为所述作品的目标发布版本代码数据。

于一实施例中,所述根据所述编程代码数据对应的版本号信息,确定最新的所述版本号信息对应的所述编程代码数据,作为所述作品的目标发布版本代码数据,还包括:

响应于其中一个所述参与用户对所述编程代码数据的锁定指令;

确定锁定区域内最新的所述版本信息对应的所述编程代码数据,作为所述作品的目标发布版本代码数据。

第二方面,本申请提供一种作品共创装置,包括:

获取模块,用于获取管理用户触发的作品模块创建需求,所述作品模块创建需求包括作品名称以及多个不同的作品子模块;

确定模块,用于根据所述作品模块创建需求,确定不同参与用户在所述作品子模块中对应的编程代码数据;

输出模块,用于接收所有所述参与用户上传的最新的所述编程代码数据,并生成所述作品的目标发布版本代码数据。

第三方面,本申请提供一种电子设备,所述电子设备包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为执行以完成上述作品共创方法。

第四方面,本申请提供一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器运行时,用以执行完成上述作品共创方法。

本申请方案中,提出的作品共创方法,能够解决实施共创作品过程中出现的代码互斥、互锁问题,尤其是应用的编程教学领域,使参与协同创作作品的学员或用户之间能够互相启发、互相学习。在多人协作完成一件作品的开发过程中,各学员或用户之间可以分工协作,最终联动运行到一个作品工程中进行调试,提高了协同创造的工作效率。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍。

图1为本申请一实施例提供的电子设备的结构示意图;

图2为本申请一实施例提供的作品共创方法的流程示意图;

图3为本申请一实施例提供的管理用户和参与用户的权限关系示意图;

图4为本申请另一实施例提供的作品共创方法的流程示意图;

图5为本申请一实施例提供的作品共创装置的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。

相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

请参照图1,其为本申请一实施例提供的电子设备的结构示意图。如图1所示,电子设备包括:至少一个处理器11和存储器12,图1中以一个处理器11为例。处理器11和存储器12通过总线10连接,存储器12存储有可被处理器11执行的指令,指令被处理器11执行,以使电子设备可执行下述的实施例中方法的全部或部分流程。于一实施例中,电子设备可以是物理服务器或云服务器。

存储器12可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read Only Memory,简称EPROM),可编程只读存储器(Programmable Red-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。

本申请还提供了一种计算机可读存储介质,存储介质存储有计算机程序,计算机程序可由处理器11执行以完成本申请提供的作品共创方法。

新知识、新方法是智慧火花碰撞产生的,学生在学习编程时通过共同完成同一项作品,达到互相启发、互相帮助、共同成长的目的。虚拟世界中的作品就可以采用这种项目共创的方式完成。

对于作品同时编辑的多人协作机制,一方面参与者在参与编辑代码的时候,需要先申请权限并且解锁,保证编辑的独立性,另一方面多人同时编辑代码时可以分工协作,最终联动运行在一个工程中进行调试。对于多人编辑同一个代码内容时,需要解决代码冲突、代码互斥的问题。因此,本申请提供一种作品共创方法,用于解决多人共同创作时代码合并、更新时发生冲突、互斥问题。

请参照图2,其为本申请一实施例提供的作品共创方法的流程示意图。作品共创方法具体包括步骤S210-步骤S230。

步骤S210:获取管理用户触发的作品模块创建需求,作品模块创建需求包括作品名称以及多个不同的作品子模块。

作品可以指通过编程撰写代码的方式完成一个项目主题,最终所呈现出来的展示方式。作品可以是虚拟的,为一个应用软件或游戏小程序;作品也可以是实体的展示结果。示例性的,通过多人协同在底层开发编写代码,来实现玩具车夹持并运输玩具的过程,可作为虚拟作品。以编程方式最终实现玩具车夹持并运输玩具这一展示过程,可作为实体作品。

在完成玩具车夹持玩具的作品前,首先要建立该作品工程,作品的创建者可以是管理用户,即该作品的负责人。当然,该作品的完成不仅需要管理用户,还需要其他参与用户。

例如,以前述玩具车夹持并运输玩具作为一个共创作品,作品名称为玩具车夹持并运输玩具,该作品可由多个不同的作品子模块共同开发完成。

于一实施例中,步骤S210具体包括:获取管理用户输入的作品名称,确定作品名称对应的多个不同的作品子模块。

本实施例中,通过管理用户创建玩具车夹持玩具的作品模块需求,管理用户输入的作品名称即为控制玩具车夹持并运输玩具。而完成这一作品的代码开发,则需要进行多个作品子模块的代码协同开发。作品的创建者作为管理用户,管理用户可以与其他参与用户共同商讨后将作品拆分为多个作品子模块。示例性的,经过商讨后这些作品子模块可被拆分成包括:玩具车定位模块、玩具车平移模块、玩具车旋转模块、玩具车升降模块、夹爪控制模块等几个作品子模块。

步骤S220:根据作品模块创建需求,确定不同参与用户在作品子模块中对应的编程代码数据。

完成作品的代码开发,则需要进行多个作品子模块的代码协同开发,因此,可以由多个不同参与用户分别来独立完成各自所负责的作品子模块的代码开发工作。

于一实施例中,步骤S220具体包括:获取不同的作品子模块对应的参与用户的成员信息;根据参与用户的成员信息,确定参与用户在作品子模块中对应的编程代码数据。

每个作品子模块可以分配给对应的参与用户进行独立开发。在分配前,管理用户可以根据作品子模块的分类类型、作品子模块数量等,确定对应的参与用户的成员信息。成员信息可以包括参与用户的人数、参与用户的身份信息。示例性的,有1个管理用户和5个参与用户,分别为参与用户1、参与用户2、参与用户3、参与用户4和参与用户5。

在确定了参与用户的成员信息后,就可以具体确定参与用户负责的作品子模块的编程代码开发工作。即参与用户1负责玩具车定位模块的编程代码数据的开发;参与用户2负责玩具车平移模块的编程代码数据开发;参与用户3负责玩具车旋转模块的编程代码数据开发;参与用户4负责玩具车升降模块的编程代码数据开发;参与用户5负责夹爪控制模块编程代码数据开发,管理用户可以在每个参与用户负责其对应的作品子模块的编程代码数据开发时,进行管理和控制。

如步骤S210中所述,玩具车定位模块是指通过参与用户1在底层开发一段代码,实现玩具车对玩具的定位感知,并按照导航路径移动到目标玩具位置处;玩具车平移模块是指通过参与用户2在底层开发一段代码,实现玩具车平移;玩具车旋转模块是指通过参与用户3在底层开发一段代码,实现玩具车旋转;玩具车升降模块是指通过参与用户4在底层开发一段代码,实现玩具车升降;夹爪控制模块是指通过参与用户5在底层开发一段代码,实现夹爪夹取玩具的功能。因此,每个作品子模块都将由对应的参与人员编写底层代码,最终通过管理用户将这些作品子模块对应的代码进行合并,形成一整个开发程序,在发布成功后,即可实现控制玩具车夹持并运输玩具的过程。

于一实施例中,请参照图3,包含1个管理用户和多个参与用户。管理用户在创建作品模块时具有创建权限、删除权限、编辑提交权限、代码修改权限、调试权限以及演示权限。参与用户在操作编程代码数据时具有编辑提交权限、代码修改权限、调试权限以及演示权限。从图3中可知,管理用户的权限是大于参与用户的权限的。

权限管理包括对权限进行分级,建立不同等级的权限。比如管理用户永远具有创建权限、删除权限、编辑提交权限、代码修改权限、调试权限以及演示权限。而参与用户,只能增加编程代码数据、修改编程代码数据、调试编程代码数据以及演示编程代码数据,而不能删除编程代码数据。最大化的保证信息安全与降低误操作的可能。

于一实施例中,在确定不同参与用户在作品子模块中对应的编程代码数据之后,该方法还包括:响应于参与用户在作品子模块的编辑提交权限的申请指令;获取参与用户对应的作品子模块的版本信息;根据作品子模块的版本信息,获取参与用户在作品子模块中编辑完成的编程代码数据。

本实施例中,当管理用户创建了多个作品子模块后,每个参与用户可以申请编辑其对应的作品子模块中编程代码数据,管理用户可以通过每个参与用户的该编辑权限申请;除此之外,每个参与用户也可以申请合并其负责的作品子模块内的编程代码数据,管理用户可以通过参与用户的申请。或者,参与用户1可以申请参加参与用户2对应的作品子模块的代码开发工作,管理用户可以同意参与用户2提出的这个申请,进而由参与用户1和参与用户2共同完成参与用户2对应的作品子模块的代码开发工作。

当参与用户获得了编辑权限后,首先读取作品子模块的版本信息,作品子模块的版本信息包括:作品子模块的名称、发布版本,例如V1.0、V2.0…。因为在作品的代码开发过程中,编程代码数据都是实时更新的,因而对应的作品子模块可能也是需要对应着更新的。因此,参与用户只有确定了当前其负责的作品子模块的版本信息后,才可以继续在该作品子模块下进行编程代码数据的开发工作。

步骤S230:接收所有参与用户上传的最新的编程代码数据,并生成作品的目标发布版本代码数据。

当参与用户1完成了玩具车定位模块的编程代码数据开发,参与用户2完成了玩具车平移模块的编程代码数据开发,参与用户3完成了玩具车旋转模块的编程代码数据开发,参与用户4完成了玩具车升降模块的编程代码数据开发,参与用户5完成了夹爪控制模块的编程代码开发后,所有参与用户将其完成的最新的编程代码数据上传到服务器上,由管理用户将所有的编程代码数据进行整合合并,形成一整个开发程序进行发布,最终发布的代码数据即为目标发布版本代码数据。当目标发布版本代码数据发布上线运行成功后,即表示参与用户共同完成了对应的作品子模块的代码开发工作,即可实现控制玩具车夹持并运输玩具的过程,也就完成了该作品的共创。

需要说明的是,在共创作品中,需要建立单独的服务器,用于存储所有作品子模块的编程代码数据,该服务器可以是物理服务器,也可以是云服务器。该服务器可以进行权限管理、账号管理以及处理参与用户同时操作编程代码数据时产生的时序问题,包括代码互斥、同步死锁以及内容合并等问题。作品共创方法可按照步骤S210-步骤S230进行部署。

建立服务器时,需要监听服务器端口,服务器中有监听模块,用于用户登录。账号会根据实际使用者的需求,进行账号分配,示例性的,项目经理和产品经理所持有的账号是不同的。本实施例中,管理用户登录账户后,创建作品名称以及作品子模块,参与用户在对应的作品子模块中进行编程代码数据的开发工作,参与用户在编辑、修改、调试、演示以及上传编程代码数据过程中,服务器的监听模块始终处于监听记录状态,实时采集并存储管理用户或参与用户完成的编程代码数据。由于服务器具有监听功能,因此,任何一个参与用户在独立开发对于的作品子模块过程中都可以实时获取到其他参与用户的编程代码开发进度。每个参与用户之间建立了链接,即认为每个参与用户为在线用户,在线用户所完成的编程代码数据可以实时在线进行转发。

于一实施例中,步骤S230具体包括:步骤S231-步骤S233。

步骤S231:判断不同的参与用户上传的最新的编程代码数据之间是否出现逻辑冲突导致报错。

当不同的参与用户完成其对应的作品子模块内的编程代码数据开发后,并且要将完成的最新的编程代码数据上传到服务器,由于作品是多个参与用户共同创造的,避免不了各个参与用户上传的编程代码数据发生互斥、逻辑冲突的问题,导致程序报错。因此,服务器需要对不同的参与用户上传的最新的编程代码数据之间是否出现逻辑冲突导致报错进行判断。

步骤S232:若是,管理用户从后端下载最新的编程代码数据,作为作品的目标发布版本代码数据。

在步骤S231中,如果判断结果显示不同的参与用户上传的最新的编程代码数据之间出现逻辑冲突导致报错的情况,通过管理用户进行人为干预,管理用户通过他的编辑权限,直接从服务器端下载所有参与用户上传的最新的编程代码数据,进行整理合并。

步骤S233:若否,根据编程代码数据对应的版本号信息,确定最新的版本号信息对应的编程代码数据,作为作品的目标发布版本代码数据,其中,版本号信息包括作品编号、作品子模块分类信息以及编程代码数据时间信息。

在步骤S231中,如果判断结果显示不同的参与用户上传的最新的编程代码数据之间没有出现逻辑冲突导致报错的情况,则需要根据编程代码数据对应的版本号信息,确定最新的版本号信息对应的编程代码数据来作为作品的目标发布版本代码数据。

示例性的,版本号信息按照三段式结构生成:A+B+C,其中A为作品编号,有管理用户或负责人填写(支持字母和数字组合,例如No1.玩具车夹持并运输玩具),通常在一个作品内编号是不变的;B为作品子模块分类信息,包含创作或修改者身份信息ID(即参与用户身份信息)和模块分类ID(根据作品名称进行分类,形成不同的作品子模块);C为编程代码数据时间信息,精确到年月日时分秒,并以服务时间为准,保证时间的统一性。

每个参与用户每完成一段编程代码的编写工作,服务器都会进行存储,因此,在服务器端总会存储前一次上传的编程代码数据,以每个参与用户最后上传的编程代码数据作为最新的编程代码数据,从而替代前一次上传的编程代码数据,管理用户将所有参与用户上传的最新的编程代码数据进行整理合并,最终生成目标发布版本代码数据,准备发布。

于一实施例中,步骤S233具体包括:当作品编号以及作品子模块分类信息相同,编程代码数据时间信息不同时,以最新的编程代码数据时间信息对应的编程代码数据作为作品的目标发布版本代码数据。

根据版本号信息进行比对,若A+B相同,C时间不同,即当作品编号以及作品子模块分类信息相同,编程代码数据时间信息不同时,参考编程代码数据时间最近。示例性的,参与用户5在进行No1.玩具车夹持并运输玩具的夹爪控制模块的代码开发工作中,前一次上传的夹爪控制模块的编程代码数据是当日10:10分,在开发过程中经过修改、编辑等处理后,于次日12:20分又一次上传了一次夹爪控制模块的编程代码数据,因此,管理用户最终从服务器端下载的是参与用户5在次日12:20分上传的夹爪控制模块的编程代码数据,这是夹爪控制模块对应的最新的编程代码数据。

当作品编号相同,作品子模块分类信息不相同时,将每个作品子模块对应的编程代码数据进行合并,以合并后的编程代码数据作为作品的目标发布版本代码数据。

若A相同,B不相同,即作品名称相同,作品子模块分类信息不相同,则需要将每个参与用户上传的每个作品子模块对应的编程代码数据进行合并覆盖,管理用户从服务器端下载合并后的编程代码数据,通过编辑、修改、调试等权限调整,最终形成作品的目标发布版本代码数据。

另外,如果A也不相同的情况,即作品名称不相同,说明属于两个作品,则无需讨论。

于一实施例中,步骤S233具体还包括:响应于其中一个参与用户对所述编程代码数据的锁定指令;确定锁定区域内最新的版本信息对应的代码数据,作为作品的目标发布版本代码数据。

参与用户之间会出现编程代码数据操作覆盖的情况,例如,参与用户1在其对应的作品子模块中添加某段代码,但是参与用户2同时想删除某段代码,这时候就出现了代码冲突问题,一般情况下,根据时间排序,即哪个参与用户(例如参与用户2)后操作编程代码数据,就以该用户上传的编程代码数据为最新的数据,从而覆盖前一次上床的编程代码数据。如果参与用户2在对编程代码数据进行编辑操作过程前,可以先对该编程代码数据所在的区域锁定,然后在该锁定区域内,参与用户2可以对其创作的编程代码数据进行修改、编辑、演示、调试等操作,而在手动解除锁定前,其他参与用户无法对这片锁定区域进行操作。在参与用户2对编程代码数据进行修改、编辑、演示、调试等操作后,将最新的创作的编程代码数据上传服务器。按照上述相同的方式,参与用户1-5均将自己创作的最新的版本信息对应的编程代码数据进行上传,管理用户从服务器端下载每个参与用户最新上传的编程代码数据,进行整合合并,最终作为作品的目标发布版本代码数据进行发布。服务器提供的这种锁功能,需要频繁的对服务器进行访问,如果不进行锁功能,后一个参与用户创作的编程代码数据就将覆盖前一个参与用户上传的编程代码数据。

请参照图4,其为本申请另一实施例提供的作品共创方法的流程示意图。该方法具体包括步骤S410-步骤S4100。

步骤S410:创建作品。

本步骤中,由管理用户或负责人来创建作品。具体可参照步骤S210的描述。

步骤S420:模块化拆分。

本步骤中,一件作品由多个不同的作品子模块共同开发完成,管理用户可以与其他参与用户共同商讨后将作品拆分为多个作品子模块。

步骤S430:管理用户审批通过权限。

本步骤中,当多个参与用户独立完成各自对应的作品子模块内的代码开发时,由于每个参与用户是互相独立完成各自的代码开发的,因而管理用户需要做好各个接口的协调工作,除此以外,还需要管理用户利用他的权限解决多个参与用户之间的代码编辑冲突问题。每个参与用户在处理各自对应的代码开发时,也需要向管理用户申请编辑提交权限、代码修改权限、工程调试权限以及演示权限。详细可参加上文对图3的描述。

步骤S440:申请模块编辑权限。

本步骤中,参与用户或创作人向管理用户申请模块编辑权限。

步骤S450:读取模块版本信息。

本步骤中,如前所述,当管理用户创建了多个作品子模块后,每个参与用户可以申请编辑其对应的作品子模块中编程代码数据,管理用户可以通过每个参与用户的该编辑权限申请;除此之外,每个参与用户也可以申请合并其负责的作品子模块内的编程代码数据,管理用户可以通过参与用户的申请。当参与用户获得了编辑权限后,首先读取作品子模块的版本信息,作品子模块的版本信息包括:作品子模块的名称、发布版本。参与用户只有确定了当前其负责的作品子模块的版本信息后,才可以继续在该作品子模块下进行编程代码数据的开发工作。

步骤S460:编程代码数据创作。

本步骤中,如前所述,完成一个作品的代码开发,需要进行多个作品子模块的代码协同开发,由多个不同参与用户分别来独立完成各自所负责的作品子模块的编程代码开发工作。所有的参与用户需要在底层开发代码,完成编程代码数据创作。

步骤S470:上传更新编程代码数据。

所有参与用户将其完成的最新的编程代码数据上传到服务器上,由管理用户将所有的编程代码数据进行整合合并,形成一整个开发程序进行发布,最终发布的代码数据即为目标发布版本代码数据。当目标发布版本代码数据发布上线运行成功后,即表示参与用户共同完成了对应的作品子模块的代码开发工作。详细可参见步骤S230的描述。

步骤S480:判断是否与他人编辑版本号冲突。

本步骤中,当不同的参与用户完成其对应的作品子模块内的编程代码数据开发后,并且要将完成的最新的编程代码数据上传到服务器,由于作品是多个参与用户共同创造的,避免不了各个参与用户上传的编程代码数据发生互斥、逻辑冲突的问题,导致程序报错。因此,服务器需要对不同的参与用户上传的最新的编程代码数据之间是否出现逻辑冲突导致报错进行判断。详细可参加步骤S231的描述。

步骤S490:若是,管理用户干预。

如果判断结果显示不同的参与用户上传的最新的编程代码数据之间出现逻辑冲突导致报错的情况,通过管理用户进行人为干预,管理用户通过他的编辑权限,直接从服务器端下载所有参与用户上传的最新的编程代码数据,进行整理合并。详细可参见步骤S232的描述。

步骤S4100:若否,系统自动进行版本号对比更新。

本步骤中,如果判断结果显示不同的参与用户上传的最新的编程代码数据之间没有出现逻辑冲突导致报错的情况,则需要根据编程代码数据对应的版本号信息,确定最新的版本号信息对应的编程代码数据来作为作品的目标发布版本代码数据。详细可参见步骤S233的描述。

综上,本申请提出的作品共创方法,能够解决实施共创作品过程中出现的代码互斥、互锁问题,尤其是应用的编程教学领域,使参与协同创作作品的学员或用户之间能够互相启发、互相学习。在多人协作完成一件作品的开发过程中,各学员或用户之间可以分工协作,最终联动运行到一个作品工程中进行调试,提高了协同创造的工作效率。

图5是本发明一实施例的一种电梯运行状态提醒装置的框图,作品共创装置,包括:获取模块510、确定模块520、输出模块530。

获取模块510,用于获取管理用户触发的作品模块创建需求,作品模块创建需求包括作品名称以及多个不同的作品子模块。

确定模块520,用于根据作品模块创建需求,确定不同参与用户在作品子模块中对应的编程代码数据。

输出模块530,用于接收所有参与用户上传的最新的编程代码数据,并生成作品的目标发布版本代码数据。

上述装置中各个模块的功能和作用的实现过程具体详见上述中对应步骤的实现过程,在此不再赘述。

在本申请所提供的几个实施例中,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号