CN109976801B - 一种代码开发方法、系统及计算机可读存储介质 - Google Patents
一种代码开发方法、系统及计算机可读存储介质 Download PDFInfo
- Publication number
- CN109976801B CN109976801B CN201910333524.5A CN201910333524A CN109976801B CN 109976801 B CN109976801 B CN 109976801B CN 201910333524 A CN201910333524 A CN 201910333524A CN 109976801 B CN109976801 B CN 109976801B
- Authority
- CN
- China
- Prior art keywords
- version
- demand
- branch
- code
- requirement
- 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.)
- Expired - Fee Related
Links
- 238000011161 development Methods 0.000 title claims abstract description 169
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000007726 management method Methods 0.000 claims abstract description 275
- 238000004590 computer program Methods 0.000 claims description 6
- 230000002354 daily effect Effects 0.000 description 12
- 230000008569 process Effects 0.000 description 11
- 238000010276 construction Methods 0.000 description 9
- 238000012552 review Methods 0.000 description 9
- 238000012360 testing method Methods 0.000 description 7
- 230000003203 everyday effect Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000033764 rhythmic process Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例涉及计算机领域,公开了一种代码开发方法、系统及计算机可读存储介质。本申请的部分实施例中,代码开发方法包括:获取待开发版本的需求规划信息;其中,需求规划信息中包括待开发版本的版本号;根据待开发版本的版本号,确定创建版本分支指令;发送创建版本分支指令至代码管理平台;其中,代码管理平台在接收到创建版本分支指令后,创建版本分支。该实现中,使得需求管理平台能够自动创建版本分支,降低了开发人员对代码管理工具的熟悉程度的要求。
Description
技术领域
本发明实施例涉及计算机领域,特别涉及一种代码开发方法、系统及计算机可读存储介质。
背景技术
代码是开发人员使用计算机语言编写出来的,可以实现人们想要的功能。现代的软件越来越复杂灵活,需要的代码量越来越大,越复杂,越频繁。现今,多种代码版本管理工具的出现,有效的提高代码管理效率。
然而,发明人发现现有技术中至少存在如下问题:代码版本管理工具的使用,需要一定的时间积累和学习的成本,将浪费新接触代码管理工具的开发人员大量的时间和精力。即使开发人员已学会使用代码管理工具,由于不同的开发人员,对代码的版本规划、代码的规范、开发流程理解的程度不一,在开发和提交过程中,开发人员大多是按照自己的思路去管理代码,导致项目的代码凌乱,管理效率低下,进而影响项目的开发进度。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本发明实施方式的目的在于提供一种代码开发方法,使得能够自动地创建版本分支,降低了开发人员对代码管理工具的熟悉程度的要求。
为解决上述技术问题,本发明的实施方式提供了一种代码开发方法,包括以下步骤:获取待开发版本的需求规划信息;其中,需求规划信息中包括待开发版本的版本号;根据待开发版本的版本号,确定创建版本分支指令;发送创建版本分支指令至代码管理平台;其中,代码管理平台在接收到创建版本分支指令后,创建版本分支。
本发明的实施方式还提供了一种代码开发系统,包括:需求管理平台和代码管理平台;需求管理平台获取待开发版本的需求规划信息;其中,需求规划信息中包括待开发版本的版本号;根据待开发版本的版本号,确定创建版本分支指令;发送创建版本分支指令至代码管理平台;代码管理平台在接收到创建版本分支指令后,创建版本分支,并根据待开发版本的版本号,确定版本分支的名称。
本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现上述实施方式提及的代码开发方法。
本发明实施方式相对于现有技术而言,由于需求管理平台能够自动地根据需求规划信息中的待开发版本的版本号,生成创建版本分支指令,无需开发人员编写符合代码管理平台要求的创建版本分支指令,降低了开发人员对代码管理平台的熟悉程度的要求,减轻了开发人员的负担,使得开发人员能够更聚焦于代码的开发,而不是代码管理平台的使用,方便代码管理平台的初学者使用。
另外,需求规划信息中还包括待开发版本的各个需求的需求信息,需求信息包括需求编号;在发送创建版本分支指令至代码管理平台之后,代码开发方法还包括:针对待开发版本的每个需求信息,分别进行以下操作:根据需求信息中的需求编号和待开发版本的版本号,确定创建需求分支指令;代码管理平台根据创建需求分支指令,创建需求分支,确定需求分支的名称。该实现中,使得需求管理平台能控制代码管理平台创建需求分支,避免了人为创建需求分支,导致需求分支凌乱等问题。
另外,需求规划信息中还包括待开发版本的各个需求的需求信息;在发送创建版本分支指令至代码管理平台之后,代码开发方法还包括:发送待开发版本的各个需求的需求信息至本地平台的开发终端。该实现中,能够自动推送需求信息,提高了代码开发系统的智能性。
另外,在发送待开发版本的各个需求的需求信息至本地平台的开发终端之后,代码开发方法还包括:确定开发终端选择的需求信息的需求编号;根据开发终端选择的需求信息的需求编号和待开发版本的版本号,确定创建需求分支指令。
另外,发送待开发版本的各个需求的需求信息至本地平台的开发终端,具体包括:发送待开发版本的所有需求信息至管理终端;获取管理终端返回的需求分配指令;其中,需求分配指令指示待开发版本的需求信息和开发终端的对应关系;针对每个需求信息,分别进行以下操作:根据需求分配指令,将需求信息推送至与需求信息对应的开发终端。该实现中,由管理终端分配开发任务,提高了管理人员对版本开发的把控权利。
另外,需求信息还包括需求的状态信息,在发送待开发版本的各个需求的需求信息至本地平台的开发终端后,代码开发方法还包括:获取开发终端拉取的需求分支的名称;根据拉取的需求分支的名称,确定开发终端拉取的需求分支;将拉取的需求分支对应的需求的状态标记为第一状态,第一状态指示需求分支正在开发。
另外,需求信息还包括需求的状态信息,在发送待开发版本的各个需求的需求信息至本地平台的开发终端后,代码开发方法还包括:获取被合并至版本分支的需求分支的名称;根据被合并的版本分支的名称,确定被合并的需求分支;将被合并的需求分支对应的需求的状态标记为第二状态;其中,第二状态指示需求分支已开发完成。该实现中,需求管理平台可以根据需求实际所处阶段,变更需求的状态,使得管理人员可以了解每个需求分支是否在开发、是否开发未完成等状态,使得管理人员可以精细地控制开发进度,有效地提高了整体的质量和开发节奏。
另外,被合并的需求分支被合并的过程为:开发终端在确定开发人员提交的需求分支的代码符合预设要求后,将需求分支的代码同步至代码管理平台;代码管理平台在接收到管理终端发送的所述需求分支的代码的通过指令后,将需求分支合并至版本分支中。
另外,在将拉取的需求分支对应的需求的状态标记为第一状态之后,代码开发方法还包括:将拉取的需求分支对应的需求的状态同步至本地平台的开发终端,和/或,本地平台的管理终端。
另外,将被合并的需求分支对应的需求的状态标记为第二状态之后,代码开发方法还包括:将被合并的需求分支对应的需求的状态同步至本地平台的开发终端,和/或,本地平台的管理终端。该实现中,将待开发版本的各个需求分支的状态同步至本地平台的所有终端,使得开发人员可以实时查看各个需求完成状态,便于对待开发版本的开发进度进行监控,避免了需求漏开发的情况。
另外,在将对应的需求分支的状态标记为第二状态之后,代码开发方法还包括:若确定待开发版本的所有需求分支的状态均为第二状态,发送第一提示信息至本地平台的管理终端,第一提示信息指示待开发版本开发完成;其中,管理终端显示第一提示信息,发送版本合并指令至代码管理平台,以使代码管理平台将版本分支合并至发布分支;或者,管理终端显示第一指示信息,发送版本合并请求至需求管理平台,需求管理平台接收版本合并请求,确定版本合并指令,发送版本合并指令至代码管理平台,以使代码管理平台将版本分支合并至发布分支。该实现中,由管理终端的管理人员再次确认后,再将版本分支合并至发布分支,进一步提高了合并至发布分支的版本分支的代码的安全性。
另外,在发送创建版本分支指令至代码管理平台之后,代码开发方法还包括:发送第二提示信息至本地平台的开发终端,和/或,管理终端,第二提示信息指示有新的版本待开发。该实现中,及时通知本地平台有版本待开发,使得开发人员可以及时了解有版本待开发的信息,及早投入版本开发工作,缩短版本开发周期。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是本发明的第一实施方式的代码开发方法的流程图;
图2是本发明的第二实施方式的代码开发方法的流程图;
图3是本发明的第二实施方式的开发终端、代码管理平台、管理终端和每日构建平台之间的交互示意图;
图4是本发明的第二实施方式的需求管理平台、代码管理平台和本地平台的交互示意图;
图5是本发明的第三实施方式的代码开发系统的结构示意图;
图6是本发明的第三实施方式的另一代码开发系统的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
本发明的第一实施方式涉及一种代码开发方法,应用于需求管理平台。如图1所示,该代码开发方法包括以下步骤:
步骤101:获取待开发版本的需求规划信息。
具体地说,需求规划信息中包括待开发版本的版本号。
在一个例子中,待开发版本的管理人员在需求管理平台上创建待开发版本的需求规划信息,指定待开发版本的版本号,规划待开发项目的需求。
步骤102:根据待开发版本的版本号,确定创建版本分支指令。
具体地说,需求管理平台根据需求规划信息中的待开发版本的版本号,生成创建版本分支指令。
在一个例子中,需求管理平台中存储有在代码管理平台创建版本分支所使用的第一指令模板,需求管理平台可以将待开发版本的版本号带入第一指令模板中,得到创建版本分支指令。
在一个例子中,代码管理平台为分布式版本控制系统(git)仓库,第一指令模板为:gitbranch<branchname>,其中,git branch指示git创建分支,branchname为新创建的分支的名称。需求管理平台用待开发版本的版本号替换branchname,得到创建版本分支指令:git branch<版本号>。
步骤103:发送创建版本分支指令至代码管理平台。
具体地说,需求管理平台生成创建版本分支指令后,将创建版本分支指令发送至代码管理平台。代码管理平台在接收到创建版本分支指令后,创建版本分支,并根据待开发版本的版本号,确定版本分支的名称。
在一个例子中,代码管理平台将待开发版本的版本号作为版本分支的名称。
值得一提的是,由于版本分支的名称是根据版本号确定的,使得需求管理平台能够建立版本的状态等信息和版本分支关联关系,需求管理平台能够基于该关联关系,对代码管理平台上的各个版本分支进行管理。其中,版本的状态可以是未开发状态、正在开发状态和完成开发状态。
需要说明的是,以上仅为举例说明,并不对本发明的技术方案构成限定。
与现有技术相比,本实施方式中提供的代码开发方法,由于需求管理平台能够自动地根据需求规划信息中的待开发版本的版本号,生成创建版本分支指令,无需开发人员编写符合代码管理平台要求的创建版本分支指令,降低了开发人员对代码管理平台的熟悉程度的要求,减轻了开发人员的负担,使得开发人员能够更聚焦于代码的开发,而不是代码管理平台的使用,方便代码管理平台的初学者使用。
本发明的第二实施方式涉及一种代码开发方法。本实施方式在第一实施方式的基础上做了进一步改进,具体改进之处为:在发送创建版本分支指令至代码管理平台之后,增加了一些其他相关步骤。
具体的说,如图2所示,在本实施方式中,包含步骤201至步骤207,其中,步骤201至步骤203分别与第一实施方式中的步骤101至步骤103大致相同,此处不再赘述。下面主要介绍不同之处:
步骤201:获取待开发版本的需求规划信息。
步骤202:根据待开发版本的版本号,确定创建版本分支指令。
步骤203:发送创建版本分支指令至代码管理平台。
步骤204:针对待开发版本的每个需求信息,分别进行以下操作:根据需求信息中的需求编号和待开发版本的版本号,确定创建需求分支指令。
具体地说,在开发一个版本时,往往会存在很多需求。管理人员可以将各个需求写在需求规划信息中。管理人员为每个需求编号,或者,需求管理平台自动为每个需求编号,以作为该需求的标识。需求管理平台在代码管理平台创建版本分支后,根据需求规划信息中的各个需求的需求编号,生成创建需求分支指令,并发送至代码管理平台。代码管理平台在接收到创建需求分支指令后,根据创建需求分支指令,创建需求分支,确定需求分支的名称。
在一个例子中,需求管理平台根据创建需求分支指令中的版本号,确定需要创建需求分支的版本分支;在需要创建需求分支的版本分支下,创建需求分支,并根据创建需求分支指令中的需求编号,确定需求分支的名称。
在一个例子中,需求管理平台中存储有在代码管理平台创建需求分支所使用的第二指令模板,需求管理平台将待开发版本的版本号和需求编号带入第二指令模板中,得到创建需求分支指令。
值得一提的是,由需求管理平台根据需求规划信息,指示代码管理平台在相应的版本分支下创建需求分支,可以避免由于操作错误等原因,使得需求分支被创建在错误的版本分支下。除此之外,由于需求分支的名称是根据需求编号确定的,使得需求管理平台能够建立需求信息和需求分支对应关系,需求管理平台能够基于该关联关系,对代码管理平台上的各个需求分支进行管理。
需要说明的是,需求信息可以包括需求编号、需求的状态等信息,此处不一一列举。
步骤205:发送待开发版本的各个需求的需求信息至本地平台的开发终端。
具体地说,需求管理平台将待开发版本的需求信息发送至本地平台的开发终端的方法包括但不限于以下两种:
方法1:需求管理平台发送待开发版本的所有需求信息至管理终端。管理终端显示待开发版本的需求信息,管理人员看到待开发版本的需求信息后,制定开发各个需求的开发人员。管理终端根据管理人员指定的各个需求的开发人员,以及各个开发人员所使用的开发终端的标识信息,如开发终端的互联网协议地址,结合需求信息和各个开发人员所使用的终端,生成需求分配指令,该需求分配指令指示待开发版本的需求信息和开发终端的对应关系。需求管理平台获取管理终端返回的需求分配指令;其中,需求分配指令指示待开发版本的需求信息和开发终端的对应关系;针对每个需求信息,分别进行以下操作:根据需求分配指令,将需求信息推送至与需求信息对应的开发终端。
方法2:需求管理平台发送待开发版本的所有的需求信息至开发终端,由开发人员自己选择自己开发的需求。
需要说明的是,本领域技术人员可以理解,待开发版本的需求信息可以由需求管理平台发送至本地平台的管理终端,也可以由开发人员自行从需求管理平台拷贝需要的需求信息,本实施方式不限制开发人员获得需求信息的方式。
在一个例子中,开发终端在获得自己开发的需求信息后,拉取与该需求信息对应的需求分支。由于代码管理平台的需求分支的名称是根据需求编号确定的,因此,开发终端可以根据需求信息中的需求编号,生成拉取需求分支指令,发送至代码管理平台,代码管理平台在接收到拉取需求分支指令后,将需求分支同步至开发终端。
需要说明的是,本领域技术人员可以理解,需求管理平台可以在发送创建需求分支指令至代码管理平台之前,发送需求信息至本地平台,也可以在发送创建需求分支指令至代码管理平台之后,发送需求信息至本地平台,此处不作限定。
在一个例子中,需求管理平台可以有选择地先发送第二提示信息至本地平台的开发终端,和/或,管理终端,第二提示信息指示有新的版本待开发。
值得一提的是,及时通知本地平台有版本待开发,使得开发人员可以及时了解有版本待开发的信息,及早投入版本开发工作,缩短版本开发周期。
在一个例子中,需求管理平台在接收到本地平台发送的需求检索请求后,再发送待开发版本的需求信息至本地平台。
需要说明的是,为阐述清楚,本实施方式中,先针对待开发版本的各个需求创建需求分支,本领域技术人员可以理解,实际应用中,也可以先将待开发版本的各个需求的需求信息发送至开发终端,开发终端选择开发的需求。需求管理平台根据所述开发终端选择的需求信息的需求编号和所述待开发版本的版本号,确定创建需求分支指令。
步骤206:获取开发终端拉取的需求分支的名称;根据拉取的需求分支的名称,确定开发终端拉取的需求分支;将拉取的需求分支的状态标记为第一状态。
具体地说,需求信息还包括需求的状态信息,第一状态指示需求分支正在开发。由于需求分支的名称是根据需求编号确定的,当需求管理平台得到开发终端拉取的需求分支的名称后,可以根据拉取的需求分支的名称,确定与该需求分支对应的需求,将该需求的状态标记为第一状态。
在一个例子中,有开发终端在拉取需求分支后,将拉取的需求分支的名称发送至需求管理平台。
在一个例子中,在所述将所述拉取的需求分支对应的需求的状态标记为第一状态之后,需求管理平台将拉取的需求分支对应的需求的状态同步至本地平台的开发终端,和/或,本地平台的管理终端。
需要说明的是,本领域技术人员可以理解,实际应用中,需求管理平台也可以通过监控代码管理平台的方式,获知开发终端拉取的需求分支的名称,本实施方式不限制需求管理平台确定开发终端拉取的需求分支的名称的方法。
步骤207:获取被合并至版本分支的需求分支的名称;根据被合并的版本分支的名称,确定被合并的需求分支;将被合并的需求分支对应的需求的状态标记为第二状态。
具体地说,第二状态指示需求分支已开发完成。
在一个例子中,需求管理平台接收开发终端的合并完成信息,合并完成信息中包括被合并至版本分支的需求分支的名称。需求管理平台根据被合并至版本分支的需求分支的名称,确定被合并至版本分支的需求分支,将该需求分支对应的需求的状态标记为第二状态。
值得一提的是,需求管理平台可以根据需求实际所处阶段,变更需求的状态,可以在发布前,将需求漏开发、未完成、未提交、未确认等问题一一呈现,使得管理人员可以了解每个需求分支是否在开发、是否开发完成等状态,可以精细地控制开发进度,有效地提高了整体的质量和开发节奏,让发布的代码更明确,更可靠。
需要说明的是,本实施方式中,为阐述清楚,将步骤207作为步骤206的后续步骤,实际应用中,针对同一需求,先执行步骤206,再执行步骤207,对于不同的需求,可能先针对需求1执行步骤207,再针对需求2执行步骤206,本实施方式不限制步骤206和步骤207的先后顺序。
在一个例子中,被合并的需求分支被合并的过程为:开发终端在确定开发人员提交的需求分支的代码符合预设要求后,将需求分支的代码同步至代码管理平台;代码管理平台在接收到管理终端发送的需求分支的代码的通过指令后,将需求分支合并至版本分支中。具体地说,开发终端在确定开发人员提交的需求分支的代码符合预设要求后,将需求分支的代码同步至代码管理平台;向代码管理平台发送需求合并请求;需求合并请求中包括需求分支的代码,预设要求包括代码规范要求;代码管理平台在接收到需求合并请求后,发送评审指令至本地平台的管理终端,评审指令中包括需求分支的代码,用于指示管理终端评审需求分支的代码;代码管理平台在接收到管理终端针对评审指令提交的通过指令后,将需求分支合并至版本分支中。
在一个例子中,需求管理平台将所述被合并的需求分支对应的需求的状态标记为第二状态之后,将所述被合并的需求分支对应的需求的状态同步至所述本地平台的开发终端,和/或,本地平台的管理终端。
值得一提的是,将待开发版本的各个需求分支的状态同步至本地平台的所有终端,使得开发人员可以实时查看各个需求完成状态,便于对待开发版本的开发进度进行监控,避免了需求漏开发的情况。
在一个例子中,需求管理平台在将对应的需求分支的状态标记为第二状态之后,若确定待开发版本的所有需求分支的状态均为第二状态,发送第一提示信息至本地平台的管理终端,第一提示信息指示待开发版本开发完成;其中,管理终端显示第一提示信息,发送版本合并指令至代码管理平台,以使代码管理平台将版本分支合并至发布分支;或者,管理终端显示第一指示信息,发送版本合并请求至需求管理平台,需求管理平台接收版本合并请求,确定版本合并指令,发送版本合并指令至代码管理平台,以使代码管理平台将版本分支合并至发布分支。
值得一提的是,由管理终端的管理人员再次确认后,再将版本分支合并至发布分支,进一步提高了合并至发布分支的版本分支的代码的安全性。
在一个例子中,本地平台的开发终端、代码管理平台、管理终端和每日构建平台之间的交互如图3所示,其中,每日构建平台用于对代码每天定时拉取代码管理平台上的代码进行规范检测、安全扫描等。开发终端从获取需求信息至将针对该需求信息开发的代码发布至版本分支的过程如下:
步骤301:开发终端下载代码管理平台中的版本分支和需求分支。
步骤302:开发终端本地递交代码,校验递交信息,以及自动添加需求信息等。
具体地说,开发终端在递交代码时,可以加上本次开发的需求信息等。
步骤303:开发终端本地切换分支,自动保存工作区内容和检索需求信息。
步骤304:开发终端递交需求分支代码至代码管理平台。
步骤305:代码管理平台检测递交的需求分支代码是否与已有代码冲突,如果是,将冲突展示给开发终端,根据开发终端的开发人员的情况,提供修改案例。
步骤306:代码管理平台自动触发每日构建,每日构建平台进行代码扫描等。
具体地说,每日构建平台每天定时去拉取代码,对代码进行编译、部署、自动化测试等,本领域技术人员可以根据需要确定每日构建的内容。
在一个例子中,每日构建平台对代码进行代码规范检测和安全扫描,比如安全漏洞、web扫描等。
步骤307:每日构建平台反馈代码质量等信息至管理终端。
步骤308:每日构建平台反馈代码质量至开发终端。
需要说明的是,为阐述清楚,此处将步骤308作为步骤307的后续步骤,实际应用中,步骤308可以作为步骤307的前一步骤。
步骤309:开发终端本地合并版本分支,解决冲突。
步骤310:开发终端更新需求分支代码,创建并发送需求合并指令并创建合并指令(pullrequest)合并到版本分支。
步骤311:代码管理平台告知管理终端评审需求分支代码。
步骤312:管理终端评审需求分支代码,并根据其他开发人员的评审意见,确定是否合并。
通过上述内容可以看出,将需求分支合并至版本分支需要有管理版本权限的人进行合并,使得版本代码的可靠性得到了保证,版本分支合并至发布分支代码也需要有管理权限的人进行合并,使得发布代码的可靠性得到了保证。
需要说明的是,以上仅为举例说明,并不对本发明的技术方案构成限定。
与现有技术相比,本实施方式中提供的代码开发方法,由于需求管理平台能够自动地根据需求规划信息中的待开发版本的版本号,生成创建版本分支指令,无需开发人员编写符合代码管理平台要求的创建版本分支指令,降低了开发人员对代码管理平台的熟悉程度的要求,减轻了开发人员的负担,使得开发人员能够更聚焦于代码的开发,而不是代码管理平台的使用,方便代码管理平台的初学者使用。除此之外,需求管理平台可以根据需求实际所处阶段,变更需求的状态,可以在发布前,将需求漏开发、未完成、未提交、未确认等问题一一呈现,使得管理人员可以了解每个需求分支是否在开发、是否开发完成等状态,可以精细地控制开发进度,有效地提高了整体的质量和开发节奏,让发布的代码更明确,更可靠。
以下对执行本实施方式提及的代码开发方法的过程中,需求管理平台、代码管理平台和本地平台之间的交互过程进行举例说明。
需求管理平台、代码管理平台和本地平台之间的交互过程如图4所示,包括以下步骤:
步骤401:需求管理平台发送创建版本分支指令至代码管理平台。
具体地说,需求管理平台发送创建版本分支指令至代码管理平台的过程可参考第一实施方式的相关内容,此处不赘述。
步骤402:需求管理平台确定版本分支已创建。
具体地说,需求管理平台可以通过查询指令,查询代码管理平台的分支,确定版本分支是否已经创建。
步骤403:需求管理平台发送创建需求分支指令至代码管理平台。
具体地说,需求管理平台创建需求分支的方式可参考第二实施方式的相关内容,此处不再赘述。
步骤404:需求管理平台确定需求分支已创建。
步骤405:需求管理平台通知本地平台有新的版本分支和新的需求分支。
步骤406:本地平台从代码管理平台拉取版本分支和需求分支。
步骤407:本地平台告知需求管理平台拉取的版本分支和需求分支已开始开发。
具体地说,需求管理平台在知道拉取的版本分支和需求分支已开始开发后,可以将拉取的版本分支和需求分支对应的需求的状态标记为正在开发状态。
步骤408:本地平台在本地创建拉取的版本分支和需求分支。
步骤409:本地平台将需求分支代码提交至代码管理平台。
步骤410:本地平台告知需求管理平台需求分支的代码已提交。
具体地说,需求管理平台在知道需求分支代码已提交后,可以将需求分支对应的需求的状态标记为代码已提交状态。
步骤411:本地平台发起评审需求分支的代码的请求,并在评审通过后将代码合并至需求分支。
步骤412:本地平台告知需求管理平台需求已开发完成。
步骤413:本地平台提交需求合并请求至代码管理平台。
具体地说,代码管理平台在接收到需求合并请求后进行的操作可参考第二实施方式的相关内容,此处不再赘述。
步骤414:本地平台告知需求管理平台需求分支已合并至版本分支。
步骤415:本地平台向需求管理平台请求确认待开发版本的所有需求是否均完成。
步骤416:需求管理平台在确定所有需求均完成后,告知本地平台所有需求均完成。
步骤417:本地平台发送版本合并请求至代码管理平台,将版本分支合并至发布分支。
步骤418:本地平台告知需求管理平台版本已完成。
步骤419:需求管理平台告知本地平台版本可发布。
具体地说,需求管理平台在确定发布分支没有安全等问题后,告知本地平台该发布分支可上线运行。
步骤420:本地平台发送发布合并请求至代码管理平台,将发布分支合并至线上代码分支。
具体地说,发布分支中存储有可发布的版本的代码,线上代码分支存储有线上运行的版本的代码。
通过上述内容可以看出,本实施方式中,将需求管理、代码管理、持续集成、代码开发、自动化测试、代码质量管理平台和发布平台,连成一条可控、可直接查看的流程,将代码与具体的需求紧密结合起来,以一种可视化的方式来展示代码的开发进度,让项目可以尽可能尽早的识别潜在的风险,可以让管理人员、开发人员、测试人员、运维人员直观地了解现在项目的进度和风险等。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本发明的第三实施方式涉及一种代码开发系统,如图5所示,包括:需求管理平台501和代码管理平台502;需求管理平台501获取待开发版本的需求规划信息;其中,需求规划信息中包括待开发版本的版本号;根据待开发版本的版本号,确定创建版本分支指令;发送创建版本分支指令至代码管理平台;代码管理平台502在接收到创建版本分支指令后,创建版本分支,并根据待开发版本的版本号,确定版本分支的名称。
在一个例子中,如图6,代码开发系统还包括本地平台503、每日构建平台504、自动化测试平台505、代码质量管理平台506和线上发布平台507。本地平台503用于拉取代码管理平台502上的版本分支和需求分支,将编写的需求分支的代码递交至代码管理平台502。每日构建平台504每日定时拉取代码管理平台502上的代码,进行规范检测和安全扫描等。自动化测试平台505对每日构建平台504拉取的代码进行自动化测试,即试运行该代码。线上发布平台用于发布代码管理平台502中的版本分支的代码,代码质量管理平台506用于根据自动化测试平台505的测试结果和每日构建平台504的构建结果,和线上发布平台507的发布结果,确定代码质量。
在一个例子中,需求规划信息中还包括待开发版本的各个需求的需求信息,需求信息包括需求编号。需求管理平台501还用于:在发送创建版本分支指令至代码管理平台之后,针对待开发版本的每个需求信息,分别进行以下操作:根据需求信息中的需求编号和待开发版本的版本号,确定创建需求分支指令;发送创建需求分支指令至代码管理平台。代码管理平台502还用于:在接收到创建需求分支指令后,根据创建需求分支指令中的版本号,确定需要创建需求分支的版本分支;在需要创建需求分支的版本分支下,创建需求分支,并根据创建需求分支指令中的需求编号,确定需求分支的名称。
在一个例子中,需求规划信息中还包括待开发版本的各个需求的需求信息。需求管理平台501还用于:在发送创建版本分支指令至代码管理平台之后,发送待开发版本的各个需求的需求信息至本地平台的开发终端。
在一个例子中,需求信息包括需求编号;需求管理平台501还用于:在发送待开发版本的各个需求的需求信息至本地平台的开发终端之后,确定开发终端选择的需求编号;根据选择的需求编号和待开发版本的版本号,确定创建需求分支指令;发送创建需求分支指令至代码管理平台。代码管理平台502还用于在接收到创建需求分支指令后,根据创建需求分支指令中的版本号,确定需要创建需求分支的版本分支;在需要创建需求分支的版本分支下,创建需求分支,并根据创建需求分支指令中的需求编号,确定需求分支的名称。
在一个例子中,需求管理平台501具体用于:发送待开发版本的所有需求信息至管理终端;获取管理终端返回的需求分配指令;其中,需求分配指令指示待开发版本的需求信息和开发终端的对应关系;针对每个需求信息,分别进行以下操作:根据需求分配指令,将需求信息推送至与需求信息对应的开发终端。
在一个例子中,需求信息还包括需求的状态信息,需求管理平台501还用于:在发送待开发版本的各个需求的需求信息至本地平台的开发终端后,获取开发终端拉取的需求分支的名称;根据拉取的需求分支的名称,确定开发终端拉取的需求分支;将拉取的需求分支对应的需求的状态标记为第一状态,第一状态指示需求分支正在开发。
在一个例子中,需求信息还包括需求的状态信息,需求管理平台501还用于:在发送待开发版本的各个需求的需求信息至本地平台的开发终端后,获取被合并至版本分支的需求分支的名称;根据被合并的版本分支的名称,确定被合并的需求分支;将被合并的需求分支对应的需求的状态标记为第二状态;其中,第二状态指示需求分支已开发完成。
在一个例子中,被合并的需求分支被合并的过程为:本地平台503的开发终端在确定开发人员提交的需求分支的代码符合预设要求后,将需求分支的代码同步至代码管理平台502;向代码管理平台502发送需求合并请求;需求合并请求中包括需求分支的代码,预设要求包括代码规范要求;代码管理平台502在接收到需求合并请求后,发送评审指令至本地平台503的管理终端,评审指令中包括需求分支的代码,用于指示管理终端评审需求分支的代码;代码管理平台502在接收到管理终端针对评审指令提交的通过指令后,将需求分支合并至版本分支中。
在一个例子中,需求管理平台501还用于:在将拉取的需求分支对应的需求的状态标记为第一状态之后,或,将拉取的需求分支对应的需求的状态标记为第二状态之后,将对应的需求分支对应的需求的状态同步至本地平台的开发终端,和/或,管理终端。
在一个例子中,需求管理平台501还用于:在将对应的需求分支的状态标记为第二状态之后,若确定待开发版本的所有需求分支的状态均为第二状态,发送第一提示信息至本地平台的管理终端,第一提示信息指示待开发版本开发完成;其中,管理终端显示第一提示信息,发送版本合并指令至代码管理平台,以使代码管理平台将版本分支合并至发布分支;或者,管理终端显示第一指示信息,发送版本合并请求至需求管理平台,需求管理平台接收版本合并请求,确定版本合并指令,发送版本合并指令至代码管理平台,以使代码管理平台将版本分支合并至发布分支。
在一个例子中,需求管理平台501还用于:在发送待开发版本的各个需求的需求信息至本地平台的开发终端之前,接收本地平台发送的需求检索请求。
在一个例子中,需求管理平台501还用于:在发送创建版本分支指令至代码管理平台之后,发送第二提示信息至本地平台的开发终端,和/或,管理终端,第二提示信息指示有新的版本待开发。
不难发现,本实施方式为与第一实施方式和第二实施方式相对应的系统实施例,本实施方式可与第一实施方式和第二实施方式互相配合实施。第一实施方式和第二实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式和第二实施方式中。
值得一提的是,本实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。
本发明的第四实施方式涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (12)
1.一种代码开发方法,应用于需求管理平台,包括:
获取待开发版本的需求规划信息;其中,所述需求规划信息中包括待开发版本的版本号和所述待开发版本的各个需求的需求信息;所述需求信息包括需求编号;
根据所述待开发版本的版本号,确定创建版本分支指令;
发送所述创建版本分支指令至代码管理平台,发送所述待开发版本的各个需求的需求信息至本地平台的开发终端;
确定所述开发终端选择的需求信息;
针对所述待开发版本的每个需求信息,分别进行以下操作:根据所述需求信息中的需求编号和所述待开发版本的版本号,确定创建需求分支指令;其中,所述代码管理平台在接收到所述创建版本分支指令后,创建版本分支,并根据所述创建需求分支指令,在所述版本分支下创建需求分支。
2.根据权利要求1所述的代码开发方法,所述代码开发方法还包括:
所述代码管理平台根据所述创建需求分支指令创建需求分支后,确定所述需求分支的名称。
3.根据权利要求1所述的代码开发方法,所述发送所述待开发版本的各个需求的需求信息至本地平台的开发终端,具体包括:
发送所述待开发版本的所有需求信息至管理终端;
获取所述管理终端返回的需求分配指令;其中,所述需求分配指令指示所述待开发版本的需求信息和所述开发终端的对应关系;
针对每个所述需求信息,分别进行以下操作:根据所述需求分配指令,将所述需求信息推送至与所述需求信息对应的开发终端。
4.根据权利要求1所述的代码开发方法,所述需求信息还包括需求的状态信息,在所述发送所述待开发版本的各个需求的需求信息至本地平台的开发终端后,所述代码开发方法还包括:
获取所述开发终端拉取的需求分支的名称;
根据所述拉取的需求分支的名称,确定所述开发终端拉取的需求分支;
将所述拉取的需求分支对应的需求的状态标记为第一状态,所述第一状态指示需求分支正在开发。
5.根据权利要求1所述的代码开发方法,所述需求信息还包括需求的状态信息,在所述发送所述待开发版本的各个需求的需求信息至本地平台的开发终端后,所述代码开发方法还包括:
获取被合并至所述版本分支的需求分支的名称;
根据被合并的版本分支的名称,确定被合并的需求分支;
将所述被合并的需求分支对应的需求的状态标记为第二状态;其中,所述第二状态指示需求分支已开发完成。
6.根据权利要求5所述的代码开发方法,所述被合并的需求分支被合并的过程为:
所述开发终端在确定开发人员提交的需求分支的代码符合预设要求后,将所述需求分支的代码同步至所述代码管理平台;所述代码管理平台在接收到管理终端发送的所述需求分支的代码的通过指令后,将所述需求分支合并至所述版本分支中。
7.根据权利要求4所述的代码开发方法,在所述将所述拉取的需求分支对应的需求的状态标记为第一状态之后,所述代码开发方法还包括:
将所述拉取的需求分支对应的需求的状态同步至所述本地平台的开发终端,和/或,本地平台的管理终端。
8.根据权利要求5所述的代码开发方法,在所述将所述被合并的需求分支对应的需求的状态标记为第二状态之后,所述代码开发方法还包括:
将所述被合并的需求分支对应的需求的状态同步至所述本地平台的开发终端,和/或,本地平台的管理终端。
9.根据权利要求5所述的代码开发方法,在所述将所述对应的需求分支的状态标记为第二状态之后,所述代码开发方法还包括:
若确定所述待开发版本的所有需求分支的状态均为所述第二状态,发送第一提示信息至所述本地平台的管理终端,所述第一提示信息指示所述待开发版本开发完成;
其中,所述管理终端显示所述第一提示信息,发送版本合并指令至所述代码管理平台,以使所述代码管理平台将所述版本分支合并至发布分支;或者,
所述管理终端显示所述第一提示信息,发送版本合并请求至所述需求管理平台,所述需求管理平台接收所述版本合并请求,确定版本合并指令,发送所述版本合并指令至所述代码管理平台,以使所述代码管理平台将所述版本分支合并至发布分支。
10.根据权利要求1至8中任一项所述的代码开发方法,在所述发送所述创建版本分支指令至所述代码管理平台之后,所述代码开发方法还包括:
发送第二提示信息至所述本地平台的开发终端,和/或,管理终端,所述第二提示信息指示有新的版本待开发。
11.一种代码开发系统,包括:需求管理平台和代码管理平台;
所述需求管理平台获取待开发版本的需求规划信息;其中,所述需求规划信息中包括待开发版本的版本号和所述待开发版本的各个需求的需求信息;所述需求信息包括需求编号;根据所述待开发版本的版本号,确定创建版本分支指令;发送所述创建版本分支指令至代码管理平台,发送所述待开发版本的各个需求的需求信息至本地平台的开发终端;确定所述开发终端选择的需求信息;针对所述待开发版本的每个需求信息,分别进行以下操作:根据所述需求信息中的需求编号和所述待开发版本的版本号,确定创建需求分支指令;
所述代码管理平台在接收到所述创建版本分支指令后,创建版本分支,并根据所述创建需求分支指令,在所述版本分支下创建需求分支,并根据所述待开发版本的版本号,确定所述版本分支的名称。
12.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至10中任一项所述的代码开发方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910333524.5A CN109976801B (zh) | 2019-04-24 | 2019-04-24 | 一种代码开发方法、系统及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910333524.5A CN109976801B (zh) | 2019-04-24 | 2019-04-24 | 一种代码开发方法、系统及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109976801A CN109976801A (zh) | 2019-07-05 |
CN109976801B true CN109976801B (zh) | 2022-09-09 |
Family
ID=67086040
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910333524.5A Expired - Fee Related CN109976801B (zh) | 2019-04-24 | 2019-04-24 | 一种代码开发方法、系统及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109976801B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110310100A (zh) * | 2019-07-09 | 2019-10-08 | 西安点告网络科技有限公司 | 项目管理方法、装置、电子设备及存储介质 |
TWI773939B (zh) * | 2019-11-12 | 2022-08-11 | 緯創資通股份有限公司 | 版本管理系統、版本管理方法及非揮發性電腦可讀取記錄媒體 |
CN111459535A (zh) * | 2020-03-19 | 2020-07-28 | 深圳木成林科技有限公司 | 一种分支合并的方法、装置、设备及计算机存储介质 |
CN111522580A (zh) * | 2020-04-22 | 2020-08-11 | 浙江大搜车软件技术有限公司 | 代码分支的建立方法、装置和计算机设备 |
CN111930423B (zh) * | 2020-09-17 | 2021-08-24 | 四川新网银行股份有限公司 | 一种基于微服务的软件发布版本追溯的方法 |
CN112631652A (zh) * | 2020-12-29 | 2021-04-09 | 微医云(杭州)控股有限公司 | 操作指令响应方法、装置、设备和存储介质 |
CN112631554A (zh) * | 2020-12-30 | 2021-04-09 | 中国农业银行股份有限公司 | 一种项目需求管理方法、装置及设备 |
CN112817849B (zh) * | 2021-01-28 | 2024-06-04 | 北京达佳互联信息技术有限公司 | 测试数据处理方法、装置、设备及存储介质 |
CN113485913B (zh) * | 2021-06-10 | 2023-04-07 | 上海百胜软件股份有限公司 | 一种分支管理方法、系统、设备和存储介质 |
CN115373725B (zh) * | 2022-10-24 | 2023-02-03 | 布谷云软件技术(南京)有限公司 | 一种以需求为粒度的软件开发管理系统及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108762736A (zh) * | 2018-03-21 | 2018-11-06 | 五八有限公司 | 项目分支的管理方法、装置、设备及计算机可读存储介质 |
CN109165169A (zh) * | 2018-10-16 | 2019-01-08 | 江苏满运软件科技有限公司 | 一种测试用分支管理方法及系统 |
CN109542415A (zh) * | 2018-11-13 | 2019-03-29 | 五八同城信息技术有限公司 | 支持应用程序并行研发的代码合并方法及相关设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9158658B2 (en) * | 2013-10-15 | 2015-10-13 | International Business Machines Corporation | Detecting merge conflicts and compilation errors in a collaborative integrated development environment |
US10740093B2 (en) * | 2016-09-01 | 2020-08-11 | Dropbox, Inc. | Advanced packaging techniques for improving work flows |
-
2019
- 2019-04-24 CN CN201910333524.5A patent/CN109976801B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108762736A (zh) * | 2018-03-21 | 2018-11-06 | 五八有限公司 | 项目分支的管理方法、装置、设备及计算机可读存储介质 |
CN109165169A (zh) * | 2018-10-16 | 2019-01-08 | 江苏满运软件科技有限公司 | 一种测试用分支管理方法及系统 |
CN109542415A (zh) * | 2018-11-13 | 2019-03-29 | 五八同城信息技术有限公司 | 支持应用程序并行研发的代码合并方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109976801A (zh) | 2019-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109976801B (zh) | 一种代码开发方法、系统及计算机可读存储介质 | |
US9207933B2 (en) | Identifying authors of changes between multiple versions of a file | |
EP1564671A1 (en) | Process editing apparatus and method and process management apparatus and method | |
CN104090776A (zh) | 一种软件开发方法及系统 | |
US11086765B2 (en) | Test reuse exchange and automation system and method | |
US11055078B2 (en) | Systems and methods for deploying software products to environments | |
EP2963546A1 (en) | Method for achieving software development transaction and electronic device | |
CN111459631A (zh) | 服务器自动化批处理方法及系统 | |
JP5989194B1 (ja) | テスト管理システムおよびプログラム | |
CN115860451A (zh) | 一种流程运行方法、装置、电子设备及存储介质 | |
CN114237688A (zh) | 分支版本合并方法、装置、系统及电子设备 | |
CN115981718A (zh) | 一种代码发布方法、装置、计算机设备和存储介质 | |
KR20160049568A (ko) | 소스코드 비교 및 관리 시스템 및 방법 | |
CN112988868B (zh) | 一种钢铁实验室数据处理方法及系统 | |
CN114428621A (zh) | 一种作业自动化部署方法 | |
CN113577775A (zh) | 美术资源文件的检查方法及装置、电子设备、存储介质 | |
CN112598383A (zh) | 一种审批方法、装置、设备和介质 | |
CN111767331A (zh) | 千万量级数据在关系型数据库中的多任务可视化激活方法 | |
CN112363700A (zh) | 智能合约的协同创建方法、装置、计算机设备和存储介质 | |
JP2009048442A (ja) | 構成管理システム | |
CN112256522A (zh) | 组件信息获取方法、装置、电子设备及存储介质 | |
CN116932335B (zh) | 一种国产化环境下基于网络传输的任务流程监控方法及系统 | |
KR20230090264A (ko) | 실시간 코드 테스트 방법, 장치 및 프로그램 | |
CN113867691A (zh) | 一种开发管理方法、平台及存储介质 | |
JP2009151532A (ja) | セキュアコーディング規約教育システム及びセキュアコーディング規約教育方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20220909 |