見えてきた、FindBugs 2.0。
[TS-5335]Defective Java Code: Mistakes That Matter
http://developers.sun.com/learning/javaoneonline/j1sessn.jsp?sessn=TS-5335&yr=2009
「人多すぎ」で入れなかったFindBugsセッションの、アンコールセッション。
いまさらFindBugsの説明は要らないよね?
FindBugsが対象にするのは、たとえばこんなコード。
if (adapters == null && adapters.length == 0) {
return;
}
これは、Eclipse 3.5 RC2に実際に入っているコードで、Eclipse 3.2の頃からある。
(org.eclipse.update.internal.ui.views.FeatureStateAction)
しかし、実際には問題が発現しないため、修正されないままでいる。
ちなみにジョシュアブロックもFindBugsはお気に入りのようで
パズラーでも「こういうバグを防ぐにはどうすればいいかって? FindBugsを使おう!」って言ってた。
このセッションでは、上のようないくつかの例を交えながら、
FindBugsが持つ意味を、客観的に説明していた。
たとえば、
・つまらないミスは、(たとえ見つからなくても)発現した時に影響が大きい。
・FindBugsは、つまらないけど影響が大きいミスを見つけるのが目的
・FindBugsはテストに勝てるわけではない
・テストしていないコードには、FindBugsを使うべき。誰しも完璧なコードを書けるわけじゃない。
そして、FindBugs 2.0について。
・2009年秋頃に登場予定。現在、Googleにて試用中。
・「これはバグではない」というマークをつけられるようになる。
・バグに1〜20のランクをつけられるようになる。ランクのカスタマイズも可能。
・コミュニティ機能(よく分からん)。マークやコメントを、別ユーザがレビューできる?
・BTSとの連携。
・Webベースのソースコードビューアとの連携。
バグにマークをつけられる機能は、すっごい欲しかったので嬉しいところ。