代码编辑方法、装置与流程

文档序号:26003395发布日期:2021-07-23 21:21阅读:97来源:国知局
代码编辑方法、装置与流程

本申请涉及计算机及云技术领域,具体而言,涉及一种代码编辑方法、装置。



背景技术:

在代码编辑场景中,通常是基于单机上的代码编辑器进行代码编辑,然而,这一代码编辑方案的代码开发效率低,仅仅只适用于简单的代码开发项目,不适用于大型代码开发项目,基于此,如何能够提高代码的开发效率是亟待解决的技术问题。



技术实现要素:

本申请的实施例提供了一种代码编辑方法、装置、计算机程序产品或计算机程序、计算机可读介质及电子设备,进而至少在一定程度上可以提高代码的开发效率。

本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。

根据本申请实施例的一个方面,提供了一种代码编辑方法,所述方法执行于服务侧,所述方法包括:基于代码开发终端发送的身份验证请求,对所述代码开发终端的身份进行验证;在对所述代码开发终端的身份验证通过后,建立与所述代码开发终端的信息传输通道;在所述代码开发终端处于代码编辑状态时,通过所述信息传输通道获取所述代码开发终端中的代码编辑内容;将所述代码编辑内容同步编辑至服务侧代码中与所述代码编辑内容对应的位置。

根据本申请实施例的一个方面,提供了一种代码编辑方法,所述方法执行于代码开发终端,所述方法包括:向服务侧发送针对本地的身份验证请求;在针对本地的身份验证通过后,建立与所述服务侧的信息传输通道;在本地处于代码编辑状态时,将本地的代码编辑内容通过所述信息传输通道发送给所述服务侧,以使得所述服务侧将所述代码编辑内容同步编辑至服务侧代码中与所述代码编辑内容对应的位置。

根据本申请实施例的一个方面,提供了一种代码编辑装置,所述装置设置于服务侧,所述装置包括:验证单元,被用于基于代码开发终端发送的身份验证请求,对所述代码开发终端的身份进行验证;第一建立单元,被用于在对所述代码开发终端的身份验证通过后,建立与所述代码开发终端的信息传输通道;第一获取单元,被用于在所述代码开发终端处于代码编辑状态时,通过所述信息传输通道获取所述代码开发终端中的代码编辑内容;编辑单元,被用于将所述代码编辑内容同步编辑至服务侧代码中与所述代码编辑内容对应的位置。

在本申请的一些实施例中,基于前述方案,所述验证单元配置为:向所述代码开发终端发送由服务侧生成的第一公钥,所述第一公钥用于所述代码开发终端对自身身份验证信息进行加密;获取由代码开发终端发送的身份验证信息加密数据,并通过由服务侧自身的第一私钥对所述身份验证信息加密数据进行解密,得到代码开发终端的身份验证信息;通过所述身份验证信息对所述代码开发终端的身份进行验证。

在本申请的一些实施例中,基于前述方案,所述验证单元配置为:生成原始字符串,并通过由所述代码开发终端生成的第二公钥对所述原始字符串进行加密,得到原始字符串加密数据;将所述原始字符串的加密数据发送给所述代码开发终端;获取由所述代码开发终端发送的验证字符串,所述验证字符串由所述代码开发终端通过自身的第二私钥对所述原始字符串加密数据进行解密得到;通过所述验证字符串对所述代码开发终端的身份进行验证。

在本申请的一些实施例中,基于前述方案,所述装置还包括:第三发送单元,被用于在建立与所述代码开发终端的信息传输通道之后,通过所述信息传输通道将本地的服务侧代码发送至所述代码开发终端,以将所述本地的服务侧代码显示在所述代码开发终端的代码编辑器中。

在本申请的一些实施例中,基于前述方案,所述代码开发终端的数量有多个,所述装置还包括:锁定单元,被用于针对多个代码开发终端中的任意一个代码开发终端的代码编辑内容,在将所述代码编辑内容同步编辑至服务侧代码中与所述代码编辑内容对应的位置时,锁定在服务侧代码中与所述代码编辑内容对应的位置的编辑权限,所述编辑权限用于唯一授权将所述代码编辑内容同步编辑至服务侧代码中与所述代码编辑内容对应的位置。

在本申请的一些实施例中,基于前述方案,所述装置还包括:运行单元,被用于在将所述代码编辑内容同步编辑至服务侧代码中与所述代码编辑内容对应的位置之后,运行经过同步编辑的服务侧代码,以提供本地访问服务;接收单元,被用于接收访问请求,并由所述本地访问服务为所述访问请求提供服务;转发单元,被用于在所述访问请求所涉及的服务不属于所述本地访问服务的服务范围之内时,将所述访问请求通过反向代理服务器转发给第三方服务。

根据本申请实施例的一个方面,提供了一种代码编辑装置,所述装置设置于代码开发终端,所述装置包括:第一发送单元,被用于向服务侧发送针对本地的身份验证请求;第二建立单元,被用于在针对本地的身份验证通过后,建立与所述服务侧的信息传输通道;第二发送单元,被用于在本地处于代码编辑状态时,将本地的代码编辑内容通过所述信息传输通道发送给所述服务侧,以使得所述服务侧将所述代码编辑内容同步编辑至服务侧代码中与所述代码编辑内容对应的位置。

在本申请的一些实施例中,基于前述方案,所述装置还包括:第二获取单元,被用于在本地处于代码编辑状态时,获取本地的代码编辑记录;写入单元,被用于将所述代码编辑记录写入至分布式版本控制系统。

根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中所述的代码编辑方法。

根据本申请实施例的一个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述实施例中所述的代码编辑方法。

根据本申请实施例的一个方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中所述的代码编辑方法。

在本申请的一些实施例所提供的技术方案中,可以基于代码开发终端发送的身份验证请求,对所述代码开发终端的身份进行验证,在对所述代码开发终端的身份验证通过后,建立与所述代码开发终端的信息传输通道,在所述代码开发终端处于代码编辑状态时,通过所述信息传输通道获取所述代码开发终端中的代码编辑内容,将所述代码编辑内容同步编辑至服务侧代码中与所述代码编辑内容对应的位置。由于通过代码开发终端在服务侧实现远程代码开发,服务侧能够提供和满足代码开发过程中所需要的计算资源和存储资源,进而能够提高代码的开发效率。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1示出了可以应用本申请实施例的技术方案的示例性系统架构的示意图;

图2示出了根据本申请一个实施例的代码编辑方法的流程图;

图3示出了根据本申请一个实施例的对所述代码开发终端的身份进行验证的细节流程图;

图4示出了根据本申请一个实施例的代码开发终端与服务侧之间的交互图;

图5示出了根据本申请一个实施例的对所述代码开发终端的身份进行验证的细节流程图;

图6示出了根据本申请一个实施例的代码开发终端与服务侧之间的交互图;

图7示出了根据本申请一个实施例的在将所述代码编辑内容同步编辑至服务侧代码中与所述代码编辑内容对应的位置之后的方法流程图;

图8示出了根据本申请一个实施例的测试代码的架构图;

图9示出了根据本申请一个实施例的代码编辑方法的流程图;

图10示出了根据本申请的一个实施例的代码编辑装置的框图;

图11示出了根据本申请的一个实施例的代码编辑装置的框图;

图12示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。

此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。

附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。

需要说明的是:在本文中提及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

需要注意的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的对象在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在图示或描述的那些以外的顺序实施。

图1示出了可以应用本申请实施例的技术方案的示例性系统架构的示意图。

如图1所示,系统架构可以包括终端设备(如图1中所示智能手机101、平板电脑102和便携式计算机103中的一种或多种)、网络104和服务器105。网络104用以在终端设备和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线通信链路、无线通信链路等等。

在本申请的一个实施例中,代码编辑方案可以是由终端设备和服务器105构成的系统实现,具体的,可以是由终端设备向服务器105发送身份验证请求,在服务器105对所述终端设备的身份验证通过后,服务器105与所述终端设备建立信息传输通道,在建立服务器105与所述终端设备的信息传输通道之后,在终端设备上可以远程显示服务器105中的代码,并在终端设备上对代码进行编辑,服务器105通过所述信息传输通道获取所述终端设备中的代码编辑内容,并将所述代码编辑内容同步编辑至服务器105的代码中与所述代码编辑内容对应的位置。

在本实施例由终端设备和服务器105所构成的系统中,终端设备的数量可以有多个,即可以由多个终端设备实现对服务器105中的代码进行编辑,其好处在于,通过多个终端设备协同开发代码能够大大提高代码开发效率。

在本实施例中,所述代码编辑内容还可以写入至区块链中,利用区块链的不可篡改性,可以很好的保证对代码编辑内容的记录进行留存。

还需要说明的是,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此,本申请在此不做限制。

需要解释的是,如上所述的云计算(cloudcomputing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展。通过建立云计算资源池(简称云平台,一般称为iaas(infrastructureasaservice,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。

在所述服务器为云服务器时,由于云服务器的存储空间大,计算能力强,因此能够提供和满足代码开发过程中所需要的计算资源和存储资源,进而能够提高代码的开发效率。

下面将从不同执行主体的角度,对本申请实施例的技术方案的实现细节进行详细阐述:

从服务侧(例如云服务器)的角度进行阐述:

本实施例提供了一种代码编辑方法,其中,该方法可以执行于服务侧中。

参见图2,示出了根据本申请一个实施例的代码编辑方法的流程图,该代码编辑方法至少包括步骤210至步骤270,详细介绍如下:

在步骤210中,基于代码开发终端发送的身份验证请求,对所述代码开发终端的身份进行验证。

在步骤210的一个实施例中,对所述代码开发终端的身份进行验证,可以按如图3所示的步骤执行。

参见图3,示出了根据本申请一个实施例的对所述代码开发终端的身份进行验证的细节流程图。具体包括步骤211至步骤213:

在步骤211中,向所述代码开发终端发送由服务侧生成的第一公钥,所述第一公钥用于所述代码开发终端对自身身份验证信息进行加密。

在步骤212中,获取由代码开发终端发送的身份验证信息加密数据,并通过由服务侧自身的第一私钥对所述身份验证信息加密数据进行解密,得到代码开发终端的身份验证信息。

在步骤213中,通过所述身份验证信息对所述代码开发终端的身份进行验证。

为了使本领域技术人员更好的理解本实施例,下面将参照图4对本实施例进行说明,如图4,示出了根据本申请一个实施例的代码开发终端与服务侧之间的交互图。

如图4所示,首先由服务侧120生成第一钥对,所述第一钥对包括第一公钥和第一私钥;代码开发终端110向服务侧120请求连接;服务侧120向代码开发终端110发送第一公钥;代码开发终端110在接收到服务侧的第一公钥之后,通过第一公钥对身份验证信息进行加密,得到身份验证信息加密数据,并将所述身份验证信息加密数据发送至服务侧120;服务侧120通过自身的第一私钥对身份验证信息加密数据进行解密,得到身份验证信息(例如账号和验证密码),并通过所述身份验证信息对所述代码开发终端进行验证。

其中,若身份验证信息正确,则服务侧120通过对代码开发终端110的验证,若身份验证信息失败,则服务侧120不通过对代码开发终端110的验证。

通过上述交互方式对所述代码开发终端进行验证,由于代码开发终端的身份验证信息被服务侧的第一公钥进行了加密,因此身份验证信息在传输给服务侧的过程中,可以保证身份验证信息的安全性。

在步骤210的另一个实施例中,对所述代码开发终端的身份进行验证,可以按如图5所示的步骤执行。

参见图5,示出了根据本申请一个实施例的对所述代码开发终端的身份进行验证的细节流程图。具体包括步骤214至步骤217:

在步骤214中,生成原始字符串,并通过由所述代码开发终端生成的第二公钥对所述原始字符串进行加密,得到原始字符串加密数据。

在步骤215中,将所述原始字符串的加密数据发送给所述代码开发终端。

在步骤216中,获取由所述代码开发终端发送的验证字符串,所述验证字符串由所述代码开发终端通过自身的第二私钥对所述原始字符串加密数据进行解密得到。

在步骤217中,通过所述验证字符串对所述代码开发终端的身份进行验证。

为了使本领域技术人员更好的理解本实施例,下面将参照图6对本实施例进行说明,如图6,示出了根据本申请一个实施例的代码开发终端与服务侧之间的交互图。

如图6所示,首先由代码开发终端110生成第二钥对,所述第二钥对包括第二公钥和第二私钥,并将第二公钥发送给服务侧120;

代码开发终端110向服务侧120请求连接;服务侧120在接收到代码开发终端110发送的连接请求之后,生成原始字符串,并通过第二公钥对所述原始字符串进行加密,得到原始字符串加密数据,并将原始字符串加密数据发送给代码开发终端110;代码开发终端110在接收到原始字符串加密数据之后,通过第二私钥对原始字符串加密数据进行解密,得到原始字符串,并将所述原始字符串发送至服务侧120;服务侧120通过从代码开发终端110获取的原始字符串对所述代码开发终端110进行验证。

其中,若从代码开发终端110获取的原始字符串与服务侧120自身生成的原始字符串一致,则服务侧120通过对代码开发终端110的验证,若从代码开发终端110获取的原始字符串与服务侧120自身生成的原始字符串不一致,则服务侧120不通过对代码开发终端110的验证。

通过上述交互方式对所述代码开发终端进行验证,由于在对代码开发终端进行验证的过程中,不涉及代码开发终端的身份验证信息,因此不需要对代码开发终端的身份验证信息进行安全管理,节省了计算机资源,同时,鉴于代码开发终端中第二私钥的唯一性,也能对所述代码开发终端身份验证的准确性。

在步骤210的其它实施例中,对所述代码开发终端的身份进行验证,也可以同时执行如图3和如图5所示步骤的验证方案,其好处在于,通过多种验证方案,可以提高对所述代码开发终端身份验证的准确性和可靠性。

在本申请步骤210的其它实施例中,对所述代码开发终端的身份进行验证,可还以是通过构建安全外壳协议(secureshell,ssh)框架进行实现。

具体的,安全外壳协议可以由代码开发终端和服务侧的软件组成。其中,服务侧是一个守护进程,其通过后台运行并响应来自代码开发终端的连接请求,具体提供了对远程连接的处理,可以包括公共密钥认证、密钥交换、对称密钥加密和非安全连接。

代码开发终端可以包含安全外壳协议程序以及远程拷贝、远程登陆、安全文件传输等其它的应用程序。

安全外壳协议的工作机制大致是本地的代码开发终端发送一个连接请求到远程的服务侧,服务侧检查申请的请求数据包和ip地址再发送密钥给代码开发终端,本地再将密钥发回给服务侧,自此完成验证和连接建立。继续参照图2,在步骤230中,在对所述代码开发终端的身份验证通过后,建立与所述代码开发终端的信息传输通道。

在本申请的一个实施例中,在建立与所述代码开发终端的信息传输通道之后,服务侧可以通过所述信息传输通道将本地的服务侧代码发送至所述代码开发终端,以将所述本地的服务侧代码显示在所述代码开发终端的代码编辑器中。

在本申请中,将所述本地的服务侧代码显示在所述代码开发终端的代码编辑器中,使得代码开发者可以通过代码编辑器对代码数据进行编辑。

当代码开发者在代码编辑器中进行代码编辑时,代码开发终端进入代码编辑状态。

继续参照图2,在步骤250中,在所述代码开发终端处于代码编辑状态时,通过所述信息传输通道获取所述代码开发终端中的代码编辑内容。

在本申请中,服务侧能够通过所述信息传输通道检测到代码开发终端是否处于代码编辑状态,当服务侧检测到所述代码开发终端处于代码编辑状态时,其可以通过所述信息传输通道获取所述代码开发终端中的代码编辑内容。

在本申请中,服务侧在通过所述信息传输通道检测代码开发终端是否处于代码编辑状态的过程中,可以通过向代码开发终端发送心跳包的方式实现检测,其中,心跳包用于触发代码开发终端产生回应。

具体的,服务侧可以定时发送心跳包给代码开发终端,例如,可以间隔几分钟或者几秒钟发送一个固定信息给代码开发终端,代码开发终端收到心跳包后回复一个响应信息,服务侧通过该响应消息可以确定代码开发终端的代码开发状态。

需要说明的是,心跳包实质上是一条探测消息,可以是一个空的数据包。一般来说心跳包都是在逻辑层发送的,通过定时器在一定时间间隔下发送一个心跳包给代码开发终端。在步骤270中,将所述代码编辑内容同步编辑至服务侧代码中与所述代码编辑内容对应的位置。

在本申请中,由于代码开发终端的代码编辑器中的代码与服务侧代码属于相同代码,所以,二者在代码各个位置上的内容是相对应的,例如,相同代码模块上的代码内容是相对应的,还例如,相同代码行的代码内容是相对应的。

因此,服务侧在同步代码的过程中,可以将代码开发终端中的代码编辑内容同步编辑至服务侧代码中与所述代码编辑内容对应的位置,例如,代码开发者在代码开发终端的代码编辑器中修改了第280行的代码,那么服务侧就可以根据该修改内容同步修改服务侧代码中第280行的代码内容。

进一步的,在本申请中,可以是实时将所述代码编辑内容同步编辑至服务侧代码中与所述代码编辑内容对应的位置,也可以是定时将所述代码编辑内容同步编辑至服务侧代码中与所述代码编辑内容对应的位置。

在本申请的一个实施例中,在将所述代码编辑内容同步编辑至服务侧代码中与所述代码编辑内容对应的位置时时,还可以获取服务侧所在本地的代码同步记录,并将所述代码同步记录写入至分布式版本控制系统,以用于其它代码开发终端的代码开发人员浏览所述代码同步记录。

在本申请中,所述代码开发终端的数量可以有多个。

针对多个代码开发终端中的任意一个代码开发终端的代码编辑内容,在将所述代码编辑内容同步编辑至服务侧代码中与所述代码编辑内容对应的位置时,可以锁定在服务侧代码中与所述代码编辑内容对应的位置的编辑权限,所述编辑权限用于唯一授权将所述代码编辑内容同步编辑至服务侧代码中与所述代码编辑内容对应的位置。

例如,包括a、b、c、d、e五个代码开发终端,当代码开发者正在代码开发终端a的代码编辑器中修改第280行的代码时,那么服务侧也就会同步修改服务侧代码中第280行的代码内容,此时,服务侧可以锁定服务侧代码中第280行代码的编辑权限,在该编辑权限下,除了代码开发终端a,代码开发终端b、c、d、e被禁止编辑第280行的代码。

在本申请中,锁定在服务侧代码中与所述代码编辑内容对应位置的编辑权限,其好处在于,可以在多个代码开发终端同时对相同位置的代码进行编辑时,避免出现代码编辑混乱的情况,因此可以保证代码编辑秩序,提高代码开发效率。

在本申请中,在将所述代码编辑内容同步编辑至服务侧代码中与所述代码编辑内容对应的位置之后,可以将同步编辑后的服务侧代码反向同步至与服务侧连接的其它代码开发终端的编辑器,以便于其它代码开发终端的代码开发者能够及时掌握代码变动信息,协调代码开发,提高代码开发效率。

在步骤270之后,即在将所述代码编辑内容同步编辑至服务侧代码中与所述代码编辑内容对应的位置之后,还需要对服务侧代码进行测试。

在本申请中,对服务侧代码的测试,例如,针对网站代码的测试,就可以从性能测试、安全性测试、网站优化测试四个方面进行。

具体的,性能测试包括:连接速度测试,连接速度测试是指用户连接到网站系统的速度;负载测试,负载测试是在某一负载级别下,检测网站系统的实际性能;压力测试,压力测试是测试系统的限制和故障恢复能力,也就是测试网站系统会不会崩溃。

具体的,安全性测试是指对网站的服务器安全,脚本安全进测试,可以包括漏洞测试,攻击性测试,错误性测试。对网站系统的客户服务器应用程序、数据、服务器、网络、防火墙等进行测试。

具体的,网站优化测试是指测试网站系统是否经过搜索引擎优化,网站架构优化、网页的栏目与静态情况等。

在本申请中的一个实施例中,可以执行如图7所示出的步骤,以实现对服务侧代码的测试。

参见图7,示出了根据本申请一个实施例的在将所述代码编辑内容同步编辑至服务侧代码中与所述代码编辑内容对应的位置之后的方法流程图。具体包括步骤281至步骤283:

在步骤281中,运行经过同步编辑的服务侧代码,以提供本地访问服务。

在步骤282中,接收访问请求,并由所述本地访问服务为所述访问请求提供服务。

在步骤283中,在所述访问请求所涉及的服务不属于所述本地访问服务的服务范围之内时,将所述访问请求通过反向代理服务器转发给第三方服务。

为了使本领域技术人员更好的理解本实施例,下面将参照图8对本实施例进行说明,如图8,示出了根据本申请一个实施例的测试代码的架构图。

如图8所示,所述服务侧包括中间代码云服务器802,在各个代码开发终端801对中间代码云服务器802中的服务侧代码进行编辑之后,可以直接将中间代码云服务器802作为测试服务侧代码的测试环境。

在测试过程中,中间代码云服务器802运行经过同步编辑的服务侧代码,以提供本地访问服务,用户访问浏览器803通过智能代理服务器804访问中间代码云服务器802提供的本地访问服务,中间代码云服务器802接收访问请求,并由所述本地访问服务为用户访问浏览器803的访问请求提供服务,在所述访问请求所涉及的服务不属于所述本地访问服务的服务范围之内时,中间代码云服务器802将所述访问请求通过设置在本地的nginx反向代理服务器转发给第三方服务。

在本申请中,为了实现对服务侧代码的测试,直接由服务侧构建测试环境,其好处在于,由于服务侧的存储空间大,计算能力强,直接由服务侧构建测试环境可以增强测试环境的仿真度,提高服务侧代码的测试效率。而将云服务器设置为服务侧,可以是代码开发环境和测试环境更为顺畅、更为便捷、更为智能、更为方便,不易产生内存溢出。

在本申请中,通过多个代码开发终端实现远程在服务侧开发代码,可以协调多方代码开发资源,提高代码开发效率特别是在大型代码开发项目中的代码开发效率。

下面从代码开发终端的角度进行阐述:

本实施例提供了一种代码编辑方法,其中,该方法可以执行于代码开发终端中。

参见图9,示出了根据本申请一个实施例的代码编辑方法的流程图,该代码编辑方法至少包括步骤910至步骤950,详细介绍如下:

在步骤910中,向服务侧发送针对本地的身份验证请求。

在步骤930中,在针对本地的身份验证通过后,建立与所述服务侧的信息传输通道。

在步骤950中,在本地处于代码编辑状态时,将本地的代码编辑内容通过所述信息传输通道发送给所述服务侧,以使得所述服务侧将所述代码编辑内容同步编辑至服务侧代码中与所述代码编辑内容对应的位置。

在本申请的一个实施例中,在代码开发终端(本地)处于代码编辑状态时,还可以获取本地的代码编辑记录,并将所述代码编辑记录写入至分布式版本控制系统。

将所述代码编辑记录写入至分布式版本控制系统的好处在于,可以方便代码开发人员浏览代码的编辑历史,并快捷的跳转至某一个历史代码状态,从而提高代码编辑效率。

在本申请的一个实施例中,在代码开发终端(本地)处于代码编辑状态时,还可以获取经过编辑的代码,并将经过编辑的代码缓存至缓存集群。

将经过编辑的代码缓存至缓存集群的好处在于,可以防止经过编辑的代码在信息传输通道中断时丢失,在信息传输通道接通时,可以缓存至缓存集群的经过编辑的代码重新发送给所述服务侧。

在本申请上述实施例的技术方案中,由于通过代码开发终端在服务侧实现远程代码开发,服务侧能够提供和满足代码开发过程中所需要的计算资源和存储资源,进而能够提高代码的开发效率。

以下介绍本申请的装置实施例,可以用于执行本申请上述实施例中的代码编辑方法。对于本申请装置实施例中未披露的细节,请参照本申请上述的代码编辑方法的实施例。

图10示出了根据本申请的一个实施例的代码编辑装置的框图。

参照图10所示,根据本申请的一个实施例的代码编辑装置1000,所述装置设置于服务侧,所述装置包括:验证单元1001、第一建立单元1002、第一获取单元1003和编辑单元1004。

其中,验证单元1001,被用于基于代码开发终端发送的身份验证请求,对所述代码开发终端的身份进行验证;第一建立单元1002,被用于在对所述代码开发终端的身份验证通过后,建立与所述代码开发终端的信息传输通道;第一获取单元1003,被用于在所述代码开发终端处于代码编辑状态时,通过所述信息传输通道获取所述代码开发终端中的代码编辑内容;编辑单元1004,被用于将所述代码编辑内容同步编辑至服务侧代码中与所述代码编辑内容对应的位置。

在本申请的一些实施例中,基于前述方案,所述验证单元1001配置为:向所述代码开发终端发送由服务侧生成的第一公钥,所述第一公钥用于所述代码开发终端对自身身份验证信息进行加密;获取由代码开发终端发送的身份验证信息加密数据,并通过由服务侧自身的第一私钥对所述身份验证信息加密数据进行解密,得到代码开发终端的身份验证信息;通过所述身份验证信息对所述代码开发终端的身份进行验证。

在本申请的一些实施例中,基于前述方案,所述验证单元1001配置为:生成原始字符串,并通过由所述代码开发终端生成的第二公钥对所述原始字符串进行加密,得到原始字符串加密数据;将所述原始字符串的加密数据发送给所述代码开发终端;获取由所述代码开发终端发送的验证字符串,所述验证字符串由所述代码开发终端通过自身的第二私钥对所述原始字符串加密数据进行解密得到;通过所述验证字符串对所述代码开发终端的身份进行验证。

在本申请的一些实施例中,基于前述方案,所述装置还包括:第三发送单元,被用于在建立与所述代码开发终端的信息传输通道之后,通过所述信息传输通道将本地的服务侧代码发送至所述代码开发终端,以将所述本地的服务侧代码显示在所述代码开发终端的代码编辑器中。

在本申请的一些实施例中,基于前述方案,所述代码开发终端的数量有多个,所述装置还包括:锁定单元,被用于针对多个代码开发终端中的任意一个代码开发终端的代码编辑内容,在将所述代码编辑内容同步编辑至服务侧代码中与所述代码编辑内容对应的位置时,锁定在服务侧代码中与所述代码编辑内容对应的位置的编辑权限,所述编辑权限用于唯一授权将所述代码编辑内容同步编辑至服务侧代码中与所述代码编辑内容对应的位置。

在本申请的一些实施例中,基于前述方案,所述装置还包括:运行单元,被用于在将所述代码编辑内容同步编辑至服务侧代码中与所述代码编辑内容对应的位置之后,运行经过同步编辑的服务侧代码,以提供本地访问服务;接收单元,被用于接收访问请求,并由所述本地访问服务为所述访问请求提供服务;转发单元,被用于在所述访问请求所涉及的服务不属于所述本地访问服务的服务范围之内时,将所述访问请求通过反向代理服务器转发给第三方服务。

图11示出了根据本申请的一个实施例的代码编辑装置的框图。

参照图11所示,根据本申请的一个实施例的代码编辑装置1100,所述装置设置于代码开发终端,所述装置包括:第一发送单元1101、第二建立单元1102和第二发送单元1103。

其中,第一发送单元1101,被用于向服务侧发送针对本地的身份验证请求;第二建立单元1102,被用于在针对本地的身份验证通过后,建立与所述服务侧的信息传输通道;第二发送单元1103,被用于在本地处于代码编辑状态时,将本地的代码编辑内容通过所述信息传输通道发送给所述服务侧,以使得所述服务侧将所述代码编辑内容同步编辑至服务侧代码中与所述代码编辑内容对应的位置。

在本申请的一些实施例中,基于前述方案,所述装置还包括:第二获取单元,被用于在本地处于代码编辑状态时,获取本地的代码编辑记录;写入单元,被用于将所述代码编辑记录写入至分布式版本控制系统。

图12示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。

需要说明的是,图12示出的电子设备的计算机系统1200仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

如图12所示,计算机系统1200包括中央处理单元(centralprocessingunit,cpu)1201,其可以根据存储在只读存储器(read-onlymemory,rom)1202中的程序或者从储存部分1208加载到随机访问存储器(randomaccessmemory,ram)1203中的程序而执行各种适当的动作和处理,例如执行上述实施例中所述的方法。在ram1203中,还存储有系统操作所需的各种程序和数据。cpu1201、rom1202以及ram1203通过总线1204彼此相连。输入/输出(input/output,i/o)接口1205也连接至总线1204。

以下部件连接至i/o接口1205:包括键盘、鼠标等的输入部分1206;包括诸如阴极射线管(cathoderaytube,crt)、液晶显示器(liquidcrystaldisplay,lcd)等以及扬声器等的输出部分1207;包括硬盘等的储存部分1208;以及包括诸如lan(localareanetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1209。通信部分1209经由诸如因特网的网络执行通信处理。驱动器1210也根据需要连接至i/o接口1205。可拆卸介质1211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1210上,以便于从其上读出的计算机程序根据需要被安装入储存部分1208。

特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1209从网络上被下载和安装,和/或从可拆卸介质1211被安装。在该计算机程序被中央处理单元(cpu)1201执行时,执行本申请的系统中限定的各种功能。

需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(erasableprogrammablereadonlymemory,eprom)、闪存、光纤、便携式紧凑磁盘只读存储器(compactdiscread-onlymemory,cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。

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

描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。

作为另一方面,本申请还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中所述的代码编辑方法。

作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的代码编辑方法。

应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本申请实施方式的方法。

本领域技术人员在考虑说明书及实践这里公开的实施方式后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。

应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

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