テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

ソースコードの品質を計測する

ソースコード、綺麗に書いてますか?

Unityは割と少人数向けの開発環境なので、
実際乱雑にコードを書いても「直ちに影響はない」と思う。

実際、適当に書いてもそれなりに動くのがUnityの良い所。
早い・安い・美味い!流石はUnity!
と思うじゃん?

■雑なコードの保守は地獄の宴

今の流れ的に、システムが売れてしまったら
機能を追加してバージョンアップがある。
それに、osのバージョンアップでもある程度対策する必要がある。

そして、3週間後の自分のコードは他人のコードということを忘れてはならない。

よく分からない部分を無理に変更してデグレードが起こったら最悪。
ソースコードを全チェックするとかになれば、
作りなおしたほうが早いってなってしまう。

正直同じものを2回も作るのは、出来れば避けたいところ。

ソースコードの健康診断するアレ

Monodevelopにはコードメトリクス(品質解析)なるものが搭載されていたらしい。

この機能は、大雑把にソースコードの「複雑度」「クラスの結合度」
「行数」「コメント行」を出してくれる機能みたい。(少ない・・・)

複雑度ってのは、Ifとかforで巡回しまくってて読みにくければ高くなる、
クラス結合度は外部のクラスに依存しまくってると高くなる。

要するに、読みにくければ高くなり、読みやすければ低くなる傾向にあるみたい。
なのでコードを書くときに低い点数を目指せば、
自然と読みやすいコードが出来上がる。

ちなみに目安はこんな感じらしい。
(別ツールだしunityの設計は特殊だから、同じ数値を使うのは微妙だけど)

10 以下であればよい構造
30 を越える場合,構造に疑問
50 を越える場合,テストが不可能
75 を越える場合,いかなる変更も誤修正を生む原因を作る

複雑度と単体テストケース数の相関関係(プログラマの思索)
http://forza.cocolog-nifty.com/blog/2009/01/post-ca39.html

Monodevelopのコードメトリクスを使う

とりあえず使ってみる。

使い方は超簡単、
Monodevelopのソリューションを右クリックして、[Tools]→[Code Metrics]を
選択するだけ。

スクリーンショット 2012-08-03 19.34.27



実際、UnityのスクリプトMonodevelopのコードメトリクスが正常に動いているのか
不安ではあるけど、複雑なコードは高い数値になるのは間違いないので、
ある程度は信用できると思う。

コメントやテストも忘れないであげて