掌桥专利:专业的专利平台
掌桥专利
首页

代码评审的方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 18:49:33


代码评审的方法、装置、电子设备及存储介质

技术领域

本公开涉及计算机技术领域,尤其涉及大数据、人工智能技术领域,具体涉及代码评审的方法、装置、电子设备及存储介质。

背景技术

许多软件产品为用户提供了多年服务,随着产品功能的不断丰富和完善,产品的规模越来越大。相应的,软件的规模也越来越大。产品软件代码在变动时出现的风险就越大,修复的成本也就越高。

为避免风险的出现,需要对需要变动的代码进行评审,但是过大的规模使得代码评审耗时耗力。

发明内容

本公开提供了一种代码评审的方法、装置、电子设备及存储介质。

根据本公开的一方面,提供了一种代码评审的方法,包括:

获取待提交到远程仓库的待提交代码;

将待提交代码与远程仓库的待比对代码进行比对,得到第一差异;

基于第一差异,得到待提交代码中未进行评审的代码变化部分;

提示代码变化部分需要进行重点评审;

响应于待提交代码评审通过的消息,将待提交代码提交到远程仓库。

根据本公开的另一方面,提供了一种代码评审的装置,包括:

获取模块,用于获取待提交到远程仓库的待提交代码;

第一比对模块,用于将待提交代码与远程仓库的待比对代码进行比对,得到第一差异;

代码变更识别模块,用于基于第一差异,得到待提交代码中未进行评审的代码变化部分;

第一提示模块,用于提示代码变化部分需要进行重点评审;

提交模块,用于响应于待提交代码评审通过的消息,将待提交代码提交到远程仓库。

根据本公开的另一方面,提供了一种电子设备,包括:

至少一个处理器;以及,

与该至少一个处理器通信连接的存储器;其中,

该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行本公开中任一实施例的方法。

根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,该计算机指令用于使该计算机执行根据本公开中任一实施例的方法。

根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现根据本公开中任一实施例的方法。

使用本公开实施例提供的代码评审的方法,可以提高代码评审的效率,同时也使得评审人员能够重点关注未进行评审的代码变化部分,避免了评审时因漏审导致没有发现待提交代码中的错误。

应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

附图用于更好地理解本方案,不构成对本公开的限定。其中:

图1是根据本公开一实施例提供的代码评审的方法的流程示意图;

图2是根据本公开一实施例提供的获取待提交代码的方法的流程示意图;

图3是根据本公开一实施例提供的场景图;

图4是根据本公开一实施例提供的又一场景图;

图5是根据本公开一实施例提供的又一场景图;

图6是根据本公开一实施例提供的代码评审的装置示意图

图7是用来实现本公开实施例的代码评审的电子设备的框图。

具体实施方式

以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

在软件的开发中,代码评审(CodeReview,简称CR)是一个重要环节,可以提前发现代码潜在风险与BUG(系统漏洞)。代码评审能够提升系统的可维护性,降低事故的概率及修复成本。因此,代码只有评审通过后才能进入代码仓库进行后续软件的版本更新。

目前的代码开发一般使用分支开发的方式,即代码仓库中有多个分支,例如master分支(主分支)、dev分支(开发分支)、release分支(预上线分支)等。在dev分支完成代码编写,测试后向master分支提交。提交时,将dev分支的代码与master分支的代码进行代码合并。代码合并完成后,上传至远程代码仓库中,并进行全功能集成测试,测试成功后,拉取release分支(加对应的版本号),进行版本发布。

分支开发提高了代码编写的效率,但是每一次代码的提交,都会涉及到多次代码评审,例如:在dev分支提交至master分支前需要进行代码评审;在将代码合并完成后的代码上传至代码仓库时,也需要进行代码评审。

由此可见,对同一份代码的变更,评审人员将进行多次代码评审,投入大量人力成本和时间成本。为此,本公开实施例提出了一种代码评审的方法,以降低代码评审的成本,提高代码评审的效率。如图1所示,为该方法的流程示意图,包括:

S101、获取待提交到远程仓库的待提交代码。

本公开实施例中,将dev分支的代码与master分支的代码进行代码合并后得到的代码,作为待提交代码。在一些可能的实施方式中,如图2所示,可基于以下方法获取待提交到远程仓库的待提交代码:

S201、从本地仓库获得待编写代码进行编写,得到已编写代码。

例如,开发人员从本地仓库拉取待开发的代码分支,对该代码分支进行代码编写后得到已编写代码dev,该已编写代码dev可用于与master分支的代码进行合并。在合并之前,评审人员需对已编写代码dev进行评审。

S202、在确定本地的已编写代码的评审结果为评审通过的情况下,将已编写代码与本地仓库中的代码进行比对,得到第二差异。

由于同一master分支代码,可能同时被不同开发人员拉取到本地进行修改。因此会产生代码冲突,也可理解为代码冲突是指多个开发人员提交代码时,提交的代码中包含对同一代码块进行修改产生的错误。

S203、在基于第二差异确定不存在代码冲突的情况下,合并已编写代码到本地仓库中,得到待提交代码。

在评审时,为了仅评审已编写代码相对待编写代码的变化部分,本公开实施例还将待编写代码与已编写代码进行比对,得到第三差异;也即,第三差异是开发人员对代码的修改内容。在评审已编写代码时,提示基于第三差异对已编写代码进行评审。由此,可使得评审人员仅需评审已编写代码相对待编写代码变化的部分,降低了评审的时间成本,提高了评审的效率。

在确定第三差异的基础上,本公开实施例中可使用如下方法确定是否存在代码冲突:

在第二差异与第三差异中包含对同一代码块的编写,则确定存在代码冲突;相应的,在第二差异与第三差异中不包含对同一代码块的编写,则确定不存在代码冲突。

使用对比的方法确定代码冲突,可清晰的获得出现代码冲突的位置,便于进行修改。同时,使用第二差异与第三差异进行比对而不是将对比待编写代码、已编写代码与本地仓库中的全量代码进行比对,可降低对比所消耗的资源。

S204、在基于第二差异确定存在代码冲突的情况下,提示修改已编写代码,并将修改后的已编写代码合并到本地仓库中得到待提交代码。

其中,提示修改已编写代码,可实施为提示产生代码冲突的代码部分。通过提示出代码冲突部分,可提醒开发人员针对代码冲突进行修改,避免出现新的BUG;也节约了开发人员查找出现代码冲突位置的时间,提高代码开发效率。

S203和S204中进行代码合并所使用的方法可以为git(分布式版本控制系统)中的merge(代码合并)。例如,将dev分支1变更的部分替换master分支对应的部分。也可以使用其他代码合并的方法,例如git中的rebase。本公开对使用何种方法进行合并不做限制。

以使用代码合并的方法为merge为例,在merge时出现代码冲突,会分别列出已编写代码和本地仓库中出现冲突的代码块,前述S204中提示产生代码冲突的代码部分时可实施为将代码冲突的部分重点标记出来进行提示。修改时,开发人员可以从重点标记的代码入手修改代码,以解决代码冲突。同时,开发人员也可以针对代码冲突部分进行重新编写以解决代码冲突。

对已编写代码进行评审,可极大程度的修正已编写代码在编写过程中出现的错误。使用第二差异确定已编写代码和本地仓库的代码是否存在代码冲突,在存在代码冲突时,提示开发人员做出相应的修改。在没有代码冲突的情况下进行合并得到待提交代码,可降低待提交代码因代码冲突出现BUG的风险。

S102、将待提交代码与远程仓库的待比对代码进行比对,得到第一差异。

S103、基于第一差异,得到待提交代码中未进行评审的代码变化部分。

一种可能的实施方式中,可基于以下方法得到未进行评审的代码变化部分:

获取待提交代码的全量代码;

获取已编写代码以及远程仓库中的代码,作为评审过的代码;

针对待提交代码逐行确认与评审过的代码是否相同;

不相同的部分为未进行评审的代码变化部分。

但是上述方法需要使用三个代码文件(包括已编写代码的文件、远程仓库中的代码文件以及待提交代码文件)进行全量比对,比对的代码量较大,且易出现错误。

因此,本公开实施例中,可以使用多次少量比对的方式以提高获取未进行评审的代码变化部分的效率,可实施为:

将第三差异与第二差异进行比对,得到第四差异;其中,第三差异为上文中待编写代码与已编写代码进行比对得到的,第二差异为上文中将已编写代码与本地仓库中的代码进行比对得到的。由此,第四差异是因为在已编写代码与本地仓库的代码合并前,本地仓库的代码已与其他开发人员的代码进行合并,导致待编写代码与本地仓库的代码不一致产生的。

将第一差异和第三差异进行比对,得到第五差异;与第四差异类似,第五差异是在待提交代码提交至远程仓库前,已经有其他代码提交至远程仓库修改了待比对代码分支,导致待编写代码与远程仓库的代码不一致产生的。

将第四差异和第五差异进行比对,得到待提交代码中未进行评审的代码变化部分。

使用本公开实施例的比对方式获得未进行评审的代码变化部分,可清晰的获得未进行评审的代码变化部分的位置,便于评审人员针对该部分进行重点评审。通过该方法中多次少量比对的方式,可降低比对的代码量,提高比对的效率,且能够准确的得到需要重点评审的代码变化部分。

可以理解的是,比对后得到的未进行评审的代码变化部分可包括:针对代码冲突进行修改的代码、因误操作导致遗漏或冗余的代码。

当然,在一些实施例中,未进行评审的代码变化部分是否因为代码冲突导致,可基于以下方法确定,如:该代码变化部分为第二差异与第三差异中的同一代码块,则该代码变化部分确定为针对代码冲突进行修改的代码;相反的,在该代码变化部分并非第二差异与第三差异中的同一代码块,则该代码变化部分并非针对代码冲突进行修改的代码。

在该代码变化部分并非针对代码冲突进行修改的代码的情况下,再比对第四差异与第五差异,若该代码变化部分为第五差异相对第四差异多出的代码,则该代码变化部分为冗余的代码;若该代码变化部分为第四差异相对第五差异多出的代码,则该代码变化部分为缺失的代码。

在此基础上,还可使用不同的标记区分出不同的代码变化部分。例如采用第一标记方式标记出针对代码冲突进行修改的代码、采用第二标记方式标记出因误操作导致遗漏的代码、采用第三标记方式标记出因误操作导致冗余的代码。例如,使用红色标记出针对代码冲突进行修改的代码;使用黄色标记出误操作导致遗漏的代码;使用蓝色标记出因误操作导致冗余的代码。需要说明的是,本公开实施例对使用何种方法标记出不同种类的未进行评审的代码变化部分不做具体限定。

将不同种类的未进行评审的代码变化部分进行区分,可使得评审时根据不同的种类确定不同的评审方法,提高评审的效率。

S104、提示代码变化部分需要进行重点评审。

在一些实施例中,针对代码变化部分进行重点评审的方法可视其种类而定。例如,对于针对代码冲突进行修改的代码,评审人员可针对修改后的代码进行评审,如果没有出现错误则评审通过;如果出现错误则评审不通过,并向提交该待提交代码的开发人员发送消息,以提示其修改。对于因误操作导致遗漏或冗余的代码,评审人员可与开发人员确认代码是否出现遗漏或是冗余,若确认为代码遗漏或是代码冗余,评审人员可依据第四差异与第五差异,对代码遗漏进行补充,或是删除掉冗余的部分,并使修改后的待提交文件通过评审。

同时,对于重要的代码文件,本公开实施例在提示代码变化部分需要进行重点评审的情况下,可同时提示在编写时已评审过的代码变化部分,评审人员可针对该部分进行二次评审或了解哪些代码已评审,哪些未评审。

评审人员可依据具体情况对未进行评审的代码变化部分或是全部变化代码部分进行,由此可协助评审人员了解代码的评审情况,由此帮助评审人员提高代码评审的效率。同时,可实现对重要代码文件的重点评审,保证重要代码不会出现错误。

S105、响应于待提交代码评审通过的消息,将待提交代码提交到远程仓库。

使用第一差异确定未进行评审的代码变化部分,并进行需要重点评审的标记,可避免对同一代码进行多次评审,提高了评审的效率。同时,也使得评审人员能够重点关注未进行评审的代码变化部分,避免了评审时因漏审导致没有发现待提交代码中的错误。

为便于对本公开实施例的理解,下面远程仓库中的一个master分支作为本地仓库为例,介绍本公开实施例如何针对代码冲突部分提示进行重点评审。

如图3所示,远程仓库中有一个master分支1,在master分支1中有两个代码文件:代码文件1和代码文件2。其中,代码文件1中包括代码a-代码d,代码文件2中包括代码e-代码g。

研发人员1拉取master分支1的代码文件1和代码文件2作为dev分支1,对dev分支1进行开发;研发人员2同样拉取master分支1的代码文件1和代码文件2作为dev分支2,对dev分支2进行开发。

拉取dev分支1后,如图4所示,研发人员1对dev分支1进行编写,编写后的代码变更部分A包括:对dev分支1代码文件1的代码b进行修改得到代码b1、删除了dev分支1的代码c、对代码d进行修改得到代码d1。研发人员1对代码文件2进行编写:新增加了代码h。

编写完成后,得到已编写代码,还可以获得第二差异即开发后的dev分支1与master分支1之间的差异diffdm1,以及第三差异即dev分支1开发前后的差异diffdd1。diffdm1和diffdd1的内容相同,均为dev分支1的代码变更部分A。第二差异和第三差异进行比对,还可获得第四差异diffi1,由于该实施例中第二差异和第三差异相同,因此第四差异diffi1为空。

同时评审人员会对dev分支1的代码变更部分A进行一次代码评审,主要评审的代码为diffdd1中涉及到的代码。

评审通过后,将开发后的dev分支1与master分支1进行合并,合并所使用的方法可以为git中的merge。具体实施为将dev分支1变更的部分替换master分支对应的部分。由于在dev分支1前没有其他研发人员与master分支1进行合并,因此不会出现代码冲突。merge后master分支1更新为master分支2。如图4所示:master分支2中的代码文件1包括代码a、代码b1、代码d1,代码文件2包括代码e-代码g以及新增加的代码h。

合并完成后,将待提交代码上传至远程仓库中。此时,待提交代码为master分支2。在提交到远程仓库前,可以将待提交代码与远程仓库中的待比对代码进行比对,得到第一差异difflm1。将difflm1与diffdd1进行比对得到第五差异diffr1。由于此前没有其他开发人员提交相同的代码分支到远程仓库,在没有代码遗漏或是代码冗余的情况下,第五差异diffr1也为空。因为diffi1与diffr1均为空,因此没有需要重点评审的代码变化部分。

在上传前,评审人员依据代码变化部分对待提交代码进行评审,由于没有代码变化部分,在评审时无需重点评审,评审通过后,代码上传成功,远程仓库更新。

在前述开发人员1进行代码开发的同时,开发人员2对dev分支2的代码文件1进行编写,如图5所示,代码变更部分B包括:对代码b进行修改,得到代码b2;对dev分支2的代码文件2进行编写:对代码e进行修改,得到代码e2。

编写完成后,得到已编写代码,由于开发人员1已经就相同master分支1进行了合并,此时本地仓库中master分支1已发生了变更,变为master分支2。可以获得dev分支2开发前后的第三差异diffdd2,diffdd2的内容为dev分支2变更的部分。还可获得开发后的dev分支2和master分支2间的第二差异diffdm2。由于dev分支1与master分支进行过合并,diffdm2的内容除diffdd2的内容外还包括diffdd1的内容。对比diffdd2和diffdm2,可以得到diffi2的内容包括:代码文件1中修改得到的代码b1、删除掉的代码c、修改得到的代码d1以及代码文件2中新增的代码h。

同时如图5所示,评审人员会对dev分支2变更部分进行一次代码评审,主要评审的代码为diffdd2中涉及到的代码。

评审通过后,将开发后的dev分支2与master分支2进行合并,将dev分支2变更的部分替换master分支2对应的部分。由于之前dev分支1与master分支1进行过合并,dev分支1同样对代码文件1中的代码b进行过修改,因此在代码b所在的位置会出现代码冲突,此时会提示开发人员2解决代码冲突。

在开发人员2将产生冲突的代码b2修改为代码b3后,完成解决冲突后的dev分支2和master分支2的合并得到master分支3。如图5所示,此时master分支3中的代码文件1包括:代码a、代码b1、代码d1,代码文件2包括代码e2、代码f-代码h。

如图5所示,合并完成后,将待提交代码上传至远程仓库中。此时待提交代码为master分支3。在上传前,可以对比此时的待提交代码与远程仓库,由此得到第一差异difflm2。将difflm2与diffdd2进行比对得到第五差异diffr2。如图5所示,在没有代码遗漏或是代码冗余的情况下,diffr2包括:代码文件1中修改得到的代码b3、删除掉的代码c、修改的代码d1,以及代码文件2中新增的代码h。

对比diffi2和diffr2,可得到代码文件1中的代码b3与代码b1出现区别,则代码b3为需要重点评审的代码变化部分。

在上传前,评审人员依据代码变化部分对待提交的代码进行评审,即需要重点评审代码b3。评审通过后,代码上传成功,远程仓库更新。

同时,在上传至远程仓库,出现代码冗余或是代码缺失时,本公开实施例也可以提示进行重点评审。

如图5所示,假设在上传时出现操作错误,代码文件2中多出代码i,即出现了代码冗余。此时,对比待提交代码与远程仓库得到第一差异difflm2’,将difflm2’与diffdd2进行比对得到第五差异diffr2’。diffr2’除了diffr2的内容外,还包括代码文件2中的代码i。对比diffi2和diffr2’,可得到代码文件1中的代码b3与代码b2出现区别,以及代码文件2中出现代码i,则代码b3和代码i为需要重点评审的代码变化部分。

出现代码缺失时,本公开实施例提示进行重点评审的方法与出现代码冗余类似。仍如图5所示,代码a被误删除了,即出现了代码遗漏。此时,对比待提交代码与远程仓库得到第一差异difflm2”,将difflm2”与diffdd2进行比对得到第五差异diffr2”。diffr2”除了diffr2的内容外,还包括缺失了代码a。对比diffi2和diffr2”,可得到代码文件1中的代码b3与代码b2出现区别,以及代码文件2中缺失代码a,则代码b3和缺失的代码a为需要重点评审的代码变化部分。

需要补充说明的是,在重点提示未评审过的代码变化部分之外,本公开实施例中还可以同时展示已评审过的代码变化部分。例如图4代码文件1为例,master分支1中的代码b和d进行了修改,变更为代码b1和d1,同时代码c被删除。除了重点提示产生冲突的代码b为需要重点评审的代码变更部分,还可以提示代码d1和代码c是相对master分支1的变化点,以便于评审人员不仅可以了解需要重点评审的代码部分,还可以了解其他代码变化情况。

基于相同的技术构思,本公开实施例还提供了一种代码评审的装置,如图6所示,该装置包括:

获取模块601,用于获取待提交到远程仓库的待提交代码;

第一比对模块602,用于将待提交代码与远程仓库的待比对代码进行比对,得到第一差异;

代码变更识别模块603,用于基于第一差异,得到待提交代码中未进行评审的代码变化部分;

第一提示模块604,用于提示代码变化部分需要进行重点评审;

提交模块605,用于响应于待提交代码评审通过的消息,将待提交代码提交到远程仓库。

在一些实施例中,获取模块601,包括:

获取子模块,用于从本地仓库获得待编写代码进行编写,得到已编写代码;

比对子模块,用于在确定已编写代码的评审结果为评审通过的情况下,将已编写代码与本地仓库中的代码进行比对,得到第二差异;

合并子模块,用于在基于第二差异确定不存在代码冲突的情况下,合并已编写代码到本地仓库中,得到待提交代码;以及,

在基于第二差异确定存在代码冲突的情况下,提示修改已编写代码,并将修改后的已编写代码合并到本地仓库中得到待提交代码。

在一些实施例中,合并子模块,用于:

提示产生代码冲突的代码部分。

在一些实施例中,该装置还包括:

第二比对模块,用于将待编写代码与已编写代码进行比对,得到第三差异;

第二提示模块,用于提示基于第三差异对已编写代码进行评审。

在一些实施例中,第二提示模块还用于:

在第二差异与第三差异中包含对同一代码块的编写,则确定存在代码冲突;

在第二差异与第三差异中不包含对同一代码块的编写,则确定不存在代码冲突。

在一些实施例中,代码变更识别模块603,用于:

将第三差异与第二差异进行比对,得到第四差异;

将第一差异和第三差异进行比对,得到第五差异;

将第四差异和第五差异进行比对,得到待提交代码中未进行评审的代码变化部分。

在一些实施例中,该装置还包括:

第三提示模块,用于提示代码变化部分需要进行重点评审的情况下,同时提示已评审过的代码变化部分。

图7示出了可以用来实施本公开的实施例的示例电子设备700的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字助理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。

如图7所示,设备700包括计算单元701,其可以根据存储在只读存储器(ROM)702中的计算机程序或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序,来执行各种适当的动作和处理。在RAM 703中,还可存储设备700操作所需的各种程序和数据。计算单元701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。

设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如代码评审的方法。例如,在一些实施例中,代码评审的方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到RAM 703并由计算单元701执行时,可以执行上文描述的代码评审的方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行代码评审的方法。

本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入、或者触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。本公开实施例可采用服务器执行蛋白质的生成方法。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

相关技术
  • 电子设备的显示控制方法、装置、电子设备和存储介质
  • 电子设备控制方法及装置、电子设备及存储介质
  • 数据分布存储方法、装置、存储介质及电子设备
  • 存储清理方法、装置、电子设备及存储介质
  • 多版本数据存储管理方法及装置、电子设备、存储介质
  • 一种代码评审方法、装置、存储介质及电子设备
  • 代码评审的实现方法、装置、存储介质及电子设备
技术分类

06120115708529