メトリクス集計ツール「SourceMonitor」が突然エラーで動かなくなった!→管理者として実行→直った!(Windows8.1、C++)
メトリクス集計をするなら「SourceMonitor」が一番パワフルで、安定していて、定期的にバージョンアップもされています。
メトリクス集計 SourceMonitor以外にいいのがない... 定期的にメトリクスを取る方法を模索中。
というか、コレしかないと言ってもいい。 VisualStudioでサクッとサポートしてくれたらいいのに...
ぼやきたくなりますが、マネージコード(C#とか)はきっちりサポートされてるんですよね!!
まあでも、SourceMonitorはかなり優秀なツールで、メソッドのネストの深さだとか、複雑度とかを数値化してくれて、リファクタリングでいうところの「イヤな匂い」を見つけるのに重宝しています。
解析ができなくなったら「管理者として実行」する
ところが!
いつのタイミングか(WindowsUpdateか、SourceMonitorのバージョンアップだとおもうけど)不明ですが、SourceMonitorプロジェクトファイルが開かなくなってしまいました。
エラーログを見たら「プロジェクトファイルを作れませんでした。.tmpファイルに書き込めません」とあったので、Windowsでこういうエラーを見かけたらアクセス権限が足りない可能性を一番に疑うことにしていて、ProgramFiles(x86)にインストールされている「SourceMonitor.exe」のプロパティから「管理者として実行」にチェックを入れました。
それ以降は、何事もなかったかのように使えてホッとした。
SourceMonitorで数値化されたコード
こんな具合に一覧されます。
かならず確認する項目は「Max Complexity(最大複雑度)」と「Max Depth(最大ネスト深度)」です。
これがデカイところは問答無用でリファクタリング対象にして構わないというか、しないと後々バグの温床になったりするので、やろうという感じです。ネストが深いところは、for
の中でif
使って、else
の先でswitch
とかしてるので、早めのreturn、メソッド抽出などを使って対応してます。
複雑度が高い部分は直しにくいし、壊しやすいので、可能であればテストハーネスに入れてから作業します。(だいたいできない)
SourceMonitor++
そのほかの項目「クラスあたりのメソッド数」とか痒いところに手の届くツールなので、コード分析したい気分の時は使ってみてください。いいなと感じたら、メンテナーにカンパするとさらによいですね。
と対応言語も豊富です。以上。
Martin Fowler オーム社 2014-07-26 売り上げランキング : 98527
|