一种代码规范强制检查方法及系统技术方案

技术编号:10431173 阅读:103 留言:0更新日期:2014-09-17 10:20
本发明专利技术涉及一种代码规范强制检查方法,包括:步骤1,在执行源代码编译命令前,判断当前用户是否具有检查权限,若有则执行步骤2,否则结束流程;步骤2,基于基本规范、程序CORE规范、内存泄露规范和SQL规范四个类别检查源代码是否符合规范,若符合则执行源代码编译命令,否则输出不符合规范的代码段。本发明专利技术将检查功能植入到编译命令中,存在不符合代码规范的代码段,不予编译,从根本上规避不规范的代码,且排查问题较为主动,灵活性高,易于执行。

【技术实现步骤摘要】
一种代码规范强制检查方法及系统
本专利技术涉及电信行业的代码检测
,与Linux/Unix shell编程技术和 Linux/Unix C/C++编程技术相关,特别是涉及一种代码规范强制检查方法及系统。
技术介绍
目前的软件行业,编程语言种类繁多,如java、c、C++、c#、jsp、perl、php、delphi 等等,涉及各个领域,代码规范也格式各样,开发人员除了具备过硬的编程技术外,更需要 一个良好的编码规范和编码习惯。然而,除了共性编码规范之外,每一种语言的要求也不 尽相同,甚至尽管是同一种编程语言,每个研发人员的能力和编码风格也各不相同,如何能 有效地规范代码编写呢?是规范文档,组织培训,代码审核,还是导师指导?列举的这样方 法,已有很多软件公司都尝试过,但事实证明达不到期望的效果,归根结底的原因只有一 个:规范检查无法强制执行。 因此,为了规范研发人员的代码排版、规避代码存在的内存泄露、规避SQL语句存 在的性能问题,基于代码在实际研发和运行阶段存在并总结的具体问题,基于研发规范执 行难、效果差等等,造成的后期代码在维护过程中的可读性差、耦合度高、灵活性差等等问 题,基于在生产过程中代码问题排查过于被动(尤其是内存占用和程序C0REDUMP)等,本发 明提出了一种代码规范强制检查方法及系统。
技术实现思路
本专利技术所要解决的技术问题是提供一种代码规范强制检查方法及系统,用于解决 有效规范代码编写的问题。 本专利技术解决上述技术问题的技术方案如下:一种代码规范强制检查方法,包括: 步骤1,在执行源代码编译命令前,判断当前用户是否具有检查权限,若有则执行 步骤2,否则结束流程; 步骤2,基于基本规范、程序CORE规范、内存泄露规范和SQL规范四个类别检查源 代码是否符合规范,若符合则执行源代码编译命令,否则输出不符合规范的代码段。 在上述技术方案的基础上,本专利技术还可以做如下改进。 进一步,所述步骤1中设有用于判断用户权限的程序配置文件。 进一步,所述步骤2还包括:增加代码规范,并检查源代码是否符合新增的代码规 范。 进一步,所述基本规范包括标点符号规范和段落设置规范; 所述程序CORE规范包括输出格式规范、字符初始化规范和类型变量设置规范; 所述内存泄露规范包括utClone使用规范和utype类型返回函数规范; 所述SQL规范包括绑定变量规范和警示级提示规范。 进一步,还包括:若符合规范的源代码增加有代码段,则对新增的代码段重复步骤 1和步骤2,只检查新增的代码段是否符合规范。 本专利技术的技术方案还包括一种代码规范强制检查系统,包括: 权限判断模块,用于在执行源代码编译命令前,判断当前用户是否具有检查权 限; 规范检查模块,用于对具有检查权限的用于,基于基本规范、程序CORE规范、内存 泄露规范和SQL规范四个类别检查源代码是否符合规范; 代码执行模块,用于执行符合规范的源代码的编译命令; 代码输出模块,用于输出不符合规范的代码段。 进一步,权限判断模块中设有用于判断用户权限的程序配置文件。 进一步,所述规范检查模块还用于:增加代码规范,并检查源代码是否符合新增的 代码规范。 进一步,所述基本规范包括标点符号规范和段落设置规范; 所述程序CORE规范包括输出格式规范、字符初始化规范和类型变量设置规范; 所述内存泄露规范包括utClone使用规范和utype类型返回函数规范; 所述SQL规范包括绑定变量规范和警示级提示规范。 进一步,若符合规范的源代码增加有代码段,则规范检查模块只检查新增的代码 段是否符合规范。 本专利技术的有益效果是:本专利技术进行的代码规范的强制检查,能规范程序员的编码, 督促程序员养成良好的编码习惯,同时规范研发人员的代码排版、规避代码存在的内存泄 露、规避SQL语句存在的性能问题等等,提高代码的可读性、易维护性。本专利技术将检查功能 植入到编译命令中,存在不符合代码规范的代码段,不予编译,从根本上规避不规范的代 码,且排查问题较为主动,灵活性高,易于执行。 【附图说明】 图1为本专利技术所述代码规范强制检查方法的流程示意图; 图2为本专利技术实施例中规范检查的整体流程图。 【具体实施方式】 以下结合附图对本专利技术的原理和特征进行描述,所举实例只用于解释本专利技术,并 非用于限定本专利技术的范围。 如图1所示,本实施例给出了一种代码规范强制检查方法,包括: 步骤1,在执行源代码编译命令前,判断当前用户是否具有检查权限,若有则执行 步骤2,否则结束流程; 步骤2,基于基本规范、程序CORE规范、内存泄露规范和SQL规范四个类别检查源 代码是否符合规范,若符合则执行源代码编译命令,否则输出不符合规范的代码段。 源代码经上述检查符合规范后,再执行编译和链接动作,生成可执行文件或静态 库或动态库等,若不符合规范,还需要提示文件哪些代码段不符合规范并给出具体原因,并 不予编译,直到代码修改后全部符合规范,才允许编译。 对应地,本实施例还给出了一种代码规范强制检查系统,包括: 权限判断模块,用于在执行源代码编译命令前,判断当前用户是否具有检查权 限; 规范检查模块,用于对具有检查权限的用于,基于基本规范、程序CORE规范、内存 泄露规范和SQL规范四个类别检查源代码是否符合规范; 代码执行模块,用于执行符合规范的源代码的编译命令; 代码输出模块,用于输出不符合规范的代码段。 该系统的具体实施过程与原理同所述的代码规范强制检查方法一致。 本实施例通过Linux与Unix C/C++编程语言,结合Linux与Unix shell编程技术, 运行环境依赖于UNIX或LINUX系统,主要是后台C或C++文件的代码规范检查。 上述两个步骤说明需要在执行编译命令前进行代码规范强制检查,本实施例的检 查功能植入编译命令技术方案为:新增shell脚本cpschk. sh供编译命令cpmk调用;根据 内容可知在真正执行编译命令cpsmake. sh之前,先调用代码规范检查cpschk. sh,若代码 不符合规范则exit不予编译,实现代码强制检查功能。 cpmk内容如下 if [',$#,' !=T] then echo脚本的用法如下: echo usage: cpmk cQTimeAgeLimit.cpp 表示编译单个 be or bp echo usage: cpmk all 表示编译当前目录下所有的be or bp else indexofsplit='echo ${ 1 }|awk '{n=index($0, /);print n}n echo ${indexofsplit} if[ ${indexofsplit}!, != 0] then fiIepath='echo $ {1 }|awk ' { ns = length($0) nf = length(/) for(k=ns+1 -nf;k>= 1 ;k-) if(substr($0,k,nf)==/) { print substr($0, 0本文档来自技高网...

【技术保护点】
一种代码规范强制检查方法,其特征在于,包括:步骤1,在执行源代码编译命令前,判断当前用户是否具有检查权限,若有则执行步骤2,否则结束流程;步骤2,基于基本规范、程序CORE规范、内存泄露规范和SQL规范四个类别检查源代码是否符合规范,若符合则执行源代码编译命令,否则输出不符合规范的代码段。

【技术特征摘要】
1. 一种代码规范强制检查方法,其特征在于,包括: 步骤1,在执行源代码编译命令前,判断当前用户是否具有检查权限,若有则执行步骤 2,否则结束流程; 步骤2,基于基本规范、程序CORE规范、内存泄露规范和SQL规范四个类别检查源代码 是否符合规范,若符合则执行源代码编译命令,否则输出不符合规范的代码段。2. 根据权利要求1所述的代码规范强制检查方法,其特征在于,所述步骤1中设有用于 判断用户权限的程序配置文件。3. 根据权利要求1所述的代码规范强制检查方法,其特征在于,所述步骤2还包括:增 加代码规范,并检查源代码是否符合新增的代码规范。4. 根据权利要求1所述的代码规范强制检查方法,其特征在于,所述基本规范包括标 点符号规范和段落设置规范; 所述程序CORE规范包括输出格式规范、字符初始化规范和类型变量设置规范; 所述内存泄露规范包括utClone使用规范和utype类型返回函数规范; 所述SQL规范包括绑定变量规范和警示级提示规范。5. 根据权利要求1至4中任一所述的代码规范强制检查方法,其特征在于,还包括:若 符合规范的源代码增加有代码段,则对新增的代码段重复步骤1和步骤2,只检查新增的代 码段是否符合规范。6. -种代...

【专利技术属性】
技术研发人员:刘光彩
申请(专利权)人:北京思特奇信息技术股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1