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
    • Andere Warnung: Überflüssiger Import
      • Mit "Organize Imports" überflüsigen Import entfernen
      • Imports entfernen und wieder "Organize Imports" aufrufen -> alle nötigen Imports wieder da!
    • Zweites Todo: getSum() dokumentieren:
      • Per Template ohne klicken
      • Über "Generate Element Comment" im Outline


Importieren

  • Begriffsklärung, typische Imports:
    • Andere Projekte in Workspace integrieren
    • Vorgaben für Übungs-Blätter (Quellcode und als .class Dateien)
    • Dateien beliebiger Art
  • Der Import Dialog (über Menü aber auch Kontextmenü erreichbar)
    • Ein Projekt importieren
      • Aus Ordner
      • Aus Archiv
    • Beliebige Dateien importieren (auch Quellcode)
      • Aus Ordner
      • Aus Archiv
      • Hinweis: Type-Filter demonstrieren
    • Spezialfall: Vorgegebene .class Dateien einbinden
      • Vorgehen: 1) Import 2) Einbinden in den Java Build Path
      • Hinweis: Man kann Vorgaben auch zu jar Dateien packen und dann auf gleichem Weg importieren
      • Hinweis:Jar-Dateien erzeugen mittels "jar"-Tool vom JDK oder Export Funktion in Eclipse

Exportieren

  • Exportieren:
    • Quellcode z.B. zum Abgeben
    • Beliebige andere Daten
    • Jar-Dateien erzeugen
  • Dialog zeigen
    • File System zeigen und Quellcode exportieren
    • Archive File zeigen und nach Archiv exportieren, völlig analog zum File System
    • Jar-Files erzeugen:
    • Dialog zeigen
      • Wichtigste Filter erklären
      • zwei screens später auf main-class eintrag eingehen

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)