Cvicne jsem s tim projel par projektu a dobry, odhalil i mnou nachystane netrivialni veci. Co ovsem uz neni tak vesele je vysledek pri pusteni na "produkcni" jary tretich firem ;)
Já se živím jako programátor a testování je pro mne alfou a omegou. Jedná se především o statické testování kódu a dynamické testování samotné binárky. Pro dynamické testování je dobrý valgrind. S tím statickým mám však trochu problém, neznáte někdo náhodou nějaký program, který umí odhalovat chyby při synchronizaci POSIXových vláken v Céčku ? Ten program může být i komerční, ale musí toho hodně umět.
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.
Já používám PMD (http://pmd.sourceforge.net/). Funguje to i pod Eclipse, má to různé balíky pravidel, která se mají hlídat. Jsem s ním docela spokojený. Má někdo zkušenosti s oběma systémy (findbugs a PMD) a byl by schopen říci, který je lepší?
Ja vyuzivam integrovany nastroj v IDEA IntelliJ a osobne ho povazuji za jeden z nejlepsich(ne-li vubec ten nejlepsi).IDEA je i tak pravdepodobne nejpropracovanejsi nastroj na Javu-posledni EAP verze zvladaji i vyhledavani duplikatu v kodu.
Za prve vyzaduje vlastni Merchant number - coz je ohromna zabava ho ziskat.
Za druhe je to ponekud drahe, kdyz bezni provideri Vam poskytnou servis zdarma, jen si musite u sebe implementovat jejich protokol. K cene si samosebou musite pripocitat naklady na transakce ze strany bank a dostanete se do opravdu "vyhodnych" obchodu.
Za treti " Currently, Monetra supports US and Canadian merchants. " je pro cechy velmi uzitecna vlastnost. Tim lze predpokladat, ze i zaplatit pres to platebni kartou vydanou v CR ci celem vychodnim bloku a mozna cele Evrope bude mozna nemozne! To totiz neni vubec nic neobvykleho.