Sitzung: Jeden Freitag in der Vorlesungszeit ab 16 Uhr c. t. im MAR 0.005. In der vorlesungsfreien Zeit unregelmäßig (Jemensch da?). Macht mit!

Eclipsekurs 2007/Vortrag Tag 2

Tips & Tricks

  • Projekt erklären: HelloWorld
  • Task View: Todos und Fixmes aus HelloWorld, anklicken, Unterschied erklären
  • Erstes FIXME abarbeiten
    • Random int in Liste einfügen, dabei auf fehlendes Javadoc hinweisen
    • FIXME entfernen -> darauf hinweisen, dass es auch verschwunden ist
  • Erstes Todo abarbeiten und dann entfernen:
    • Warum warnt er denn bei Vector? -> "Open Declaration" -> "Ooops kein Quellcode!"
    • Mit "Attach source" Quellcode in "src.zip" anhängen -> Vector.java erscheint
    • Vector ist eine generische Klasse -> Deklaration von vec korrigieren -> diverse Warnungen verschwinden
    • Hinweis: Jetzt wird in der Auto-Completion auch Javadoc angezeigt -> Eclipse holt sich aus dem Quellcode live Javadoc


  • Javadoc Template: getSum() dokumentieren, sowohl ohne klicken als auch über "Generate Element Comment" im Outline
  • Gemäß Todos Warnung beseitigen: Was ist Vektor -> "Open Declaration" -> "Ooops kein Quellcode!"
    • Attach source (src.zip)
  • Auto-Completion mit Javadoc zeigen: vec.<Conten Assist> -> zeigt auch Javadoc
  • (Organize) Import

Importieren

  • Erklären warum importieren wichtig ist (Vorgaben für UE-Blätter, Bibliotheken)
  • Dialog-Fenster vorstellen und wichtigste Punkte erwähnen (Archive, beliebige Dateien wie Quellcode, Projekte von anderen)
  • bei vorgegebenen .class Dateien: jar -cf vorgabe.jar filename und danach jar-File ins Projekt hinzufügen sowie Project->Properties->Java Build Path->Libraries->Add Jar

Exportieren

  • analog zum Importieren (file-system, archive, etc.), auch wieder type-filters möglich
  • über Kontext-Menü+s lassen sich auch nur bestimmte Dateien (einzelne Java-Files etc exportieren)
  • ausführbare Jar Dateien erzeugen: Export -> Jar File, type filter erklären und dann zwei screens später die Main-Class auswählen


Refactoring

  • Ziel von Refactoring: Programmdesign verbessern ohne Funktion zu verändern
  • Design verbessern heißt die Lesbarkeit, Wartbarkeit und Struktur zu verbessern
  • TestProjekt erklären:
    • UML Diagram anzeigen
    • Geometrie, Frorm, Kreis in Eclipse zeigen
  • Rename:
    • Frorm -> form (WARNUNG: Java-Konventionen) -> Form
    • hierbei die Preview Funktion erwähnen
    • r -> radius
    • Funktioniert genauso mit allem was einem Namen hat: Projekte, Ordner, Java-Packages, Klassen, Methoden, Variablen, etc
    • radius -> xy
    • Den Name Clash im Preview Dialog erklären, Refactoring abbrechen
    • Hinweis: Praktisch ist es möglich Funktionalität mit Refactoring zu zerstören, daher immer testen nach Refactoring
  • Extract Method:
    • Code in "Kreis" kurz erklären (Oh mein Gott: doppelter Code!)
    • PI-Code markieren und extrahieren, dabei Formular-Felder kurz erklären: Name, Access-Modifier, Preview
    • an Code zeigen, wie PI Code ausgelagert und _sogar_ auch noch an zwei Stellen ersetzt wurde
    • extract rückgängig machen (Menüfunktion benutzen!!), nochmal von vorne und dabei auf die "occurence replace" Option hinweisen
    • darauf hinweisen, dass "occurence replace" nur bei _identischem_ Code funktioniert
  • Pull-Up:
  • wir wollen später noch eine Ellipsen-Klasse definieren -> wir brauchen PI auch dort -> es wäre schön wenn PI in der Klasse Form wäre
  • pull-up Formular aufrufen, Felder erklären: Destination Type, Actions for members und dann "next" anklicken und noch erklären, dass zu entfernende Funktionen auch eingestellt werden können
  • zeigen dass es tatsächlich ausgelagert wurde und von private auf _protected_ geändert wurde

Debugging

  • Programm vorstellen
  • Normal starten -> Exception
  • als Debug starten, Debug-Perspektive
    • Fenster erklären: Code, Stack und Threads, Variablem im Scope (main)
    • Fehler finden.
    • Fehler korrigieren.
    • Neu starten, Ausgabe 0 - Nanu?
    • Keine Exception -- wie debuggt man? Breakpoints!
    • Zeile 15
    • b1 -> into
    • b2 -> over

Team Programming

  • Mehere Leute arbeiten an einem Programm / Projekt
  • Subversion (SVN)!
    • Grafik zeigen
    • Ein zentraler Ort, wo der Code liegt
    • Leute kopieren Dateien auf ihren PC
    • Änderungen werden an den Server geschickt
    • Änderungen anderer herunterladen
    • Was bringt Subversion? --> Paralleles Arbeiten, Kombinieren (Merging) von Änderungen, Versionshistorie
    • Aktionen: Checkout, Commit, Update (Conflict)
  • SVN in Eclipse: Subclipse als Plugin (im CS-Netz installiert)
  • Perspektive: SVN Repository Exploring
    • Einrichtung eines Repositories
    • URL angeben, Nutzername und Passwort, als Authorname auch "lohrmann"
    • Auschecken aus der Location
    • Anlegen als Projekt, falls keins existiert
    • Anzeigen von Änderungen: Sternchen, Fragezeichen
    • Klasse anlegen
    • Commit -> Hinzufügen von Dateien, -> keine .class-Dateien
    • Update
    • History (Geschichte, Änderungsverlauf)