编辑: ACcyL 2019-07-02

1 号金玉兰广场西楼

902 室Rm. 902, Golden Magnolia Plaza, W.

1 Dapu Road, Huangpu District

200023 Shanghai, P.R. China www.parasoft.com 第5页直接的利益是指减少违规数量是如何提高代码质量的. 非直接利益是指其他不曾预料到的带给开发人员的好处. 图2显示了编码违规数量的总体趋势. 为消除规则不断发展带来的影响, 我们使用最新的规则来进行 所有的检查. 在一个从

10 月4日到

1 月5日间相对稳定的违规数量之后, 在2月5日有一个大约 1/8 的违规减少.从2月5日到

3 月5日间,有一个不希望有的违规增加,但这是可以接受的,因为目标项 目仍在继续向前推进. 图2:总的违规数量/每千行代码 图3显示了违规校正对只对当前模块有影响的违规数量.从采用检查器之日起,违规数量减少了 6.6 个百分比. 这个数量没有包括注释规则--这通常不会有大的变化影响但确实是需要重要的进行变更的工作. 图3:小变化违规数量/每千行代码 图4显示了校正不只影响当前模块的违规数量.从引入检查器以来,违规减少了 19.6 个百分点. 上海市打浦路

1 号金玉兰广场西楼

902 室Rm. 902, Golden Magnolia Plaza, W.

1 Dapu Road, Huangpu District

200023 Shanghai, P.R. China www.parasoft.com 第6页图4:有大的改变影响的违规的数量/每千行代码 代码规则检查给我们带来的一个意外收获, 就是它对开发人员的教育和知识能力提升. 新的开发人员, 甚至是一些有经验的开发人员,在开始的时候不大理解一些编码规则项的意义和重要性.比如,编码规则 项 最好进行初始化而不是分配 是被认为是一个有效的方法来初始化一个构造函数中的成员变量(可参 考: 《Effective C++》 ,作者:Scott Meyers,Addison-Wesley,1992) .一些开发人员不理解为什么在 一个构造函数的列表中对成员进行初始化要比在构造函数体中对成员分配初始化值要更好.他们在查看检 查器的检查结果时讨论这些问题.这就最终帮助开发人员完全理解了 C++的特点,并且也展示了编码规 则检查是如何帮助开发人员,使他们从犯错中进行学习成长的. 另一个间接带来的好处就是去除了那些不切实际的编码规则项.当我们应用编码规则一项目 MOBILE 中去的时候,我们发现大多数开发人员并不遵守这条规则即 每行不要

80 格 ,这条规则的产生是因为 有些老的开发环境是

80 格显示.我们检查了我们的开发环境并得出结论:在我们的条件下,这种有限制 的开发环境很少使用,我们建议一行使用更长的格. 所有我们将一行的格数限制从

80 格改到

150 格. 这种编码规则修改也可以提高开发人员对遵守编码规则的接受程度. 学到了什么 直到最近以前,我们的检查还只是 QA 部门在工程级别上检查是否遵守编码规则.这对于追踪缺陷倾 向和维护一套规则是有效果的.但是会有一些缺点. 首先,报告的违规来源并不总是开发环境中的那段代码.开发人员通常并不在一个集中的源码库中操 作,他们在自己的区域进行书写和修改代码,然后复制或 check-in 源码到集中的代码库中.如果开发源 上海市打浦路

1 号金玉兰广场西楼

902 室Rm. 902, Golden Magnolia Plaza, W.

1 Dapu Road, Huangpu District

200023 Shanghai, P.R. China www.parasoft.com 第7页码和 QA 测试的代码不一样,那么开发人员要识别和修改报告违规的来源就比较困难了. 再者,开发人员希望立即能够验证到对于违规的校正已经消除了存在的问题. 基于这些原因,我们决定要让开发人员和 QA 一样可以运行编码规则检查工具. 那些不认真遵守规则的开发人员会产生很多有违规的代码,并且也通常不会去校正这些代码违规.这是尤 其会产生与识别或设计相关的违规问题,这样会使得在以后的开发阶段来校正这些错误非常困难,因为那 时进行这样的校正会有一个较大的,整个工程范围的影响.所以我们推荐将编码规则检查从早期的编码阶 段就开始,这样违规代码就能在传出模块之前就得到校正. 为什么我们以前的工具没能在编码规则检查上发挥效应的也是因为在整个组织级别上缺乏对规则的 维护. 在一套初始规则建立之后,规则应该得到不断的修改定义,因为某些规则也许不适用于特定的项目, 开发风格会根据开发的领域不同而会有改变.一套规则应在项目不断往前推进的过程中根据项目的具体操 作而进行不断的维护更新. 自动的编码规则检查是对代码走查的一个补充.在我们的开发过程中,代码走查是强制的,因为这样 可以有效地找出开发人员的逻辑错误和失误.然而,开发人员也会因为工期太紧的压力跳过代码走查.根 据我们的经验和研究显示,一些开发人员很容易被一些编码风格问题弄得很头痛,并在代码走查的过程中 花很多工夫到这个上面 (参见: D. Kelly 和T. Shepard 编写的 Qualitative Observations from Software Code Inspection Experiments 一书;

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题