[開発] SonarQube Cyclomatic Complexity 循環的複雑度

SonarQube が出す「複雑度」って何よ?
 
で、Complexityって何よ?
循環的複雑度 (Cyclomatic Complexity; CC) ゆうもの。
条件複雑度(Conditional Complexity)とも呼ばれるそう。CCであることには変わらないww
Javaの場合、if, for, while, case, catch, throw, return 構文で考えられる処理分岐の回数を言う。
それら情報を魔法の方式 (M = E − N + 2P) に当てはめて算出される数字。
# つまり、Complexity とは別に出されている 重複 (Duplication) の数値が高い内は、複雑度は見てもしょうがない
気がする。
 
で、一般的に言われるのは
 ・ 1-4 優秀!
 ・ 5-7 可
 ・ 8-10 不可
 ・ 11+ 論外
 
 
その複雑度を下げる為にできる事
 
モノゴトはシンプルにせよ:
- easy to read
- easy to use
- easy to change
- no use of any non-necessary third party tool or technology
- looks simple
- lean
- straightforward
 
基本規則を遵守せよ:
- keep methods short (one screen limit)
- never ever reuse a variable for different purpose
- use self-descriptive variable and method names
- no magic numbers
- be friend with your language
- dont fight the convention
- watch out for premature optimization
- always refactor the code after you test it
- dont get sucked into over-engineering
- learn new things by prototyping
 
 
Metric Definitions
https://docs.sonarqube.org/display/SONAR/Metric+Definitions
Metrics - Complexity
https://docs.sonarqube.org/display/SONAR/Metrics+-+Complexity
Through the eyes of sonar : Complexity
https://mestachs.wordpress.com/2012/11/26/through-the-eyes-of-sonar-complexity/
循環的複雑度
https://ja.wikipedia.org/wiki/%E5%BE%AA%E7%92%B0%E7%9A%84%E8%A4%87%E9%9B%91%E5%BA%A6

tag:
SonarQube Cyclomatic Complexity 循環的複雑度
 

tag : SonarQube Cyclomatic Complexity 循環的複雑度

2017-03-07 21:15 : 開発 : コメント : 0 : トラックバック : 0 :
コメントの投稿
非公開コメント

« next  ホーム  prev »

search

ad



counter


tag cloud

category cloud