本文介绍几个衡量代码质量的指标和工具
1 CAP篇
不好的程序。
刚性程序:不易改变的程序。
脆弱程序:改变了一个地方会影响其他一个看似貌不相关的地方。
一切的一切都是依赖的问题,不要依赖细节实现,请依赖抽象。因为抽象的东西一般比较稳定。
稳定性:一方面,不依赖别的什么东西,是一种稳定性的体现。另一方面,被很多东西依赖,导致难以变动,一样是一种稳定性的体现。核心是这个接口要抽象的合适。
类的组:(这个也就是java的包了)
1 共同对变更开放。
2 一同被重用。
3 共享一些方法或者有共同的一个目标。
好了,可以有一些手段来衡量一个包了。
Ca Afferent Couplings:被其他包依赖的数量。
Ce Efferent Couplings:依赖其他包的数量。
I Instability:Ce/(Ca+Ce),
A Abstractness: # abstract classes / # all classes
A-I图:注意Main Sequence。
[img]http://dl.iteye.com/upload/attachment/296887/82be130a-403e-3283-a4d9-59861fa7298e.jpg[/img]
D Distance:|(A+I-1)|,理想的程序是应该在主线的两端的,但是一般的程序都是在抽象类和具体类之间找一个平衡。所以只要尽量靠近主线就好了。
呵呵,有了CAP plug in,这些代码的质量方法衡量就有了用武之地。
2 Check Style
NPATH:一个方法的所有可能执行路径数。
1 CAP篇
不好的程序。
刚性程序:不易改变的程序。
脆弱程序:改变了一个地方会影响其他一个看似貌不相关的地方。
一切的一切都是依赖的问题,不要依赖细节实现,请依赖抽象。因为抽象的东西一般比较稳定。
稳定性:一方面,不依赖别的什么东西,是一种稳定性的体现。另一方面,被很多东西依赖,导致难以变动,一样是一种稳定性的体现。核心是这个接口要抽象的合适。
类的组:(这个也就是java的包了)
1 共同对变更开放。
2 一同被重用。
3 共享一些方法或者有共同的一个目标。
好了,可以有一些手段来衡量一个包了。
Ca Afferent Couplings:被其他包依赖的数量。
Ce Efferent Couplings:依赖其他包的数量。
I Instability:Ce/(Ca+Ce),
A Abstractness: # abstract classes / # all classes
A-I图:注意Main Sequence。
[img]http://dl.iteye.com/upload/attachment/296887/82be130a-403e-3283-a4d9-59861fa7298e.jpg[/img]
D Distance:|(A+I-1)|,理想的程序是应该在主线的两端的,但是一般的程序都是在抽象类和具体类之间找一个平衡。所以只要尽量靠近主线就好了。
呵呵,有了CAP plug in,这些代码的质量方法衡量就有了用武之地。
2 Check Style
NPATH:一个方法的所有可能执行路径数。