Codeanalyse Mit Intellij IDEA
Total Page:16
File Type:pdf, Size:1020Kb
IntelliJ IDEA - Die bessere Java IDE I kommerzielle Java IDE seit 2001 I Aufteilung in Open Source Community Edition und kommerzielle Ultimate Edition in 2009 I Verschiedene spezialisierte Ableger (PhpStorm, WebStorm, PyCharm, ...) I AndroidStudio (Google's neue Android IDE) basiert auf IDEA 1/9 IntelliJ Idea - Features Features I Language Support (Scala, Ruby, Python, Bash, PHP, ...) I Framework Support (JSF, Spring, AngularJS, Play, ...) I Database Tools (DB Editor, SQL Support) I VCS Integration fur¨ alle popul¨aren VCS Systeme I Sehr gute Dokumentation fur¨ die gesamte IDE I Keymaps (Eclipse, Visual Studio, Net Beans, ...) fur¨ die gewohnten Hotkeys 2/9 IntelliJ IDEA - Die bessere Java IDE Woher I An den Uni Rechnern installiert (starten mit idea) I Academic License uber¨ Herrn Schießl (R 125 IM) erh¨altlich Wo anfangen I IntelliJ IDEA Getting Started http://www.jetbrains.com/idea/documentation/ index.jsp I IntelliJ IDEA Q&A for Eclipse Users http://www.jetbrains.com/idea/documentation/ migration_faq.html 3/9 QAPlug I Plugin fur¨ IntelliJ IDEA zur Codeanalyse I Hilft Fehler / schlechten Code zur Entwicklungszeit zu finden I Fasst Meldungen von PMD, FindBugs, Checkstyle, Hammurapi zusammen* I Jedes Tool hat besondere St¨arken und Schw¨achen I Aber ist kein Allheilmittel fur¨ schlechten Code 4/9 QAPlug Woher & Was I Beinhaltet folgende Komponenten I PMD http://pmd.sourceforge.net/ - Findet prim¨ar ineffizienten/toten/doppelten Code I FindBugs http://findbugs.sourceforge.net/ - Sucht nach bekannten Fehlermustern I Checkstyle http://checkstyle.sourceforge.net/ - Pruft¨ Programmierstil I Hammurapi http://www.hammurapi.biz - Identifiziert Probleme und ubliche¨ Fehler I Fazit: Sehr m¨achtiges Tool um Fehler zu finden I Fur¨ eclipse mussen¨ die Tools einzeln installiert werden 5/9 PMD I Basiert auf einem statischen Regelwerk I Findet unter anderem folgende Probleme I M¨ogliche Bugs (z.B. leere Bl¨ocke in try,catch, switch, ...) I Toter Code (nicht genutzte Variablen) I Schlechter Code (z.B. Stringkonkatenationen, statt Buffer) I Verkomplizierter Code (for-Schleifen, die auch durch while k¨onnten) I Doppelter Code 6/9 FindBugs I Findet Probleme durch statische Codeanalyse im Bytecode I Fehlerklassen: scariest, scary, troubling, of concern I Beispiele fur¨ gefundene Probleme I Ungultiger¨ Syntax in regul¨aren Ausdrucken¨ I Assertion in run()-Methode wird von JUnit nicht erkannt I M¨ogliche Nullpointer-Dereferenzierung I Fehlerhafter Cast I Lesen von Null aus nicht geschriebenen Variablen 7/9 Checkstyle I Bekannt aus ProgII I Manchmal nervig, aber dennoch notwendig I Markiert den schlechten Umgang mit: I JavaDoc I Einhaltung von Metriken I Codestil (Zeilenl¨ange, Nameingconventions) I Verwendung von Imports I Codekomplexit¨at 8/9 Hammurapi I Analyse des Quelltextes I Idee: QA fur¨ Outsourcing-Projekte I hebt unter anderem folgende Probleme hervor: I Vergleich von Objekten mit == statt equals I Exceptionketten (Exceptions werden umgelabelt) I innere Klassen sollten private sein I Unn¨otiger Verwendung eines cast oder instanceof I Loggen von Fehlern mit System.out oder System.err 9/9.