Určitě stojí za to checkstyle. http://checkstyle.sourceforge.net/ http://maven.apache.org/plugins/maven-checkstyle-plugin/usage.html
a pro ověření pokrytí kódu testy - cobertura http://cobertura.sourceforge.net/ http://mojo.codehaus.org/cobertura-maven-plugin/usage.html Nejlépe, když se to bude dělat automaticky po každé změně (commitu) - nepřetržitá integrace - hudson. Fafi 2011/4/5 Ondrej Nekola <[email protected]>: > Kazde IDE umi najit docela dost chyb, imo vede IntelliJ, ale v > NetBeans jsem docela spokojeny. > Docela solidni vysledky jsem mival s PMD, ale zda se mi, ze ten > projekt umrel. Dobre je pouzivat i CheckStyle. Resi trosku jiny > problem, ale urcite bych ho zvazil. I diky tomu, ze se tam daji celkem > obstojne dopsat vlastni pravidla. > S pozdravem > Ondřej Nekola > > > > 2011/4/5 Libor Jelinek <[email protected]>: >> Findbug je můj dnešní objev dne :-) Díky za tip! >> >> Když už jsme u těchle typů programů. Je ještě nějaký dobrý "lint" pro Javu? >> >> Libor >> >> 2011/4/5 Ondřej Fafejta <[email protected]> >>> >>> Ještě doplním, že v některých případech nechceme vracet defenzivní kopii >>> datumu. >>> Můžeme potlačit findbugs warning pomocí anotace. >>> >>> např. >>> @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="MALICIOUS_CODE") >>> private Date createdAt; >>> >>> viz. maven dependency >>> >>> <dependency> >>> <groupId>findbugs</groupId> >>> <artifactId>annotations</artifactId> >>> <version>1.0.0</version> >>> <scope>compile</scope> >>> </dependency> >>> >>> Fafi >>> >>> >>> 2011/4/5 Libor Jelinek <[email protected]>: >>> > Díky za veškeré konzultace. >>> > >>> > Jinak ano, Joshua Blosh je skvělý. Kdysi dávno jsem si koupil první >>> > edici >>> > vydanou Gradou, ale už pár let co jsem neprogramoval se na ní jenom >>> > práší >>> > :-) Tohle je typ knihy do které se vyplatí investovat a i si ji třeba z >>> > Amazonu objednat. >>> > >>> > Libor >>> > >>> > 2011/4/5 Ladislav Thon <[email protected]> >>> >> >>> >> Předně, tohle může být někdy chtěné (i když teoretici OOP by vám za to >>> >> urvali hlavu). Pokud ne, getter by měl vracet kopii (někdy se říká >>> >> "defenzivní kopii "), ne přímo tu členskou proměnnou. >>> >> >>> >> Konkrétně u Date se dokonce někdy dělá i to, že uvnitř objektu se >>> >> uchovává >>> >> jen long hodnota date.getTime(), každopádně getter vypadá >>> >> >>> >> Date getNarozeni() { >>> >> return new Date(narozeni.getTime()); >>> >> } >>> >> >>> >> Pokud se dobře pamatuju, dobře je to popsáno v Effective Java >>> >> (doporučuju >>> >> druhé vydání, byť myslím není dostupné v češtině). >>> >> >>> >> LT >>> >> >> >> >
