IntelliJ IDEA

Werbung
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 für alle populären VCS Systeme
I
Sehr gute Dokumentation für die gesamte IDE
I
Keymaps (Eclipse, Visual Studio, Net Beans, ...)
für die gewohnten Hotkeys
2/9
IntelliJ IDEA - Die bessere Java IDE
Woher
I
An den Uni Rechnern installiert (starten mit idea)
I
Academic License über Herrn Schießl (R 125 IM) erhältlich
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 für 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ärken und Schwächen
I
Aber ist kein Allheilmittel für schlechten Code
4/9
QAPlug
Woher & Was
I
Beinhaltet folgende Komponenten
I
I
I
I
PMD http://pmd.sourceforge.net/ - Findet primär
ineffizienten/toten/doppelten Code
FindBugs http://findbugs.sourceforge.net/ - Sucht
nach bekannten Fehlermustern
Checkstyle http://checkstyle.sourceforge.net/ Prüft Programmierstil
Hammurapi http://www.hammurapi.biz - Identifiziert
Probleme und übliche Fehler
I
Fazit: Sehr mächtiges Tool um Fehler zu finden
I
Für eclipse müssen die Tools einzeln installiert werden
5/9
PMD
I
I
Basiert auf einem statischen Regelwerk
Findet unter anderem folgende Probleme
I
I
I
I
I
Mögliche Bugs (z.B. leere Blöcke in try,catch, switch,
...)
Toter Code (nicht genutzte Variablen)
Schlechter Code (z.B. Stringkonkatenationen, statt Buffer)
Verkomplizierter Code (for-Schleifen, die auch durch
while könnten)
Doppelter Code
6/9
FindBugs
I
Findet Probleme durch statische Codeanalyse im Bytecode
I
Fehlerklassen: scariest, scary, troubling, of concern
Beispiele für gefundene Probleme
I
I
I
I
I
I
Ungültiger Syntax in regulären Ausdrücken
Assertion in run()-Methode wird von JUnit nicht erkannt
Mögliche Nullpointer-Dereferenzierung
Fehlerhafter Cast
Lesen von Null aus nicht geschriebenen Variablen
7/9
Checkstyle
I
Bekannt aus ProgII
I
Manchmal nervig, aber dennoch notwendig
Markiert den schlechten Umgang mit:
I
I
I
I
I
I
JavaDoc
Einhaltung von Metriken
Codestil (Zeilenlänge, Nameingconventions)
Verwendung von Imports
Codekomplexität
8/9
Hammurapi
I
Analyse des Quelltextes
I
Idee: QA für Outsourcing-Projekte
hebt unter anderem folgende Probleme hervor:
I
I
I
I
I
I
Vergleich von Objekten mit == statt equals
Exceptionketten (Exceptions werden umgelabelt)
innere Klassen sollten private sein
Unnötiger Verwendung eines cast oder instanceof
Loggen von Fehlern mit System.out oder System.err
9/9
Herunterladen