WO2016192174A1 - 基于互联网的实时多人计算机程序开发调试***与方法 - Google Patents

基于互联网的实时多人计算机程序开发调试***与方法 Download PDF

Info

Publication number
WO2016192174A1
WO2016192174A1 PCT/CN2015/083670 CN2015083670W WO2016192174A1 WO 2016192174 A1 WO2016192174 A1 WO 2016192174A1 CN 2015083670 W CN2015083670 W CN 2015083670W WO 2016192174 A1 WO2016192174 A1 WO 2016192174A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
user
real
synchronization
time
Prior art date
Application number
PCT/CN2015/083670
Other languages
English (en)
French (fr)
Inventor
俞昊然
徐文瑞
Original Assignee
北京矩道优达网络科技有限公司
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 北京矩道优达网络科技有限公司 filed Critical 北京矩道优达网络科技有限公司
Publication of WO2016192174A1 publication Critical patent/WO2016192174A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs

Definitions

  • the invention relates to the technical field of communication, computer program design, computer code design and human-computer interaction, and particularly relates to a system and method for allowing people to develop and debug online computer programs based on the Internet.
  • the object of the present invention is to provide a system and method for real-time multi-person computer program development and debugging, thereby allowing a multi-bit program writer (software developer) to complete code writing, debugging, and real-time synchronization under the condition of Internet connectivity.
  • a multi-bit program writer software developer
  • a system for developing and debugging a real-time multi-person computer program based on the Internet comprising:
  • File and code real-time synchronization subsystem for synchronizing file tree structure and code text information
  • Debug information real-time synchronization subsystem for synchronizing debugging information of the program
  • the real-time behavior tracking and synchronization subsystem is configured to receive behavior information of the user generated by the three subsystems, and synchronize the received behavior information of the user to the server.
  • the development environment real-time synchronization subsystem includes an editor style setting information synchronization module, an editor function preference setting information synchronization module, and a compilation environment setting information synchronization module, which are respectively described as follows:
  • a) editor style setting information synchronization module the user can select a preset editor style, and modify some of the styles, when the user saves the settings, the user's operation behavior information is sent to the real-time
  • the behavior tracking and synchronization subsystem updates the information stored on the server by the real-time behavior tracking and synchronization subsystem.
  • the editor style setting information synchronization module saves the editor style setting information of each user separately, and does not synchronize to all users.
  • Editor function preference setting information synchronization module the user can personally modify the editor's function preferences.
  • the user's operation behavior information is sent to the real-time behavior tracking and synchronization subsystem.
  • the real-time behavior tracking and synchronization subsystem updates the information stored on the server.
  • the editor function preference information synchronization module separately saves each user's editor function preference information without synchronizing to all users.
  • Compilation environment setting information synchronization module The user can select a pre-configured compilation environment and modify some of the settings. When the user saves the settings, the user's operation behavior information is sent to the real-time behavior tracking. With the synchronization subsystem, the information stored on the server is updated by the real-time behavior tracking and synchronization subsystem.
  • the compilation environment setting information synchronization module needs to synchronize the compilation environment setting information of all users. When a new user joins the project, the compilation environment setting information synchronization module sends the latest version information on the server to him.
  • the file and code real-time synchronization subsystem includes a file directory information synchronization module, a code text information synchronization module, and a cursor behavior information synchronization module, which are respectively described as follows:
  • a) file directory information synchronization module receiving user operation information on the file directory, when the user performs a new file or directory, modify the file or directory, delete the file or directory, etc., the user's operation behavior information is sent to the real-time Behavior tracking and synchronization subsystem.
  • the file directory information synchronization module obtains the user's project file directory structure saved on the server through the real-time behavior tracking and synchronization subsystem, and presents the user in the form of a directory tree.
  • the version saved on the server is automatically synchronized to the user local; when the user changes the local file directory structure, the user's operation is performed.
  • Information is sent to the real-time behavior tracking and synchronization subsystem.
  • the time behavior tracking and synchronization subsystem updates the information stored on the server.
  • the file directory information synchronization module needs to synchronize the file directory information of all users. When a new user joins the project, the file directory information synchronization module sends the latest version information on the server to him.
  • code text information synchronization module receiving the user's operation information on the code text, when the user inserts the text, deletes the text, modifies the text, moves the text, etc., the user's operation behavior information is sent to the real-time behavior tracking and Synchronization subsystem.
  • the code text information synchronization module obtains the content of the user's project code file saved on the server through the real-time behavior tracking and synchronization subsystem, and displays the content in the text area for the user.
  • the version of the file saved on the server is newer than the user's local
  • the version of the file saved on the server is automatically synchronized to the user's local; when the user changes the content of the local file, the user's operation is performed.
  • the information is sent to the real-time behavior tracking and synchronization subsystem, and the version of the file saved on the server is updated by the real-time behavior tracking and synchronization subsystem.
  • the code text information synchronization module synchronizes the file version on the server to the user local, when the changed content of the server version is not in the same position as the local change content of the user, the code text information is merged at the same time, while retaining Changes to both parties.
  • the code text information synchronization module synchronizes the file version on the server to the user local, when the content change of the server version is in the same position as the local change content of the user, there may be a conflict with the user local code text information. In this case, the user will be allowed to manually resolve the conflict.
  • the code text information synchronization module needs to synchronize the code text information of all users. When a new user joins the project, the code text information synchronization module will send the latest version information on the server to him.
  • cursor behavior information synchronization module receiving operation information generated by the user's cursor behavior, and transmitting the user's operation behavior information to the real-time behavior tracking and synchronization subsystem.
  • the cursor behavior information synchronization module acquires the cursor position of other online users saved on the server through the real-time behavior tracking and synchronization subsystem, and displays the text in the text area for the user.
  • the cursor position of other online users saved on the server is newer than the user local, the cursor position saved on the server is automatically synchronized to the user local; when the user positions the cursor in the local file content
  • the user's cursor position information is sent to the real-time behavior tracking and synchronization subsystem, and the cursor position information saved on the server is updated by the real-time behavior tracking and synchronization subsystem.
  • the cursor behavior information synchronization module receives the operation of modifying the document by the server, the local cursor of the user needs to perform corresponding processing: for the insertion operation, if a character is inserted after the cursor, the cursor moves backward, if a character is inserted before the cursor, The cursor does not change; for the delete operation, if the cursor is behind the deleted character, the cursor moves forward. If the cursor is before the deleted character, the cursor does not change; for the selected text operation, the selected two cursors are selected, and then selected The content between the two cursors.
  • the cursor behavior information synchronization module receives the information of other online users, it will judge its modification time. For the cursor that has not performed any operation for a long time, the cursor will be cleared and not displayed to the user.
  • the cursor behavior information synchronization module needs to synchronize the cursor behavior information of all users. When a new user joins the project, the cursor behavior information synchronization module will send the latest version information on the server to him.
  • the debugging information real-time synchronization subsystem includes a debugging information synchronization module, and the debugging information synchronization module receives debugging information generated by the user to debug the project code, and sends the debugging information to the real-time behavior tracking and synchronization subsystem.
  • the debug information synchronization module obtains the debug information saved on the server through the real-time behavior tracking and synchronization subsystem, and presents it to the user.
  • the debugging information of other online users is saved on the server, all the current user's operation behaviors on the current project are prohibited, and the debugging information saved on the server is synchronized to the user local; when the user performs the local project During debugging, the user's debugging information is sent to the real-time behavior tracking and synchronization subsystem, and the real-time behavior tracking and synchronization subsystem updates the debugging information on the server.
  • the user debugs the project other online users will be prohibited from performing any operations on the project.
  • the debug information synchronization module needs to synchronize the debugging information of all users. When a new user joins the project, the debug information synchronization module sends the latest version information on the server to him.
  • the real-time behavior tracking and synchronization subsystem includes a development environment tracking and synchronization module, a file directory information tracking and synchronization module, a code text information tracking and synchronization module, a cursor behavior information tracking and synchronization module, a debugging information tracking and a synchronization module. , respectively, as follows:
  • a file directory information tracking and synchronization module receiving operation information about the file directory from the file and code real-time synchronization subsystem, and after synchronizing to the server, returning the information on the server to the file and code real-time synchronization subsystem;
  • code text information tracking and synchronization module receiving operation information about the code text from the file and code real-time synchronization subsystem, after synchronizing to the server, returning the information on the server to the file and code real-time synchronization subsystem;
  • cursor behavior information tracking and synchronization module receiving operation information about the cursor behavior from the file and code real-time synchronization subsystem, after synchronizing to the server, returning the information on the server to the file and code real-time synchronization subsystem;
  • Debug information tracking and synchronization module receiving operation information from the real-time synchronization subsystem of the debugging information, and after synchronizing to the server, returning the information on the server to the real-time synchronization subsystem of the debugging information.
  • a real-time synchronization mechanism between development environments of multiple software developers sending information from the real-time synchronization subsystem of the development environment to the real-time behavior tracking and synchronization subsystem for synchronization;
  • Real-time synchronization mechanism between files and code among multiple software developers sending information from the file and code real-time synchronization subsystem to the real-time behavior tracking and synchronization subsystem for synchronization;
  • the real-time synchronization mechanism of debugging information between multiple software developers the information is sent from the real-time synchronization subsystem of the debugging information to the real-time behavior tracking and synchronization subsystem for synchronization;
  • the real-time behavior tracking and synchronization subsystem receives the information from each of the above subsystems, synchronizes on the server, and sends the synchronized information back to the respective subsystems.
  • step 1 includes the following sub-steps: synchronization editor style setting information, synchronization editor function preference setting information, and synchronization compilation environment setting information.
  • step 2 includes the following sub-steps: synchronizing file directory information, synchronization code text information, and synchronization cursor behavior information.
  • step 3 the following sub-steps are included: synchronous debugging information.
  • step 4 includes the following sub-steps: synchronizing the editor style setting information, the editor function preference setting information, the compiling environment setting information, the file directory information, the code text information, the cursor behavior information, and the debugging information to the server.
  • the invention solves the real-time synchronization of the system development environment, the real-time synchronization of the file and the code, the real-time synchronization of the debugging information, the real-time tracking and synchronization of the behavior, and solves the problem that the writers of the multiple programs (software developers) are connected under the Internet.
  • Real-time synchronization completes several types of work such as code writing, debugging, and testing, and comprehensive software engineering R&D activities that combine these tasks.
  • the invention can make real-time online teaching possible, and the course instructor can let the course learners see the real-time synchronized program through the program writing manner, thereby completing the learning; at the same time, real-time online collaborative development, real-time online interactive programming interview and the like are also As a result, the complete solution of the technology becomes more efficient.
  • Multiple developers can simultaneously operate an engineering project and achieve real-time synchronization.
  • the interviewer and the interviewee can also have a clearer understanding of each other in a similar way.
  • FIG. 1 is a flowchart of a method for developing and debugging an Internet-based real-time multi-person computer program according to an embodiment of the present invention
  • FIG. 2 is a schematic diagram of a real-time synchronization process of a development environment according to an embodiment of the present invention
  • FIG. 3 is a schematic diagram of a real-time synchronization process between a file and a code according to an embodiment of the present invention
  • FIG. 4 is a schematic diagram of a real-time synchronization process of debug information according to an embodiment of the present invention.
  • FIG. 5 is a schematic diagram of a real-time behavior tracking and synchronization process according to an embodiment of the present invention.
  • FIG. 1 is a flow chart of a method for developing and debugging an Internet-based real-time multi-person computer program according to an embodiment of the present invention. As shown in FIG. 1, the embodiment mainly includes the following steps:
  • step 11 the system determines the user's network status. If the user is offline, the user is reminded that the user is currently offline, and the user's modification is saved locally, and the synchronization operation cannot be performed;
  • Step 12 The system determines whether a user modifies the development environment setting information, and if so, performs a real-time synchronization process of the development environment;
  • Step 13 the system determines whether there is a user operating a cursor, an operation code text, an operation file directory, and if so, performing a real-time synchronization process between the file and the code;
  • step 14 the system determines whether a user debugs the project code, and if so, performs a real-time synchronization process of the debug information.
  • FIG. 2 is a schematic diagram of a real-time synchronization process of a development environment according to an embodiment of the present invention. As shown in FIG. 2, the embodiment mainly includes the following steps:
  • Step 21 The system determines whether the local information of the user is the latest information, and if not, updates the local version of the user to the latest version on the server;
  • Step 22 The user performs an operation of modifying development environment setting information
  • Step 23 The system responds to operations performed by the user
  • Step 24 The system sends the user operation information to the real-time behavior tracking and synchronization subsystem
  • Step 25 the system receives information returned from the real-time behavior tracking and synchronization subsystem
  • step 26 the system updates the development environment setting information of all online users.
  • FIG. 3 is a schematic diagram of a real-time synchronization process of files and codes according to an embodiment of the present invention. As shown in FIG. 3, this embodiment mainly includes the following steps:
  • Step 31 The system determines whether the local information of the user is the latest information, and if not, updates the local version of the user to the latest version on the server;
  • Step 32 The user performs an operation cursor, an operation code file, and an operation text directory
  • Step 33 The system responds to operations performed by the user
  • Step 34 The system sends the operation information of the user to the real-time behavior tracking and synchronization subsystem;
  • Step 35 The system receives information returned from the real-time behavior tracking and synchronization subsystem
  • step 36 the system updates the file and code information of all online users.
  • FIG. 4 is a schematic diagram of a real-time synchronization process of debug information according to an embodiment of the present invention. As shown in FIG. 4, this embodiment mainly includes the following steps:
  • Step 41 The user performs a debugging operation on the project code.
  • Step 42 The system locks the project codes of all other online users
  • Step 43 the system responds to operations performed by the user
  • Step 44 The system sends the operation information of the user to the real-time behavior tracking and synchronization subsystem;
  • Step 45 The system receives information returned from the real-time behavior tracking and synchronization subsystem
  • step 46 the system updates the debugging information of all online users.
  • FIG. 5 is a schematic diagram of a real-time behavior tracking and synchronization process according to an embodiment of the present invention. As shown in FIG. 5, this embodiment mainly includes the following steps:
  • Step 51 the system receives information from other subsystems
  • Step 52 the system updates the server version to the latest version received
  • step 53 the system sends the information synchronized by the server back to the atomic system.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

一种基于互联网的实时多人计算机程序开发调试***与方法。该***包括:开发环境实时同步子***,用于同步编辑器与编译环境相关的设置信息;文件与代码实时同步子***,用于同步文件树结构与代码文本信息;调试信息实时同步子***,用于同步程序的调试信息;实时行为追踪与同步子***,用于接收上述三个子***产生的使用者的行为信息,并将接收到的使用者的行为信息同步到服务器。该***和方法能够使多位程序的编写者在互联网连通的条件下,实时同步完成代码编写、调试、测试过程等工作及实现结合这些工作的综合性软件工程开发。

Description

基于互联网的实时多人计算机程序开发调试***与方法 技术领域
本发明涉及通信、计算机程序设计、计算机代码设计和人机交互的技术领域,具体涉及一种允许人们基于互联网进行在线的计算机程序开发与调试的***与方法。
背景技术
随着信息技术、互联网技术的快速发展,人们对于计算机程序开发的需求也不断增大。人们在进行计算机软件程序开发时,除了单人独立开发外,也经常对结对编程、多人协作编程有一定的要求。传统情况下,人们只能通过共同使用一台计算机同步开发或使用多台计算机分时间轮流开发,极大的限制了多人同时进行高效的计算机程序开发的可能性。
实时在线教学、实时在线协作开发、实时在线互动编程面试等需求在近几年越来越强烈。实时多人计算机程序开发调试对于包括但不限于以上场景的诸多实际应用场景,均有直接的技术支撑作用。因此,一个基于互联网在线实时多人计算机程序开发调试的技术方案及其***的实现显得格外的迫切。
基于互联网的在线实时多人计算机程序开发调试的技术将使得实时在线教学成为可能,课程传授者可以通过程序编写的方式,让课程学习者看到实时同步的程序,进而完成学习;同时,实时在线协作开发、实时在线互动编程面试等场景也因此项技术的完整方案变得更为高效,多位开发者可以同时操作一个工程项目并实现实时同步,面试者和被面试者也可以通过类似的方式对彼此有一个更明确的了解。因而,这一技术方案与***的提出是有非常重要的意义的。
发明内容
本发明的目的是,提供一种实时多人计算机程序开发调试的***与方法,从而允许多位程序的编写者(软件的开发者)在互联网连通的条件下,实时同步完成代码编写、调试、测试过程等几类工作及结合以上这几项工作的综合性软件工程开发。
本发明的目的是通过以下技术方案实现的:
一种基于互联网的实时多人计算机程序开发调试的***,该***包括:
开发环境实时同步子***,用于同步编辑器与编译环境相关的设置信息;
文件与代码实时同步子***,用于同步文件树结构与代码文本信息;
调试信息实时同步子***,用于同步程序的调试信息;
实时行为追踪与同步子***,用于接收上述三个子***产生的使用者的行为信息,并将接收到的使用者的行为信息同步到服务器。
进一步地,所述开发环境实时同步子***包括编辑器样式设置信息同步模块、编辑器功能偏好设置信息同步模块和编译环境设置信息同步模块,分别说明如下:
a)编辑器样式设置信息同步模块:使用者可以选择一个预先设定好的编辑器样式,并对其中的部分样式进行修改,当使用者保存设置后,将使用者的操作行为信息发送给实时行为追踪与同步子***,由实时行为追踪与同步子***更新服务器上保存的信息。
该编辑器样式设置信息同步模块会对每一名使用者的编辑器样式设置信息单独进行保存,而不同步给所有的使用者。
b)编辑器功能偏好设置信息同步模块:使用者可以对编辑器的功能偏好进行个性化修改,当使用者保存设置后,将使用者的操作行为信息发送给实时行为追踪与同步子***,由实时行为追踪与同步子***更新服务器上保存的信息。
该编辑器功能偏好设置信息同步模块会对每一名使用者的编辑器功能偏好设置信息单独进行保存,而不同步给所有的使用者。
c)编译环境设置信息同步模块:使用者可以选择一个预先设定好的编译环境,并对其中的部分设置进行修改,当使用者保存设置后,将使用者的操作行为信息发送给实时行为追踪与同步子***,由实时行为追踪与同步子***更新服务器上保存的信息。
该编译环境设置信息同步模块需要对所有使用者的编译环境设置信息进行同步,当一个新的使用者加入到项目时,编译环境设置信息同步模块会将服务器上的最新版本信息发送给他。
进一步地,所述文件与代码实时同步子***包括文件目录信息同步模块、代码文本信息同步模块和光标行为信息同步模块,分别说明如下:
a)文件目录信息同步模块:接收使用者对文件目录的操作信息,当使用者进行新建文件或目录、修改文件或目录、删除文件或目录等操作后,将使用者的操作行为信息发送给实时行为追踪与同步子***。
该文件目录信息同步模块会通过实时行为追踪与同步子***获取服务器上保存的使用者的项目文件目录结构,并以目录树的形式为使用者展示。当服务器上保存的信息版本比使用者本地的新时,就会自动将服务器上保存的版本同步到使用者本地;当使用者对本地的文件目录结构进行改动时,则会将使用者的操作信息发送给实时行为追踪与同步子***,由实 时行为追踪与同步子***更新服务器上保存的信息。当使用者删除一个文件或目录时,如果有其他的在线的使用者正在使用那个文件或目录下的文件,则删除失败,并被告知该文件或目录正在被使用。
该文件目录信息同步模块需要对所有使用者的文件目录信息进行同步,当一个新的使用者加入到项目时,文件目录信息同步模块会将服务器上的最新版本信息发送给他。
b)代码文本信息同步模块:接收使用者对代码文本的操作信息,当使用者进行***文本、删除文本、修改文本、移动文本等操作后,将使用者的操作行为信息发送给实时行为追踪与同步子***。
该代码文本信息同步模块会通过实时行为追踪与同步子***获取服务器上保存的使用者的项目代码文件内容,并为使用者在文本区域内展示。当服务器上保存的文件版本比使用者本地的新时,就会自动将服务器上保存的文件版本同步到使用者本地;当使用者对本地的文件内容进行改动时,则会将使用者的操作信息发送给实时行为追踪与同步子***,由实时行为追踪与同步子***更新服务器上保存的文件版本。
该代码文本信息同步模块将服务器上的文件版本同步到使用者本地时,当服务器版本的改动内容与使用者本地的改动内容不处于同一位置时,此时会对代码文本信息进行合并,同时保留两方的改动。
该代码文本信息同步模块将服务器上的文件版本同步到使用者本地时,当服务器版本的改动内容与使用者本地的改动内容处于同一位置时,可能会出现与使用者本地代码文本信息有所冲突的情况,此时会让使用者来手动解决冲突。
该代码文本信息同步模块需要对所有使用者的代码文本信息进行同步,当一个新的使用者加入到项目时,代码文本信息同步模块会将服务器上的最新版本信息发送给他。
c)光标行为信息同步模块:接收使用者的光标行为产生的操作信息,将使用者的操作行为信息发送给实时行为追踪与同步子***。
该光标行为信息同步模块会通过实时行为追踪与同步子***获取服务器上保存的其他的在线的使用者的光标位置,并为使用者在文本区域内展示。当服务器上保存的其他的在线的使用者的光标位置比使用者本地的新时,就会自动将服务器上保存的光标位置同步到使用者本地;当使用者对本地的文件内容中的光标位置进行改动时,则会将使用者的光标位置信息发送给实时行为追踪与同步子***,由实时行为追踪与同步子***更新服务器上保存的光标位置信息。
在代码文本信息的同步过程中,需要着重处理光标行为信息的同步。当光标行为信息同步模块接收到服务器修改文档的操作后,使用者本地的光标需要进行相应的处理:对于***操作,如果在光标之后***字符,则光标后移,如果在光标之前***字符,则光标不变;对于删除操作,如果光标在删除的字符之后,则光标前移,如果光标在删除的字符之前,则光标不变;对于选中文本的操作,将选中看为两个光标,然后选中两个光标之间的内容。当光标行为信息同步模块接收到其他的在线的使用者的信息后,会判断它的修改时间,对于长时间没有进行任何操作的光标将会被清除,不展示给使用者。
该光标行为信息同步模块需要对所有使用者的光标行为信息进行同步,当一个新的使用者加入到项目时,光标行为信息同步模块会将服务器上的最新版本信息发送给他。
进一步地,所述调试信息实时同步子***包括调试信息同步模块,该调试信息同步模块接收使用者对项目代码进行调试所产生的调试信息,发送给实时行为追踪与同步子***。
该调试信息同步模块会通过实时行为追踪与同步子***获取服务器上保存的调试信息,并为使用者展示。当服务器上保存有其他的在线的使用者的调试信息时,就会禁止当前用户对当前项目的所有操作行为,并将服务器上保存的调试信息同步到使用者本地;当使用者对本地项目进行调试时,则会将使用者的调试信息发送给实时行为追踪与同步子***,由实时行为追踪与同步子***更新服务器上的调试信息。当使用者对项目进行调试操作时,其他的在线的使用者将会被禁止对项目进行任何操作。
该调试信息同步模块需要对所有使用者的调试信息进行同步,当一个新的使用者加入到项目时,调试信息同步模块会将服务器上的最新版本信息发送给他。
进一步地,所述实时行为追踪与同步子***包括开发环境追踪和同步模块、文件目录信息追踪和同步模块、代码文本信息追踪和同步模块、光标行为信息追踪和同步模块、调试信息追踪和同步模块,分别说明如下:
a)开发环境追踪和同步模块,接收来自开发环境实时同步子***的操作信息,同步到服务器后,将服务器上的信息返回给开发环境实时同步子***;
b)文件目录信息追踪和同步模块,接收来自文件与代码实时同步子***的关于文件目录的操作信息,同步到服务器后,将服务器上的信息返回给文件与代码实时同步子***;
c)代码文本信息追踪和同步模块,接收来自文件与代码实时同步子***的关于代码文本的操作信息,同步到服务器后,将服务器上的信息返回给文件与代码实时同步子***;
d)光标行为信息追踪和同步模块,接收来自文件与代码实时同步子***的关于光标行为的操作信息,同步到服务器后,将服务器上的信息返回给文件与代码实时同步子***;
e)调试信息追踪和同步模块,接收来自调试信息实时同步子***的操作信息,同步到服务器后,将服务器上的信息返回给调试信息实时同步子***。
一种采用上述***的基于互联网的实时多人计算机程序开发调试方法,其步骤包括:
1.多名软件开发者之间开发环境的实时同步机制,将信息由开发环境实时同步子***发送给实时行为追踪与同步子***进行同步;
2.多名软件开发者之间文件与代码的实时同步机制,将信息由文件与代码实时同步子***发送给实时行为追踪与同步子***进行同步;
3.多名软件开发者之间调试信息的实时同步机制,将信息由调试信息实时同步子***发送给实时行为追踪与同步子***进行同步;
4.实时行为追踪与同步子***接收来自上述各子***的信息,在服务器上进行同步,将同步后的信息发送回相应的各个子***。
进一步地,步骤1中包含如下子步骤:同步编辑器样式设置信息、同步编辑器功能偏好设置信息、同步编译环境设置信息。
进一步地,步骤2中包含如下子步骤:同步文件目录信息、同步代码文本信息、同步光标行为信息。
进一步地,步骤3中包含如下子步骤:同步调试信息。
进一步地,步骤4中包含如下子步骤:将编辑器样式设置信息、编辑器功能偏好设置信息、编译环境设置信息、文件目录信息、代码文本信息、光标行为信息、调试信息同步到服务器。
与现有技术相比,本发明的有益效果如下:
本发明通过***开发环境的实时同步、文件与代码的实时同步、调试信息的实时同步、行为的实时追踪与同步,解决了多位程序的编写者(软件的开发者)在互联网连通的条件下,实时同步完成代码编写、调试、测试过程等几类工作及结合以上这几项工作的综合性软件工程研发活动。本发明能够使实时在线教学成为可能,课程传授者可以通过程序编写的方式,让课程学习者看到实时同步的程序,进而完成学习;同时,实时在线协作开发、实时在线互动编程面试等场景也因此项技术的完整方案变得更为高效,多位开发者可以同时操作一个工程项目并实现实时同步,面试者和被面试者也可以通过类似的方式对彼此有一个更明确的了解。
附图说明
图1为本发明的一个实施例的基于互联网的实时多人计算机程序开发调试方法的流程图;
图2为本发明的一个实施例的开发环境实时同步过程的示意图;
图3为本发明的一个实施例的文件与代码实时同步过程的示意图;
图4为本发明的一个实施例的调试信息实时同步过程的示意图;
图5为本发明的一个实施例的实时行为追踪与同步过程的示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面通过具体实施例和附图,对本发明做进一步说明。
图1为本发明的一个实施例的基于互联网的实时多人计算机程序开发调试方法的流程图。如图1所示,该实施例主要包括以下步骤:
步骤11,***判断使用者的网络状况,若使用者离线,则提醒使用者当前为离线状态,使用者的修改保存在本地,无法进行同步操作;
步骤12,***判断是否有使用者修改开发环境设置信息,若是,则进行开发环境实时同步过程;
步骤13,***判断是否有使用者操作光标、操作代码文本、操作文件目录,若是,则进行文件与代码实时同步过程;
步骤14,***判断是否有使用者对项目代码进行调试,若是,则进行调试信息实时同步过程。
图2为本发明的一个实施例的开发环境实时同步过程的示意图。如图2所示,该实施例主要包括以下步骤:
步骤21,***判断使用者本地信息是否为最新信息,若不是,则将使用者本地版本更新为服务器上的最新版本;
步骤22,使用者进行修改开发环境设置信息的操作;
步骤23,***响应使用者进行的操作;
步骤24,***将使用者的操作信息发送给实时行为追踪与同步子***;
步骤25,***接收来自实时行为追踪与同步子***返回的信息;
步骤26,***更新所有在线的使用者的开发环境设置信息。
图3为本发明的一个实施例的文件与代码实时同步过程的示意图。如图3所示,该实施例主要包括以下步骤:
步骤31,***判断使用者本地信息是否为最新信息,若不是,则将使用者本地版本更新为服务器上的最新版本;
步骤32,使用者进行操作光标、操作代码文件、操作文本目录;
步骤33,***响应使用者进行的操作;
步骤34,***将使用者的操作信息发送给实时行为追踪与同步子***;
步骤35,***接收来自实时行为追踪与同步子***返回的信息;
步骤36,***更新所有在线的使用者的文件与代码信息。
图4为本发明的一个实施例的调试信息实时同步过程的示意图。如图4所示,该实施例主要包括以下步骤:
步骤41,使用者对项目代码进行调试操作;
步骤42,***锁定所有其他的在线的使用者的项目代码;
步骤43,***响应使用者进行的操作;
步骤44,***将使用者的操作信息发送给实时行为追踪与同步子***;
步骤45,***接收来自实时行为追踪与同步子***返回的信息;
步骤46,***更新所有在线的使用者的调试信息。
图5为本发明的一个实施例的实时行为追踪与同步过程的示意图。如图5所示,该实施例主要包括以下步骤:
步骤51,***接收到来自其他子***的信息;
步骤52,***将服务器版本更新为接收到的最新的版本;
步骤53,***将服务器同步后的信息发送回给原子***。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求所述为准。

Claims (12)

  1. 一种基于互联网的实时多人计算机程序开发调试***,其特征在于,包括:
    开发环境实时同步子***,用于同步编辑器与编译环境相关的设置信息;
    文件与代码实时同步子***,用于同步文件树结构与代码文本信息;
    调试信息实时同步子***,用于同步程序的调试信息;
    实时行为追踪与同步子***,用于接收上述三个子***产生的使用者的行为信息,并将接收到的使用者的行为信息同步到服务器。
  2. 如权利要求1所述的***,其特征在于,所述开发环境实时同步子***包括如下模块:
    编辑器样式设置信息同步模块,供使用者选择一预先设定好的编辑器样式,并对其中的部分样式进行修改,当使用者保存设置后,将使用者的操作行为信息发送给实时行为追踪与同步子***;
    编辑器功能偏好设置信息同步模块,供使用者对编辑器的功能偏好进行个性化修改,当使用者保存设置后,将使用者的操作行为信息发送给实时行为追踪与同步子***;
    编译环境设置信息同步模块,供使用者选择一预先设定好的编译环境,并对其中的部分设置进行修改,当使用者保存设置后,将使用者的操作行为信息发送给实时行为追踪与同步子***。
  3. 如权利要求2所述的***,其特征在于:所述编辑器样式设置信息同步模块对每一名使用者的编辑器样式设置信息单独进行保存,而不同步给所有的使用者;所述编辑器功能偏好设置信息同步模块对每一名使用者的编辑器功能偏好设置信息单独进行保存,而不同步给所有的使用者;所述编译环境设置信息同步模块对所有使用者的编译环境设置信息进行同步,当一个新的使用者加入到项目时,编译环境设置信息同步模块向其发送服务器上的最新版本信息。
  4. 如权利要求1所述的***,其特征在于,所述文件与代码实时同步子***包括如下模块:
    文件目录信息同步模块,接收使用者对文件目录的操作信息,当使用者进行新建文件或目录、修改文件或目录、删除文件或目录后,将使用者的操作行为信息发送给实时行为追踪与同步子***;
    代码文本信息同步模块,接收使用者对代码文本的操作信息,当使用者进行***文本、删除文本、修改文本、或者移动文本操作后,将使用者的操作行为信息发送给实时行为追踪与同步子***;
    光标行为信息同步模块,接收使用者的光标行为产生的操作信息,将使用者的操作行为信息发送给实时行为追踪与同步子***。
  5. 如权利要求4所述的***,其特征在于:所述文件目录信息同步模块通过实时行为追踪与同步子***获取服务器上保存的使用者的项目文件目录结构,并以目录树的形式为使用者展示;当服务器上保存的信息版本比使用者本地的新时,自动将服务器上保存的版本同步到使用者本地;当使用者对本地的文件目录结构进行改动时,则将使用者的操作信息发送给实时行为追踪与同步子***,由实时行为追踪与同步子***更新服务器上保存的信息;当使用者删除一个文件或目录时,如果有其他的在线的使用者正在使用那个文件或目录下的文件,则删除失败,并被告知该文件或目录正在被使用。
  6. 如权利要求4所述的***,其特征在于:所述代码文本信息同步模块通过实时行为追踪与同步子***获取服务器上保存的使用者的项目代码文件内容,并为使用者在文本区域内展示;当服务器上保存的文件版本比使用者本地的新时,自动将服务器上保存的文件版本同步到使用者本地;当使用者对本地的文件内容进行改动时,则将使用者的操作信息发送给实时行为追踪与同步子***,由实时行为追踪与同步子***更新服务器上保存的文件版本。
  7. 如权利要求6所述的***,其特征在于:所述代码文本信息同步模块将服务器上的文件版本同步到使用者本地时,当服务器版本的改动内容与使用者本地的改动内容不处于同一位置时,对代码文本信息进行合并,同时保留两方的改动;当服务器版本的改动内容与使用者本地的改动内容处于同一位置时,由使用者手动解决与使用者本地代码文本信息存在的冲突。
  8. 如权利要求4所述的***,其特征在于:所述光标行为信息同步模块通过实时行为追踪与同步子***获取服务器上保存的其他的在线的使用者的光标位置,并为使用者在文本区域内展示;当服务器上保存的其他的在线的使用者的光标位置比使用者本地的新时,自动将服务器上保存的光标位置同步到使用者本地;当使用者对本地的文件内容中的光标位置进行改动时,则将使用者的光标位置信息发送给实时行为追踪与同步子***,由实时行为追踪与同步子***更新服务器上保存的光标位置信息。
  9. 如权利要求1所述的***,其特征在于:所述调试信息实时同步子***包括调试信息同步模块,该调试信息同步模块通过实时行为追踪与同步子***获取服务器上保存的调试信息,并为使用者展示;当服务器上保存有其他的在线的使用者的调试信息时,禁止当前用户对当前项目的所有操作行为,并将服务器上保存的调试信息同步到使用者本地;当使用者对本地项目进行调试时,则将使用者的调试信息发送给实时行为追踪与同步子***,由实时行为追踪与同步子***更新服务器上的调试信息;当使用者对项目进行调试操作时,其他在线的使 用者被禁止对项目进行任何操作。
  10. 如权利要求1所述的***,其特征在于:所述实时行为追踪与同步子***包括开发环境追踪和同步模块、文件目录信息追踪和同步模块、代码文本信息追踪和同步模块、光标行为信息追踪和同步模块、调试信息追踪和同步模块。
  11. 一种采用权利要求1所述***的基于互联网的实时多人计算机程序开发调试方法,其步骤包括:
    1)各使用者将开发环境信息由开发环境实时同步子***发送给实时行为追踪与同步子***进行同步;
    2)各使用者将文件与代码信息由文件与代码实时同步子***发送给实时行为追踪与同步子***进行同步;
    3)各使用者将调试信息由调试信息实时同步子***发送给实时行为追踪与同步子***进行同步;
    4)实时行为追踪与同步子***接收来自上述各子***的信息,在服务器上进行同步,将同步后的信息发送回相应的各个子***。
  12. 如权利要求11所述的方法,其特征在于,步骤1)中包含如下子步骤:同步编辑器样式设置信息、同步编辑器功能偏好设置信息、同步编译环境设置信息;步骤2)中包含如下子步骤:同步文件目录信息、同步代码文本信息、同步光标行为信息;步骤3)中包含如下子步骤:同步调试信息;步骤4)中包含如下子步骤:将编辑器样式设置信息、编辑器功能偏好设置信息、编译环境设置信息、文件目录信息、代码文本信息、光标行为信息、调试信息同步到服务器。
PCT/CN2015/083670 2015-06-03 2015-07-09 基于互联网的实时多人计算机程序开发调试***与方法 WO2016192174A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2015102972568 2015-06-03
CN201510297256.8A CN106294112B (zh) 2015-06-03 2015-06-03 基于互联网的实时多人计算机程序开发调试***与方法

Publications (1)

Publication Number Publication Date
WO2016192174A1 true WO2016192174A1 (zh) 2016-12-08

Family

ID=57440028

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2015/083670 WO2016192174A1 (zh) 2015-06-03 2015-07-09 基于互联网的实时多人计算机程序开发调试***与方法

Country Status (2)

Country Link
CN (1) CN106294112B (zh)
WO (1) WO2016192174A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10204030B1 (en) 2017-10-09 2019-02-12 International Business Machines Corporation Debug session tree recorder with generic playback

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106951369B (zh) * 2017-03-15 2020-11-03 微梦创科网络科技(中国)有限公司 一种联调测试的管理方法及装置
CN111580786B (zh) * 2020-05-06 2021-09-21 厦门理工学院 基于互联网+的软件工程开发***
US11301244B1 (en) 2020-11-16 2022-04-12 International Business Machines Corporation Machine learning based tracking of derivaitive code
CN112711403B (zh) * 2021-01-13 2023-10-27 腾讯科技(深圳)有限公司 游戏开发同步的方法、装置、计算机设备和存储介质
CN113971551B (zh) * 2021-12-27 2022-04-19 深圳至简天成科技有限公司 一种在线面试的实时评估方法及***
CN114531491A (zh) * 2021-12-31 2022-05-24 深圳至简天成科技有限公司 一种面试评估方法及***

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101387953A (zh) * 2007-09-14 2009-03-18 环达电脑(上海)有限公司 协同软件开发***及方法
US20090271708A1 (en) * 2008-04-28 2009-10-29 Mr. Roger Peters Collaboration Software With Real-Time Synchronization
US7949702B2 (en) * 2002-01-09 2011-05-24 International Business Machines Corporation Method and apparatus for synchronizing cookies across multiple client machines
CN103593173A (zh) * 2012-10-29 2014-02-19 百度在线网络技术(北京)有限公司 一种应用程序的一体化开发***、方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101727316B (zh) * 2008-10-22 2013-01-02 上海超级计算中心 适于集群***的并行程序集成开发***及其应用实现方法
EP2517101A1 (en) * 2009-12-21 2012-10-31 Nokia Corp. A method, apparatuses and a system for compilation
CN103605556A (zh) * 2013-10-23 2014-02-26 中国运载火箭技术研究院 虚拟试验对象一体化构建***及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7949702B2 (en) * 2002-01-09 2011-05-24 International Business Machines Corporation Method and apparatus for synchronizing cookies across multiple client machines
CN101387953A (zh) * 2007-09-14 2009-03-18 环达电脑(上海)有限公司 协同软件开发***及方法
US20090271708A1 (en) * 2008-04-28 2009-10-29 Mr. Roger Peters Collaboration Software With Real-Time Synchronization
CN103593173A (zh) * 2012-10-29 2014-02-19 百度在线网络技术(北京)有限公司 一种应用程序的一体化开发***、方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10204030B1 (en) 2017-10-09 2019-02-12 International Business Machines Corporation Debug session tree recorder with generic playback

Also Published As

Publication number Publication date
CN106294112A (zh) 2017-01-04
CN106294112B (zh) 2019-03-22

Similar Documents

Publication Publication Date Title
WO2016192174A1 (zh) 基于互联网的实时多人计算机程序开发调试***与方法
US10678675B2 (en) Assistive, language-agnostic debugging with multi-collaborator control
US9940127B1 (en) System and method for providing real-time execution of source code in a collaborative online software development environment
Leiva et al. Enact: Reducing designer–developer breakdowns when prototyping custom interactions
US8407670B2 (en) Collaborative code conflict detection, notification and resolution
CN103597469A (zh) 集成开发环境中的实况浏览器工具
CN112306481A (zh) 图形化编程场景的代码展示方法、***、装置及存储介质
Bähr Prototyping of user interfaces for mobile applications
CN117875288A (zh) 一种表单页面生成方法、装置及电子设备
Saini et al. Towards conflict-free collaborative modelling using VS code extensions
Raab et al. Refactorpad: editing source code on touchscreens
Shurtz Application Sharing from Mobile Devices with a Collaborative Shared Display
Lee et al. Exploring coordination models for ad hoc programming teams
Singh et al. Full Stack Web Development: Vision Challenges and Future Scope
Sinha et al. Visually prototyping perceptual user interfaces through multimodal storyboarding
Husmann Investigating Tool Support for Cross-Device Development
KR101987183B1 (ko) 프론트-앤드 개발을 지원하는 앱 저작 장치, 앱 저작 도구를 사용한 앱 저작 방법 및 앱 개발 서버
US20180032317A1 (en) Defining a data input user interface
US20220342644A1 (en) Branching and merging in a design interface
US20230297208A1 (en) Collaborative widget state synchronization
Dave et al. Full Stack Web Development
Lin et al. VideoGUI: A Benchmark for GUI Automation from Instructional Videos
Kulms et al. MultiPro: Prototyping Multimodal UI with Anthropomorphic Agents
Rey Lopez et al. IXCI: The Immersive eXperimenter Control Interface
Vesterli Oracle ADF Enterprise Application Development Made Simple

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15893830

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15893830

Country of ref document: EP

Kind code of ref document: A1