サイクロマティック複雑度
処理の流れを示すL(リンク)= 分岐してるかどうか
処理単位N(ノード)= ソースの行
独立した処理部分の数P
サイクロマティック複雑度 M = L - N + 2P
例
code:python
def spam(self, x, y)
if x != 0:
y = y / x
if y > 0:
y = y -1
https://gyazo.com/cad8d690d8028278929d747dd9f62235
処理の流れを示すL = 6( 矢印の数6本)
処理単位N = 5(行数+到達点の四角で5個)
独立した処理部分の数P = 2(分岐後の処理は2つ)
M = 6 - 5 + 2 * 2
M = 5
一般的には10以下が良いそうです。