SonarLint unter IntelliJ IDEA

Statische Codeanalyse ist eine feine Sache. Sie weißt auf Fehler und Probleme schon zur Entwicklungszeit hin. Dafür gibt es unter anderem Systeme wie SonarQube. Wem ein solchen System zu groß ist, der kann SonarLint nutzen, welches statische Codeanalyse lokal in der gewünschten IDE liefert.

sonarlint.org/intellij/

sonarlint.org/intellij/

Für IntelliJ IDEA findet man die passende Version dabei unter sonarlint.org/intellij/. Daneben gibt es auch Versionen für Eclipse und Visual Studio. SonarLint wird dabei mit einem vorgefertigtem Regelsatz geliefert und kann nach der Installation gleich genutzt werden. SonarLint ist unter der GPL in Version 3 (bzw. der LGPL) lizenziert und damit freie Software.

Heap Dumps unter Java auswerten

Manchmal kommt es vor das man eine Java Applikation geschrieben hat, welche aus irgendeinem Grund mehr Speicher verbraucht als sie sollte. Im schlimmsten Fall führt dies zu einem OutOfMemory-Error. Möchte man dem Übeltäter auf die Spur kommen, kann man im ersten Schritt einen Heap Dump bei einem OutOfMemory-Error vornehmen. Dazu fügt man den VM Optionen der JVM den Parameter:

-XX:+HeapDumpOnOutOfMemoryError

hinzu. Dieser Parameter sorgt dafür, das im Falle eines OutOfMemory-Error, ein Dump des Heaps auf der Festplatte landet. Das Problem an diesem Dump ist allerdings, das er sich händisch schlecht auswerten lässt. Abhilfe schafft hier das freie Werkzeug Eclipse Memory Analyser.

Eclipse Memory Analyser

Eclipse Memory Analyser

Mit diesem ist es möglich den Heap Dump einzulesen und anschließend unter Zuhilfenahme der Analysefunktion dem Memory Leak auf die die Spur zu kommen. Bezogen werden kann das Tool über die offizielle Webseite. Lizenziert ist der Memory Analyser unter der Eclipse Public License und damit freie Software.

Auto Activation unter Eclipse immer aktivieren

Wenn man mittels Eclipse in Java entwickelt, so kann man mit der Tastenkombination Strg + Space den Content Assistant aktivieren. Ich persönlich bevorzuge es wenn dieser an so vielen Stellen wie möglich aktiviert wird, da dies die Entwicklung aus meiner Sicht wesentlich komfortabler macht.

Die Auto Activation Optionen

Die Auto Activation Optionen

Dazu müssen die Einstellungen unter Window -> Preferences -> Java -> Editor -> Content Assist aufgerufen werden. Dort gibt es den Punkt Auto Activation. In das Feld Auto activation triggers for Java trägt man nun:

.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

ein und bestätigt das Ganze. Damit wird der Content Assistant immer aktiviert, was die Entwicklung beschleunigt, da man schneller an entsprechende Vorschläge kommt.

Autoformatierung unter Eclipse

Wenn man unter Eclipse in Java entwickelt, so möchte man natürlich das dieser Code formatiert wird. Dafür gibt es je nach System die Kombination Strg + Shift + F oder unter Mac OS X die Kombination Command + Shift + F. Damit wird der aktuell geöffnete Quelltext formatiert.

Die Save Actions in den Eclipse Einstellungen

Die Save Actions in den Eclipse Einstellungen

Alternativ kann Eclipse so eingestellt werden, das der Quelltext beim Speichern neu formatiert wird, was auf Dauer natürlich praktischer ist. Dazu müssen die Einstellungen unter Window -> Preferences -> Java -> Editor-> SaveActions aufgerufen werden. Dort kann die automatische Formatierung der Quellcodes beim Speichern aktiviert werden.

Javadoc-Kommentarblock unter Eclipse erzeugen

Wenn man unter C# einen Kommentarblock zur Dokumentation über einer Methode oder einer Klasse erzeugen möchte so tippt man drei Slashes nebeneinander (///). Anschließend wird ein entsprechender Block zur Kommentierung erzeugt. Unter Eclipse ist dies für Java in abgewandelter Form ebenfalls möglich, in dem ein Javadoc-Kommentarblock automatisch erzeugt wird.

Ein Javadoc-Block zur Beschreibung eines Klasse

Ein Javadoc-Block zur Beschreibung eines Klasse

Dazu gibt man über der Klasse oder Methode welche man kommentieren möchte die Zeichenfolge:

/**

ein und bestätigt das ganze mit der Enter-Taste. Anschließend wird der Javadoc-Block erzeugt und kann vom Entwickler gefüllt werden.