一种控制编码的方法和装置的制作方法

文档序号:6440754阅读:167来源:国知局
专利名称:一种控制编码的方法和装置的制作方法
技术领域
本发明涉及领域计算机软件技术领域,特别涉及一种控制编码的方法和装置。
背景技术
软件开发大部分工作都是编写代码,而代码的质量也就决定了软件的质量,提高代码质量方法之一就是开发团队遵守编码规范。编码规范是一种约定,减少了开发者个人编码的自由度,从某种意义上来说可以帮助开发者不用操心一些编码细节上的选择问题。统一的编码规范可以减少人员之间通信工作量,提高工作效率。现有的软件开发操作中,至少存在如下问题:开发团队中开发者新老不一,水平参差不齐,且各自有着不同的编码习惯。虽然现阶段一些公司会制定规范文档来约束开发者,保证开发团队之间代码的一致性,然而,就算存在规范文档,主动去看并且遵守的开发者是少之又少,规范文档形同虚设,无法达到降低不同开发者通信时的工作量和提高工作效率的效果;在进行项目交接时,编码规范不一致所带来的问题会极为突出,代码修改的工作量会非常大,甚至需要重写代码,从而造成了资源的极大浪费,降低了开发的效率和所开发软件的质量。

发明内容
本发明提供的控制编码的方法和装置,能够达到减少开发者之间通信工作量,提高工作效率的效果,降低项目交接时的技术难度和工作量,提高开发的效率和开发软件的质量。为达到上述目的,本发明实施例采用了如下技术方案:一种控制编码的方法,包括:对源代码进行解析得到源代码所对应的元素信息,所述每一元素信息相应于一种元素模型;根据所述元素模型生成所需的编码规则;将相应的编码规则与所述源代码的元素信息进行比对,并根据比对结果判断源代码是否符合所述编码规则,若是,允许运行所述源代码,若否,禁止运行所述源代码。一种控制编码的装置,该装置包括:源代码解析单元,用于对源代码进行解析得到源代码所对应的元素信息,所述每一元素信息相应于一种元素模型;编码规则设置单元,用于根据所述元素模型生成所需的编码规则;编码控制单元,用于将相应的编码规则与所述源代码的元素信息进行比对,并根据比对结果判断源代码是否符合所述编码规则,若是,允许运行所述源代码,若否,禁止运行所述源代码。本发明实施例的有益效果是:本发明实施例通过对代码结构的具体分析,将源代码解析成元素模型所对应的元素信息,并按照相同的模型生成编码规则代码,通过进行元素信息和编码规则的比对,只有当源代码符合编码规则时,才允许源代码的运行,从而实现了对编码的控制。本发明实施例的方案能够在源代码运行前进行强制检查,保证所运行的源代码符合统一的编码规则,达到减少开发者之间通信工作量,提高工作效率的效果,降低项目交接时的技术难度和工作量,提高了开发的效率和开发软件的质量。


图1为本发明实施例一提供的一种控制编码的方法流程示意图;图2为本发明实施例二提供的一种反射机制的层次模型示意图;图3为本发明实施例二提供的比对结果在界面上显示时的截屏示意图;图4为本发明实施例二提供的控制编码方法的流程图;图5为本发明实施例三提供的一种控制编码的装置结构示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。参见图1,为本发明实施例一提供的一种控制编码的方法,包括如下处理:11:对源代码进行解析得到源代码所对应的元素信息,所述每一元素信息相应于一种元素模型;12:根据与源代码的上述元素模型相同的元素模型生成所需的编码规则。13:将相应的编码规则与所述源代码的元素信息进行比对,并根据比对结果判断源代码是否符合所述编码规则。14:当元素信息和编码规则一致,即源代码符合编码规则时,允许运行所述源代码。15:当元素信息和编码规则不一致,即源代码不符合编码规则时,禁止运行所述源代码。本发明实施例中上述步骤对应的功能可以插件的方式实现,将插件设置于代码开发工具(如代码开发工具FxCop)中。在代码开发工具上,若要运行编写的源代码,首先得编译成中间语言,然后中间语言才能转换为计算机语言执行。本方案在源代码生成中间语言前启动插件强制检查源代码,如有不符合编码规范的现象,则不让源代码生成中间语言,也就是使源代码无法运行,从而保证了所运行的代码都遵从统一的编码规范。下面对本发明实施例二提供的一种控制编码的方法进行说明。本实施例中主要以在代码开发工具FxCop上控制编码的场景为例进行说明,包括如下处理:11:对源代码进行解析得到源代码所对应的元素信息,所述每一元素信息相应于一种元素模型。利用反射机制对源代码进行解析得到源代码所对应的元素信息,所述元素模型包括类和相应的类成员。反射(Reflect)机制具有审查元数据并收集关于它的类型信息的能力,能够实现对程序状态或行为的访问、检测和修改。
参见图2,显示了本实施例提供的一种反射机制的层次模型示意图,这种层次可以表示为:程序集->类->类成员。利用反射机制对程序集中一个程序的源代码进行解析时,可以得到该源代码中的各个类以及相应的类成员,例如,利用Gettypes命令得到一种类型的类,以及该类下的类成员,如事件、字段、方法、属性,构造函数、时间等。例如,对于一个程序集reflecting, exe,利用如下命令先调用反射机制,该反射机制定义了获取反射信息的方法,从而得到对程序集中各程序源代码的解析结果,即各源代码对应的元素信息。
权利要求
1.一种控制编码的方法,其特征在于,所述方法包括: 对源代码进行解析得到源代码所对应的元素信息,所述每一元素信息相应于一种元素模型; 根据所述元素模型生成所需的编码规则; 将相应的编码规则与所述源代码的元素信息进行比对,并根据比对结果判断源代码是否符合所述编码规则,若是,允许运行所述源代码,若否,禁止运行所述源代码。
2.根据权利要求1所述的方法,其特征在于,所述对源代码进行解析得到源代码所对应的元素信息,所述每一元素信息相应于一种元素模型包括: 利用反射机制对源代码进行解析得到源代码所对应的元素信息,所述元素模型包括类和相应的类成员。
3.根据权利要求2所述的方法,其特征在于,所述根据所述元素模型生成所需的编码规则包括: 根据所述元素模型通过继承代码开发工具FxCop中的基础内置规则类BaselntrospectionRule,并重写基础内置规则类中的方法Check,生成所需的编码规则。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括: 为所生成的编码规则添加配置文件,该配置文件标识所述编码规则并设置该编码规则的作用方式。
5.根据权利要求4所述的方法,其特征在于,在将相应的编码规则与所述源代码的元素信息进行比对之前,所述方法还包括: 在包括多个编码规则的规则集中增加一个新的编码规则时,利用新增编码规则的配置文件与该规则集建立关联,将新增的编码规则加入到该规则集中。
6.根据权利要求4所述的方法,其特征在于,在将相应的编码规则与所述源代码的元素信息进行比对之前,所述方法还包括: 根据配置文件从包括多个编码规则的规则集中,选择并提取相应的编码规则。
7.根据权利要求1至6任一项所述的方法,其特征在于,在禁止运行所述源代码之前,所述方法还包括: 接收根据比对结果更新后的源代码,并对更新后的源代码进行解析得到对应的元素信息; 将相应的编码规则与更新后的源代码的元素信息进行比对,根据比对结果判断更新后的源代码是否符合所述编码规则,若是,允许运行更新后的源代码,若否,禁止运行所述源代码和更新后的源代码。
8.—种控制编码的装置,其特征在于,所述装置包括: 源代码解析单元,用于对源代码进行解析得到源代码所对应的元素信息,所述每一元素信息相应于一种元素模型; 编码规则设置单元,用于根据所述元素模型生成所需的编码规则; 编码控制单元,用于将相应的编码规则与所述源代码的元素信息进行比对,并根据比对结果判断源代码是否符合所述编码规则,若是,允许运行所述源代码,若否,禁止运行所述源代码。
9.根据权利要求8所述的装置,其特征在于,所述源代码解析单元,具体用于利用反射机制对源代码进行解析得到源代码所对应的元素信息,所述元素模型包括类和相应的类成员。
10.根据权利要求9所述的装置,其特征在于,所述编码规则设置单元,具体用于根据所述元素模型通过继承代码开发工具FxCop中的基础内置规则类Baselntrosp ectionRule,并重写基础内置规则类中的方法Check,生成所需的编码规则。
全文摘要
本发明公开了一种控制编码的方法和装置,能够减少开发者之间通信工作量,提高工作效率,降低项目交接时的技术难度和工作量,提高开发的效率和开发软件的质量。本发明实施例提供的控制编码的方法,包括对源代码进行解析得到源代码所对应的元素信息,所述每一元素信息相应于一种元素模型;根据所述元素模型生成所需的编码规则;将相应的编码规则与所述源代码的元素信息进行比对,并根据比对结果判断源代码是否符合所述编码规则,若是,允许运行所述源代码,若否,禁止运行所述源代码。
文档编号G06F9/44GK103164325SQ20111040986
公开日2013年6月19日 申请日期2011年12月9日 优先权日2011年12月9日
发明者姚明军 申请人:北京新媒传信科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1