软件重构是改善代码可读性.可扩展性.可维护性等目的的常见技术手段.圈复杂度作为一项软件质量度量指标,能从一定程度上反映这些内部质量需求(当然并不是全部),所以圈复杂度往往被很多项目采用作为软件质量的度量指标之一. C语言开发的项目中,switch/case代码块是一个很容易造成圈复杂度超标的语言特性,所以本文主要介绍下降低switch/case圈复杂度的重构方法(如下图).switch圈复杂度优化重构可分为两部分:程序块的重构和case的重构.程序块重构是对代码的局部优化,而case重构是对代码…
圈复杂度(Cyclomatic Complexity)是很常用的一种度量软件代码复杂程度的标准.这里所指的“代码复杂程度”并非软件内在业务逻辑的复杂程度,而是指代码的实现方式的 复杂程度.说起来有点绕是么?打个比方就是嘴笨的人可以把简单的事情说得很复杂.虽然“内在业务逻辑”与“实现方式”有紧密的联系,有很多研究统计指出, 圈复杂度高的代码中错误的可能性更大,维护的成本更高.   它的计算方法很简单,计算公式为:V(G)=e-n+2.其中,e表示控制流图中边的数量,n表示控制流图中节点的数量.其实…
1.下载gometalinter release地址为:https://github.com/alecthomas/gometalinter/releases/tag/v3.0.0 下载windows版本:https://github.com/alecthomas/gometalinter/releases/download/v3.0.0/gometalinter-3.0.0-windows-amd64.zip 解压缩 copy所有.exe到C:\Users\ahfuzhang\go\bin 2…
Campwood Software SourceMonitor Version 3.5 The freeware program SourceMonitor lets you see inside your software source code to find out how much code you have and to identify the relative complexity of your modules. For example, you can use SourceMo…
转载自: https://juejin.im/post/59bb8b546fb9a00a4247532e 背景 代码的复杂度是评估一个项目的重要标准之一.较低的复杂度既能减少项目的维护成本,又能避免一些不可控问题的出现.然而在日常的开发中却没有一个明确的标准去衡量代码结构的复杂程度,大家只能凭着经验去评估代码结构的复杂程度,比如,代码的程度.结构分支的多寡等等.当前代码的复杂度到底是个什么水平?什么时候就需要我们去优化代码结构.降低复杂度?这些问题我们不得而知.因此,我们需要一个明确的标准去衡量…
没有什么好的设计方式可以实现,减少一个方法中出现几十个 if 匹配的判断? 现在要做一个判断客户是否通过验证的接口. 一共有30多个验证规则的判断, 每个规则对应一个规则号: 这个接口只需要返回是否验证通过 接口参数是一个数组,数组里面放入的是需要验证哪些规则的规则号: 我想到的比较原始的方法可能是 /** * 验证客户是否通过验证 * @param rules 需要验证的多条规则的对应码的数组 / public boolean checkPass(int[] rules){ boolean i…
1 软件度量值指标 1.1 可维护性指数 表示源代码的可维护性,数值越高可维护性越好.该值介于0到100之间.绿色评级在20到100之间,表明该代码具有高度的可维护性:黄色评级在10到19之间,表示该代码适度可维护:红色评级在0至9之间,表示低可维护性. 1.2 圈复杂度 它是通过计算程序流中不同代码路径的数量来创建的,用来表示一个程序的复杂性.具有复杂控制流的程序需要更多的测试才能获得良好的代码覆盖率,并且不易维护. 以下两种情况会在计算圈复杂度时加1: 分支(if.while.do) swi…
1 软件度量值指标 1.1 可维护性指数 表示源代码的可维护性,数值越高可维护性越好.该值介于0到100之间.绿色评级在20到100之间,表明该代码具有高度的可维护性:黄色评级在10到19之间,表示该代码适度可维护:红色评级在0至9之间,表示低可维护性. 1.2 圈复杂度 它是通过计算程序流中不同代码路径的数量来创建的,用来表示一个程序的复杂性.具有复杂控制流的程序需要更多的测试才能获得良好的代码覆盖率,并且不易维护. 以下两种情况会在计算圈复杂度时加1: 分支(if.while.do) swi…
代码的环复杂度(Cyclomatic complexity,有的地方又翻译成圈复杂度)是一种代码复杂度的衡量标准,在1976年由Thomas J. McCabe, Sr. 提出. 在软件测试的概念里,圈复杂度用来衡量一个模块判定结构的复杂程度,数量上表现为独立线性路径条数,即合理的预防错误所需测试的最少路径条数.圈复杂度大说明程序代码可能质量低且难于测试和维护. 计算公式 环复杂度 = E − N + 2 E = 程序控制流图中边的个数 N = 程序控制流图中点的个数 看个具体的例子.下面这段A…
转载自: https://blog.csdn.net/zh_geo/article/details/52954145 VS2012 -> Analyze -> Calculate code metrics feature. 代码度量(Code Metrics)是用来测量专业标准的软件特性. 在某些方面,它提供了量化的有用反馈给开发者. 查看代码度量值很简单:在项目或解决方案上按右键,选择"Calculate Code Metrics". 以下是一些类似的结果: 结果窗口中有…