Findbugs jsem zkousel minuly rok v lete a k tomu jsem pribral i nastroj Hammurapi. Tezko rict, ktery byl lepsi, doporucuji vyzkouset oba. Tusim, ze v Hammurapi bylo potreba pridat, ktera pravidla se maji testovat a to do dvou xml souboru, ktere se pak zadavaly pres prikazovou radku, coz je trochu nesikovne. Pak to generovalo hezke reporty v html.
Co se tyce chyb, tak krome drobnosti jakoze kdyz je neco final, tak to muze byt static (v systemu vzdy stejne byla pouze jedna instance), ze prazdne konstruktory nema smysl psat a stringy je dobre retezit pres StringBuffer, me to upozornilo na zapomenuty break v prikazu switch, za coz jsem byl moc vdecny. Celkove to ma tendenci tlacit vyvojare k cistsimu navrhu. Za zminku stoji napr. upozorneni, ze se predava member promenna jako parametr do jine tridy.
final: mel jsem tridu, ve ktere bylo nekolik final memberu, v tom pripade je dobre udelat je i static. V mem pripade jsem vzdy delal jen jednu instanci te tridy (jejiho potomka), proto to vyslo zhruba nastejno. Pokud by se tech delalo vic, je static samozrejme na miste.
StringBuilder je v jave od 1.5, takze v te dobe jeste neexistoval (mozna v betaverzich), kazdopadne jsem o nem dodnes nevedel. Diky. Ja jsem tim spojoval radove desitky stringu pri vypisovani uzlu stromu, cili hodne cyklu, hodne vetveni :-).
Je fakt, ze ty nastroje jsou obecne dost ukecane, takze varuji u sebemensiho poruseni konvenci, ale vzdycky to je na uvazeni programatora, jestli stoji za to kod upravit nebo nechat byt. Ja jsem vyuzil asi desetinu varovani. Treba u spojovani to rvalo tusim uz pri spojeni tri stringu.