Jedním z nástrojů, který by měl „každý správný javový programátor“ znát je FindBugs. Je to nástroj, který na základě analýzy zdrojového kódu dokáže najít možné příčiny chyb.

V poslední době probíhá diskuze nad tím, jestli by Java neměla jít s dobou a neměla by převzít do své syntaxe některé prvky skriptovacích jazyků. Jedním z argumentů, proč by vývoj jazyka Java měl být spíše konzervativní, jsou programátorské nástroje jako je třeba FindBugs.
Aplikaci FindBugs lze spustit z příkazové žádky nebo použít GUI rozhraní, které je součástí. My si ale ukážeme, jak FindBugs použít v Mavenu a v Eclipse.
Integrace do Mavenu je jednoduchá – stačí do pom.xml do sekce reporting přidat odkaz na FindBugs, Maven již zařídí stáhnutí knihovny a do svého webu přidá stránku s výsledky. V následujícím výřezu z pom.xml je ještě přidán modul pro vytvoření stránek s formátovanými zdrojovými kódy, což se hodí pro prolinkování ze stránek reportu FindBugs.
<reporting>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>1.1.1</version>
<configuration>
<xmlOutput>true</xmlOutput>
<threshold>Normal</threshold>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jxr-plugin</artifactId>
<version>2.1</version>
</plugin>
</plugins>
</reporting>
Ukázka výstupu z FindBugs z Maven webu (v předposledním sloupci odkaz na popis chyby, v posledním odkaz na zdrojový kód):

Zásuvný modul pro Eclipse se instaluje snadno nejen podle návodu, ale i ve skutečnosti. Následující obrázek ukazuje tutéž chybu přímo vedle zdrojového kódu v podobě červeného brouka.

Závěrem krátké zamyšlení, co vlastně FindBugs najde a co ne. Předně FindBugs nehledá chyby v tom smyslu, jak chyby chápe uživatel programu. Spíš se snaží vývojáři napovědět možné příčiny chyb. Pochopitelně bezchybnost ve FindBugs nic neříká o kvalitě či bezchybosti programu.
FindBugs je užitečný nástroj v tom, že učí programátora jak správně kódovat v Javě. FindBugs je docela dobrým měřítkem kvality kódu, ale závisí na fázi vývoje vaší aplikace, na kolik se budete snažit tuto měřítko ve vašich kódech vylepšovat.
Na druhou stranu, není lepší psát kód rovnou správně, co myslíte?

9. Květen 2008 - 10:59
Ďalší článok k FindBugs vyšiel prednedávnom na ONJava http://www.oreillynet.com/onjava/blog/2008/05/findbugs_session_notes.htm...