Surfen auf Java oder blind durch den Jungel aus Klassen

Wenn ich morgens in den Jungel eintauche, dann habe ich neben etwas Coffein ein etwas finsteres Werkzeug namens Eclipse gestartet. Wer mal erleben möchte, wie man den Ram des eigenen PC so richtig belasten kann, der hat schon mal den richtigen Kumpel mit dieser Entwicklungsumgebung gefunden.

Der Urwald besteht aus Projekten vielen, vielen Klassen, Hierarchien, Schnittstellen und noch reichlich mehr. Sich zu verlaufen ist ein Kinderspiel. Es gilt, die gesuchten Stellen im Wald zu finden und meistens eher kleine aber wohl bedachte Fäll- oder Pflanzarbeiten zu verrichten. Wie wird man also Pfadfinder mit einem wohlmeinenden Kameraden, der die ganze Zeit in rasendem monotonen stakato spricht, als wäre IRobot rRealität geworden? Die 80 Stellen auf der Braillezeile sind auch eher eine Hungerlösung für den Outdoor-Freak.

Es beginnt meistens mit einem Startpunkt. Durch Raten, Suchen oder Wissen lässt sich eine Stelle in einer der zig tausenden Dateien anspringen, von der irgendwie der Pfad richtung Ziel führt. Um nach einem beliebigen Text im Wust zu suchen, kann man mit Strg+alt+g einen Dialog öffnen, und dort sein Glück versuchen. Im Ergebnis gibt es einen Baum aus Verzeichnissen, in denen Treffer gelandet wurden – der Wald ist kurz auf die Stellen reduziert, wo die Finsternis fündig wurde.

Der Wald hat tausend Gesichter, und deshalb hat Eclipse die Sichten, die man mit Strg+F7 vorwärts und mit Strg+Umsch+F7 rückwärts durchlaufen kann, in Perspektiven gruppiert. Perspektiven sind quasi der Werkzeugkasten, den man auf eine Expedition mitnimmt, nur das man während dieser denn doch jederzeit sich einen anderen Kasten herbei wünschen kann. Diese Kästen durchspringt man mit Strg+F8 (rückwärts wieder zusammen mit Umschalt). Dabei durchläuft oder –springt man nur, was man auch geöffnet hat – oft sind noch viele Views oder Perspektiven im Menü Window verborgen und man darf sich seine Auswahl freizusammenstellen. Falls einem doch etwas fehlt, kann man beliebige Views über ein Menü öffnen. Möchte man eine so zusammengeöffnete Werkzeugsammlung speichern, so erstellt man eine neue Perspektive. Kurz: man kann sich zu jedem zeitpunkt entscheiden, welche Werkzeuge man gerade braucht. Damit nicht genug lassen sich auch mehrere Perspektiven gleichzeitig öffnen – ja! Sie haben recht, das ist ja auch ein Jungle. Im Kasten Java, der meistens zum Einsatz kommt, gibt es eine ganze Palette an Sichten beispielsweise
• Editor – da wo man in beliebig vielen Fenstern so viele Dateien öffnen kann, wie man mag, braucht oder oft auch viel zu viele. Diese Fenster durchspringt man mit Strg+F6 – Sie haben recht, das mit Umschalt geht hier natürlich auch. Mit Strg+e bekommen sie eine Liste ihrer Schandtaten ähm geöffneten Editoren.
• Problems Die Quittungen für die Fehler, die man so gemacht hat und über die sich Compiler & Co. Ärgern. Wählt man einen aus und drückt Enter, dann wird man mit der Nase auf die problematische Stelle gestoßen. Oft nützt das nix, weil man ein Brett vorm Kopf hat und sich fragt, was denn bitte daran falsch sein soll. Nun, nicht die Partei, wie es so schön hieß, sondern der compiler hat immer recht! Sie können einen Publikumsjoker ziehen und mit strg+1 die Quick fixes aufrufen – dann noch einmal Tab und sie können sich einen Vorschlag aussuchen. Zu den Problemen kommen Sie jederzeit mit Strg+Umsch+q, x – das Komma meint, dass sie nach Strg+Umsch+q die Tasten loslassen sollen und danach ein x eingeben sollen.
• Tauscht man das x am Ende durch ein p, dann gelangt man zum Paketexplorer. Dieser kann Sie schnell durch eine Struktur lotsen und eine der vielen Quelldateien öffnen. Wehe wenn Sie nicht hübsch für Ordnung sorgen, dann können Sie ordentlich im Paket Explorer suchen. Ordnung ist auch hier die halbe Miete, aber für Chaoten und ganz Eilige gibt es Strg+Umsch+t um nach einer Klasse bzw. Typ zu suchen. Man braucht nur die Großbuchstaben des Typnamens einzugeben – Java verwendet ja das sog. Camel Case also GanzTollerTyp oder Tollewurst. Sie können also mit GTT bzw. TW im Eingabefeld die Klasse lokalisieren und im Baum auswählen. Auch Platzhalter gehen, sodass TW* sowohl TolleWurstMitSenf als auch TolleWurstFuerMich finden würde. Springt man im Paketexplorer mit Umsch+Tab zurück, dann landet man auf der letzten Werkzeugleiste der View. Es ist typisch und ein hervorragendes Merkmal des schattingen Begleiters, dass man alle Werkzeugleisten per Tastatur benutzen kann.Im Paketexplorer können Sie z.B. festlegen, ob dieser immer die Datei auswählen soll, die Sie zuletzt bearbeitet haben.

Wenn man nicht nach einer Klasse sucht, sondern nur nach einer Datei, dann kann man Strg+Umsch+r einen dialog zum Suchen nach Ressourcen auswählen – die Hinweise zum Casing und zu den filtern gelten auch hier. Seltsam, dass so etwas effizientes nicht längst in Windows eingebaut wurde.

Hat man eine Ahnung davon, wie eine Methode ungefähr heißt, die man aufrufen möchte, dann kann man anfangen zu tippen und Strg+Leertaste drücken. Leider braucht es noch eine weitere Taste, damit auch der Roboter-Kollege die Auswahl vorliest nämlich F2. Nun können Sie aus den Vorschlägen auswählen. F2 ist auch nützlich, wenn man mit Strg+. Punkt Vorwärts und ob Acht Strg+, also Koma rückwärts durch die Probleme einer Datei geht. Dann wird nämlich der Inhalt des Problems vorgelesen und darüber zu sprechen lehrt die Sozialpädagogik ist ja schon mal was.
Möchte man erfahren, wie denn so die Klassenstruktur an der aktuellen Stelle ist – also welche Klassen von der aktuellen Klasse oder Schnittstelle erben, oder was man alles hier so geerbt hat, dann drückt man F4. Interessiert einen aber wo eine bestimmte Methode, die sich gerade unter dem Cursor in der Klassenstruktur implementiert oder definiert ist, dann nimmt man Strg+t. Damit man eine Liste aller Methoden des aktuellen Typs bekommt, nimmt man Strg+o.
• Hat man einen Typ unter dem Cursor, dann kann man mit F2 dessen JavaDoc ansehen/hören und mit F3 zur Definition des Typs springen. Mit alt+links kommt man zur vorherigen Stelle in einem der Editoren zurück – also von der Definition des Typs wieder zu dessen Verwendung – auch dann, wenn diese nicht in der gleichen Datei liegen. Schön, aber wer ruft eine bestimmte Methode überhaupt auf? Dafür wählt man die Methode und betätigt Strg+alt+h für die Aufrufhierarchie. Wo ist eine Klasse,Variable etc. referenziert erfährt man mit Strg+g. Strg+Umsch+p springt zur passenden anderen Klammer – also vom ender einer Klasse an den anfang etc.

All diese Kommandos verwende ich, wenn ich wie ein Flummi durch den Code springe auf der Jagd nach einem Fehler oder dem richtigen Platz für neuen Code (hoffentlich ohne Fehler). Die Liste ließe sich noch lange, lange fortsetzen, aber merken können Sie sich das wohl eh alles nicht. Müssen Sie auch nicht. Es gibt nämlich unter Window/Preferences den Punkt Hotkeys und da können sie nachschauen, was welchem Kommando zugeordnet ist. Außerdem ist eigentlich alles über das Menü erreichbar – OK fast alles.

Eclipse ist ein gutes Beispiel dafür, wie Zugänglichkeit in den Hintergrund tritt, weil sie einfach da ist und durch die vielen Tastenkombinationen die Arbeit für mich und alle anderen Entwickler gewaltig erleichtert wird. Seltsam, dass die Entwickler ohne Hotkeys kaum leben könne, selbst aber kaum welche in ihren Anwendungen verbauen. IntelliJ hingegen ist vollkommen unzugänglich und den Entwicklern ist’s offenbar auch wurscht. Also immer hübsch in der finsternis bleiben!

Ein paar Tränen rollen aber manchmal trotzdem. In einigen Eingabefeldern schreibt man ein Tab-zeichen, anstatt es zu verlassen. Don’t panic! Einfach Strg+Tab drücken – unter Eclipse springt man damit nicht zur nächsten Registerkarte. Einige Plguins und Views sind unzugänglich so z.B. die Ansicht von Subclipse. Deshalb muss ich meine Versionskontrolle von außen bedienen. Hier würde ich mir wünschen, wenn auch diese plugins sich an die Eclipse -Gepfogenheiten halten würden – wenigstens per Konfiguration.

Das Beispiel zeigt, dass es auch bei vielen und komplexen Daten möglich ist sich blind zurechtzufinden – auch wenn’s ein paar MB des eigenen Brägen für die Hotkeys braucht. Es zeigt aber auch, dass man blind oft eine ziemlich andere Vorstellung von der Struktur eines Codes im Kopf hat, denn oft ist es für mich unerheblich, wo sich eine Klasse in der Struktur befindet. Die Art und Weise, wie Menüs und Werkzeugleisten in views selbst zugänglich sind, könnte Vorbild für viele andere Anwendungen sein. Dazu gehört auchb die kosequente Einbindung aller Steuerelemente in die Tab-Reihenfolge – auch diejenigen, die schreibgeschützt sind. Das ist IMHO ein echter nachteil von klassischen Anwendungen bzw. der Herangehensweise von Windows. Auch die Autovervollständigung und die Möglichkeit zum Sprung zwischen problemen etc. ist z.B. in visualstudio deutlich ungünstiger mit einem Screenreader oder gar nicht benutzbar.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>