CN109284225A - 一种多人协同开发编程代码的质量检测方法及电子设备 - Google Patents

一种多人协同开发编程代码的质量检测方法及电子设备 Download PDF

Info

Publication number
CN109284225A
CN109284225A CN201810961766.4A CN201810961766A CN109284225A CN 109284225 A CN109284225 A CN 109284225A CN 201810961766 A CN201810961766 A CN 201810961766A CN 109284225 A CN109284225 A CN 109284225A
Authority
CN
China
Prior art keywords
code
document convention
passing
detection
specification document
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.)
Pending
Application number
CN201810961766.4A
Other languages
English (en)
Inventor
李天驰
孙悦
罗倩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Dianmao Technology Co Ltd
Original Assignee
Shenzhen Dianmao Technology Co Ltd
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 Shenzhen Dianmao Technology Co Ltd filed Critical Shenzhen Dianmao Technology Co Ltd
Priority to CN201810961766.4A priority Critical patent/CN109284225A/zh
Publication of CN109284225A publication Critical patent/CN109284225A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开一种多人协同开发编程代码的质量检测方法及电子设备,其中,方法包括步骤:A、预先配置代码规范文件规则以及配置代码格式化文件规则;B、当提交代码时,通过所述代码格式化文件规则自动格式化代码;C、通过所述代码规范文件规则对代码进行检测;D、当通过检测时,将代码合并至主分支,当未通过检测时,提示修改代码,并重新提交修改后的代码。通过本发明,规范了代码风格,降低了多人协同的开发成本;限制低质量代码的提交,让开发人员提高对自身要求,降低程序bug出现的可能性,和提高问题定位的速度。

Description

一种多人协同开发编程代码的质量检测方法及电子设备
技术领域
本发明涉及计算机技术领域,尤其涉及一种多人协同开发编程代码的质量检测方法及电子设备。
背景技术
由于产品更新迭代速度快,开发时间短,很容易出现代码质量低的情况。代码质量低又会导致开发效率下降,bug数量增多,测试时间和修复问题时间增多。
现有技术中,可以通过增加人力的方式来降低业务压力,但是很可能会造成代码风格不一致,沟通成本上升。
当项目开发人员的变更时,低质量的代码可能会让接手开发人员花时间去重构项目以适应更复杂的需求。
因此,现有技术还有待于改进和发展。
发明内容
鉴于上述现有技术的不足,本发明的目的在于提供一种多人协同开发编程代码的质量检测方法及电子设备,旨在解决现有技术中代码质量低导致开发效率低等问题。
本发明的技术方案如下:
一种多人协同开发编程代码的质量检测方法,其中,包括步骤:
A、预先配置代码规范文件规则以及配置代码格式化文件规则;
B、当提交代码时,通过所述代码格式化文件规则自动格式化代码;
C、通过所述代码规范文件规则对代码进行检测;
D、当通过检测时,将代码合并至主分支,当未通过检测时,提示修改代码,并重新提交修改后的代码。
所述的多人协同开发编程代码的质量检测方法,其中,所述步骤D中,在将代码合并至主分支前,对代码进行评审,评审通过后将代码合并至主分支。
所述的多人协同开发编程代码的质量检测方法,其中,所述步骤A具体包括:
A1、预先配置代码规范文件规则以及配置代码格式化文件规则;
A2、将代码规范文件规则以及代码格式化文件规则添加至代码规则集中。
所述的多人协同开发编程代码的质量检测方法,其中,所述步骤A2中,使用git或npm管理所述代码规则集。
所述的多人协同开发编程代码的质量检测方法,其中,所述步骤C中,利用githooks工具husky进行代码检测。
一种电子设备,其中,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的质量检测程序,所述质量检测程序被所述处理器执行时实现如下步骤:
预先配置代码规范文件规则以及配置代码格式化文件规则;
当提交代码时,通过所述代码格式化文件规则自动格式化代码;
通过所述代码规范文件规则对代码进行检测;
当通过检测时,将代码合并至主分支,当未通过检测时,提示修改代码,并重新提交修改后的代码。
所述的电子设备,其中,所述当通过检测时,将代码合并至主分支,当未通过检测时,提示修改代码,并重新提交修改后的代码的步骤中,在将代码合并至主分支前,对代码进行评审,评审通过后将代码合并至主分支。
所述的电子设备,其中,所述预先配置代码规范文件规则以及配置代码格式化文件规则的步骤具体包括:
预先配置代码规范文件规则以及配置代码格式化文件规则;
将代码规范文件规则以及代码格式化文件规则添加至代码规则集中。
所述的电子设备,其中,使用git或npm管理所述代码规则集。
一种非易失性计算机可读存储介质,其中,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行所述的质量检测方法。
一种计算机程序产品,其中,计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被处理器执行时,使所述处理器执行所述的质量检测方法。
有益效果:通过本发明,规范了代码风格,降低了多人协同的开发成本;限制低质量代码的提交,让开发人员提高对自身要求,降低程序bug出现的可能性,和提高问题定位的速度。
附图说明
图1为本发明一种多人协同开发编程代码的质量检测方法较佳实施例的流程图。
图2为本发明一种电子设备较佳实施例的结构框图。
具体实施方式
本发明提供一种多人协同开发编程代码的质量检测方法及电子设备,为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参阅图1,图1为本发明一种多人协同开发编程代码的质量检测方法较佳实施例的流程图,其包括步骤:
S1、预先配置代码规范文件规则以及配置代码格式化文件规则;
S2、当提交代码时,通过所述代码格式化文件规则自动格式化代码;
S3、通过所述代码规范文件规则对代码进行检测;
S4、当通过检测时,将代码合并至主分支,当未通过检测时,提示修改代码,并重新提交修改后的代码。
通过本发明,规范了代码风格,降低了多人协同的开发成本;限制低质量代码的提交,让开发人员提高对自身要求,降低程序bug出现的可能性,和提高问题定位的速度。
具体地,在步骤S1中,预先配置代码规范文件规则以及配置代码格式化文件规则。
进一步,所述步骤S1具体包括:
S11、预先配置代码规范文件规则以及配置代码格式化文件规则;
S12、将代码规范文件规则以及代码格式化文件规则添加至代码规则集中。
在所述步骤S11中,先配置代码规范文件规则以及配置代码格式化文件规则。
然后在步骤S12中,将代码规范文件规则以及代码格式化文件规则添加至代码规则集中。具体可使用git或npm管理所述代码规则集。
Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。GIT不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。Git与常用的版本控制工具CVS,Subversion等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
npm是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:允许用户从NPM服务器下载别人编写的第三方包到本地使用。允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。
在所述步骤S2中,当提交代码时,通过所述代码格式化文件规则自动格式化代码。
即,当编写代码完成后,需要将编写的代码提交,例如提交git仓库。
有两种取得Git仓库的方法。第一种是在现有项目或目录下导入所有文件到Git中;第二种是从一个服务器克隆一个现有的Git仓库。
本发明可在现有目录中初始化仓库,并导入文件,即使用Git来对现有的项目进行管理,只需要进入该项目目录并输入如下命令:$git init。
该命令将创建一个名为.git的子目录,这个子目录含有初始化的Git仓库中所有的必须文件,这些文件是Git仓库的骨干。如果是在一个已经存在文件的文件夹(而不是空文件夹)中初始化Git仓库来进行版本控制的话,则应该开始跟踪这些文件并提交。具体可通过git add命令来实现对指定文件的跟踪,然后执行git commit提交。
此时,可运行提交代码命令,当接收到提交代码的命令后,自动对代码进行格式化,即利用前述的代码格式化文件规则进行自动格式化。
在所述步骤S3中,通过所述代码规范文件规则对代码进行检测。
具体地,利用git hooks工具husky进行代码检测。即,利用git hooks工具husky配合代码规则集对代码进行检测。
hooks(钩子)是在"$GIT-DIR/hooks"目录的脚本,在被特定的事件(certainpoints)触发后被调用。当"git init"命令被调用后,一些示例钩子文件被拷到新仓库的hooks目录中;但是在默认情况下这些钩子是不生效的。把这些钩子文件的".sample"文件名后缀去掉就可以使它们生效了。
在所述步骤S4中,当通过步骤S3的检测时,将代码合并至主分支。
进一步,在将代码合并至主分支前,对代码进行评审(code review),评审通过后将代码合并至主分支。另外,在进行评审前,还将代码推送到开发分支进行测试,测试通过后再进行评审。如果评审通过,则发布到线上。如果评审未通过,则需要对代码进行修改,并重新提交修改后的代码,再运行修改后的代码,并进行检测和后续的评审等。
代码评审可用于检查设计的合理性和业务逻辑的正确性。
即代码的设计是否符合设计要求:如果存在代码和设计有出入的地方需要确认原因,因为这些变动有可能是出于开发者在真正设计代码时候的深入考虑,或者是由于一时大意出现偏差。
业务逻辑是否正确:业务流程是否按照详细设计的流程走,需要避免出现原本是先A流程后B流程而设计的时候,出现先B后A,或者丢失流程。
传入参数是否合理:判断某些接口的参数输入是否是冗余的,比如输入A字段可以满足A接口里面的所有操作,那么多输入一个B就是冗余的。
数据库字段的设计:数据库的设计是对实际业务的映射,需要确保每一个字段的出现都反应实际业务并且经过合理性的验证,比如设计table1的时候,A字段在table2中已经出现,并且A和B表有相应的关联,那么要判断A字段对于table1的冗余是否有合理性,如果没有合理的说服性可以去掉A,而节省对A字段的维护成本(存储空间,更新操作等)。
某些判断是否合理:比如某些参数的输入金额是否可以为0的判断等等。
系统交互是否合理:比如在代码设计的时候没有考虑系统交互的顺序而造成有些信息不能获取到;比如获取支付方式的费率信息必须要等待支付的时候才能拿到,那么获取这些信息就应该放在pay_trans的时候而不是create_trans。
是否有异常处理机制:在进行代码设计时,应该考虑各种异常并对相应的异常做出合理的处理,比如接口的可重入,当代码检测到有重入的这种情况,采用相应的处理方式使得调用方能捕捉的这些异常而进行后面的处理。
当未通过步骤S3的检测时,提示修改代码,代码修改后,重新提交修改后的代码。然后再运行修改后的代码,并进行检测和后续的评审等。
当提示修改代码时,则在编辑器内对不符合规则的代码进行标红提示,以方便修改代码。
请参阅图2,本发明还提供一种电子设备10,其包括:
处理器110,适于实现各指令,以及
存储设备120,适于存储多条指令,所述指令适于由处理器加载并执行:
预先配置代码规范文件规则以及配置代码格式化文件规则;
当提交代码时,通过所述代码格式化文件规则自动格式化代码;
通过所述代码规范文件规则对代码进行检测;
当通过检测时,将代码合并至主分支,当未通过检测时,提示修改代码,并重新提交修改后的代码。
所述处理器110可以为通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、单片机、ARM(Acorn RISC Machine)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。还有,处理器还可以是任何传统处理器、微处理器或状态机。处理器也可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器结合DSP核、任何其它这种配置。
存储设备120作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的排行榜表格的排列方法对应的程序指令。处理器通过运行存储在存储设备中的非易失性软件程序、指令以及单元,从而执行排行榜表格的排列方法的各种功能应用以及数据处理,即实现上述方法实施例中的排行榜表格的排列方法。
进一步,所述当通过检测时,将代码合并至主分支,当未通过检测时,提示修改代码,并重新提交修改后的代码的步骤中,在将代码合并至主分支前,对代码进行评审,评审通过后将代码合并至主分支。
进一步,所述预先配置代码规范文件规则以及配置代码格式化文件规则的步骤具体包括:
预先配置代码规范文件规则以及配置代码格式化文件规则;
将代码规范文件规则以及代码格式化文件规则添加至代码规则集中。
关于上述电子设备10的具体技术细节在前面的方法中已有详述,故不再赘述。
本发明还提供一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行所述的质量检测方法。
本发明还提供一种计算机程序产品,计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被处理器执行时,使所述处理器执行所述的质量检测方法。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

Claims (10)

1.一种多人协同开发编程代码的质量检测方法,其特征在于,包括步骤:
A、预先配置代码规范文件规则以及配置代码格式化文件规则;
B、当提交代码时,通过所述代码格式化文件规则自动格式化代码;
C、通过所述代码规范文件规则对代码进行检测;
D、当通过检测时,将代码合并至主分支,当未通过检测时,提示修改代码,并重新提交修改后的代码。
2.根据权利要求1所述的多人协同开发编程代码的质量检测方法,其特征在于,所述步骤D中,在将代码合并至主分支前,对代码进行评审,评审通过后将代码合并至主分支。
3.根据权利要求1所述的多人协同开发编程代码的质量检测方法,其特征在于,所述步骤A具体包括:
A1、预先配置代码规范文件规则以及配置代码格式化文件规则;
A2、将代码规范文件规则以及代码格式化文件规则添加至代码规则集中。
4.根据权利要求3所述的多人协同开发编程代码的质量检测方法,其特征在于,所述步骤A2中,使用git或npm管理所述代码规则集。
5.根据权利要求4所述的多人协同开发编程代码的质量检测方法,其特征在于,所述步骤C中,利用git hooks工具husky进行代码检测。
6.一种电子设备,其特征在于,包括:
处理器,适于实现各指令,以及
存储设备,适于存储多条指令,所述指令适于由处理器加载并执行:
预先配置代码规范文件规则以及配置代码格式化文件规则;
当提交代码时,通过所述代码格式化文件规则自动格式化代码;
通过所述代码规范文件规则对代码进行检测;
当通过检测时,将代码合并至主分支,当未通过检测时,提示修改代码,并重新提交修改后的代码。
7.根据权利要求6所述的电子设备,其特征在于,所述当通过检测时,将代码合并至主分支,当未通过检测时,提示修改代码,并重新提交修改后的代码的步骤中,在将代码合并至主分支前,对代码进行评审,评审通过后将代码合并至主分支。
8.根据权利要求6所述的电子设备,其特征在于,所述预先配置代码规范文件规则以及配置代码格式化文件规则的步骤具体包括:
预先配置代码规范文件规则以及配置代码格式化文件规则;
将代码规范文件规则以及代码格式化文件规则添加至代码规则集中。
9.一种非易失性计算机可读存储介质,其特征在于,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行权利要求1-5任一项所述的质量检测方法。
10.一种计算机程序产品,其特征在于,计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被处理器执行时,使所述处理器执行权利要求1-5任一项所述的质量检测方法。
CN201810961766.4A 2018-08-22 2018-08-22 一种多人协同开发编程代码的质量检测方法及电子设备 Pending CN109284225A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810961766.4A CN109284225A (zh) 2018-08-22 2018-08-22 一种多人协同开发编程代码的质量检测方法及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810961766.4A CN109284225A (zh) 2018-08-22 2018-08-22 一种多人协同开发编程代码的质量检测方法及电子设备

Publications (1)

Publication Number Publication Date
CN109284225A true CN109284225A (zh) 2019-01-29

Family

ID=65182907

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810961766.4A Pending CN109284225A (zh) 2018-08-22 2018-08-22 一种多人协同开发编程代码的质量检测方法及电子设备

Country Status (1)

Country Link
CN (1) CN109284225A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109981441A (zh) * 2019-02-19 2019-07-05 深圳点猫科技有限公司 一种基于图形编程的定时发送统计数据的方法及电子设备
CN110704298A (zh) * 2019-08-23 2020-01-17 北京奇艺世纪科技有限公司 一种代码验证的方法、装置、终端设备及存储介质
CN111381861A (zh) * 2020-04-02 2020-07-07 中国建设银行股份有限公司 一种软件协同投产处理方法及装置
CN112435007A (zh) * 2020-11-26 2021-03-02 平安普惠企业管理有限公司 基于Node.js的代码提交方法、装置、计算机设备及存储介质
CN112486566A (zh) * 2020-10-23 2021-03-12 百果园技术(新加坡)有限公司 代码文件处理方法、装置、设备及存储介质
CN113127027A (zh) * 2019-12-31 2021-07-16 深圳云天励飞技术有限公司 一种基于分布式版本控制系统的版本更新方法及装置
CN114385489A (zh) * 2021-12-28 2022-04-22 联通智网科技股份有限公司 前端开发代码检测方法、装置及存储介质
CN115408303A (zh) * 2022-11-01 2022-11-29 云账户技术(天津)有限公司 前端静态资源的维护方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2221725A1 (en) * 2009-02-19 2010-08-25 Mecel Aktiebolag Validator for validating conformity of a software configuration
CN106201642A (zh) * 2016-06-29 2016-12-07 微梦创科网络科技(中国)有限公司 一种基于nodejs的模板自动化编译上线方法及系统
CN108319854A (zh) * 2017-12-29 2018-07-24 上海瑞家信息技术有限公司 一种增量代码静态扫描方法、设备及计算机可读存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2221725A1 (en) * 2009-02-19 2010-08-25 Mecel Aktiebolag Validator for validating conformity of a software configuration
CN106201642A (zh) * 2016-06-29 2016-12-07 微梦创科网络科技(中国)有限公司 一种基于nodejs的模板自动化编译上线方法及系统
CN108319854A (zh) * 2017-12-29 2018-07-24 上海瑞家信息技术有限公司 一种增量代码静态扫描方法、设备及计算机可读存储介质

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109981441A (zh) * 2019-02-19 2019-07-05 深圳点猫科技有限公司 一种基于图形编程的定时发送统计数据的方法及电子设备
CN110704298A (zh) * 2019-08-23 2020-01-17 北京奇艺世纪科技有限公司 一种代码验证的方法、装置、终端设备及存储介质
CN113127027A (zh) * 2019-12-31 2021-07-16 深圳云天励飞技术有限公司 一种基于分布式版本控制系统的版本更新方法及装置
CN111381861A (zh) * 2020-04-02 2020-07-07 中国建设银行股份有限公司 一种软件协同投产处理方法及装置
CN112486566A (zh) * 2020-10-23 2021-03-12 百果园技术(新加坡)有限公司 代码文件处理方法、装置、设备及存储介质
CN112435007A (zh) * 2020-11-26 2021-03-02 平安普惠企业管理有限公司 基于Node.js的代码提交方法、装置、计算机设备及存储介质
CN114385489A (zh) * 2021-12-28 2022-04-22 联通智网科技股份有限公司 前端开发代码检测方法、装置及存储介质
CN115408303A (zh) * 2022-11-01 2022-11-29 云账户技术(天津)有限公司 前端静态资源的维护方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN109284225A (zh) 一种多人协同开发编程代码的质量检测方法及电子设备
US9170921B2 (en) Application testing automation
WO2020233037A1 (zh) 数据处理方法、装置及存储介质
US9098364B2 (en) Migration services for systems
US8645326B2 (en) System to plan, execute, store and query automation tests
US7984426B2 (en) Graphical representation of dependencies between changes of source code
US9122804B2 (en) Logic validation and deployment
CN108459962A (zh) 代码规范性检测方法、装置、终端设备及存储介质
CN108830715A (zh) 批量文件部分回盘处理方法和系统
EP2199905A1 (en) Lifecycle management and consistency checking of object models using application platform tools
CN103440460A (zh) 一种应用系统变更验证方法及验证系统
CN111445299A (zh) 发票开具方法及设备
US20140316926A1 (en) Automated Market Maker in Monitoring Services Marketplace
US20210406002A1 (en) Client-side enrichment and transformation via dynamic logic for analytics
CN117215558A (zh) 安卓的基于可视化的软件开发方法、装置、设备及介质
US20140012830A1 (en) Data verification system
CN114338850B (zh) 报文核对方法、装置、终端设备及计算机可读存储介质
US20160070542A1 (en) Facilitating use of techniques implemented by external library functions in process definitions of analytical applications
CN113468058B (zh) 软件即服务平台的回归测试方法、装置及电子设备
CN112819621B (zh) 一种智能合约资损测试方法及系统
CN109298883A (zh) 一种教育平台下的自动生成组件文件的方法及电子设备
CN108804328A (zh) 一种安卓应用兼容性测试的方法
US11074069B2 (en) Replaying interactions with transactional and database environments with re-arrangement
CN114201166A (zh) 报文信息的生成方法和装置、电子设备和存储介质
CN113504904A (zh) 用户定义函数实现方法、装置、计算机设备和存储介质

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20190129

RJ01 Rejection of invention patent application after publication