More Related Content
Similar to ソースコードの品質向上のための効果的で効率的なコードレビュー
Similar to ソースコードの品質向上のための効果的で効率的なコードレビュー (20)
ソースコードの品質向上のための効果的で効率的なコードレビュー
- 1. ソースコードの品質向上
のための
効果的で効率的な
コードレビュー
日本工学院八王子専門学校
大圖 衛玄
- 3. 自己紹介
1992年~1997年
某ゲーム会社
プログラマ
SFC,GB,PS1,N64のゲーム開発経験
1998年~現在
日本工学院八王子専門学校
@mozmoz1972 専任講師
プログラミング教育を中心に担当
twitterもfacebookも実名です。よかったらフォローしてください。
- 35. if
if
for
if
if
if
ネスト地獄です。よく考えずにコードを書くとこうなりますよね。
- 37. Ctrl + C Ctrl + V Ctrl + V Ctrl + V
本人の承諾を得ております。
- 51. ご紹介するツール
SourceMonitor
コードの大きさ、複雑さを計測
CCFinderX
コードの重複を計測
Cppcheck
静的解析によるエラーチェック
検索エンジンにて、各ツール名で検索すれば入手可能です
- 55. 0001: // 余計な改行はカウントしない
0002: a = b
0003: + c;
0004: // ブレースはカウントしない
0005: m = a;
0006: if (b > m) {
0007: m = b;
0008: }
4ステートメント
- 56. 循環的複雑度 Cyclomatic Complexity
1976年にThomas J. McCabeが考案
制御構造に着目した複雑さのメトリクス
コードの複雑さを数値化する
分岐が多いコードほど大きな数値となる
- 57. m = a; m=a
if (b > m) {
b>m
m = b;
} m=b
if (c > m) {
c>m
m = c;
} m=c
フローチャートに直して説明します。
- 58. ①
循環的複雑度 1
②
エッジ数 - ノード数 + 2
2
③
エッジ数
フローチャートの線の数 3
7
ノード数 ④
フローチャートの要素数 4
⑤
5
8-7+2= 3 ⑥
8
6
⑦
- 61. 循環的複雑度 Cyclomatic Complexity
↓5 単純な構造
↓10 良い構造
↑30 構造に疑問
↑50 テスト、デバッグ困難
↑75 変更時に誤修正を生む原因を作る
- 63. 32を超えると
バグを含んでいる
確率が高くなる
by IBM
IBMの調査結果があるそうです。
- 70. 計測できないものは
コントロールできない
Lord Kelvin
メトリクス計測関係の本に引用されることが多い言葉です。
- 75. クソース [kusource]
理解不能で変更困難なプログラムコード。
巨大かつ複雑で、重複しているケースも多
い。変更するたびにバグが発生し、バグが
収束することはない。
地方によっては、 uncodeと呼ばれる。
ネタです、申し訳ありません。uncodeの「un 」はローマ字読みしてください。
- 85. tweet!
ソースコードを
愛
せよ
恥ずかしがらずに、つぶやいてみましょう。
- 92. 他人に見られていることを
意識すればコードは美しくなる
Moriharu Ohzu
ネタです。申し訳ありません。
- 96. コーディング規約の調整
理想 標準 妥協
複雑度 5 10 20
ネスト 2 3 4
メソッド長 10 20 40
クラス長 80 160 240
今後の課題です。厳しすぎても、ユルすぎてもダメです。
- 100. 理想的なコード
普通のコード
計測によるレビューでは、クソースがなくなるだけです。
- 102. 計測によるレビュー
により
品質の底上げが可能
クソースがなくなるだけでも効果はあります。
- 103. SourceMonitor
から
はじめてみましょう!
コードを計測する習慣をつけましょう。SourceMonitorは手軽なツールです。
- 104. 予算があれば
Klocwork
導入しましょう!
丸紅情報システムズ株式会社展示ブースにて
絶賛デモンストレーション中!
CEDEC2011の展示ブースにて、デモが行われていました。
- 109. ソースコードを
愛
せよ
ソースコードを愛していれば、クソースは書けません。