谷本 心 in せろ部屋

はてなダイアリーから引っ越してきました

見えてきた、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ベースのソースコードビューアとの連携。


バグにマークをつけられる機能は、すっごい欲しかったので嬉しいところ。