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: Unterschied zwischen den Versionen

(Refactoring)
Zeile 11: Zeile 11:
  
 
== Refactoring ==
 
== Refactoring ==
* Ziel von Refactorin: Programmdesign verbessern ohne Funktion zu verändern
+
* Ziel von Refactoring: Programmdesign verbessern ohne Funktion zu verändern
*  
+
* Design verbessern heißt die Lesbarkeit, Wartbarkeit und Struktur zu verbessern
  
* TestProjekt erklären: Klassen Frorm, Kreis
+
* TestProjekt erklären: Geometrie, Frorm, Kreis
  
 
* Rename:
 
* Rename:
Zeile 20: Zeile 20:
 
* hierbei die Preview Funktion erwähnen
 
* hierbei die Preview Funktion erwähnen
 
* r -> radius
 
* r -> radius
* Funktioniert genauso mit allem was einem Namen hat: Projekte, Ordner, Java-Packages, Klassen, Methoden, Variablen, etc  
+
* 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:
 
* Extract Method:

Version vom 15. November 2007, 17:52 Uhr

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: Geometrie, Frorm, Kreis
  • 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, 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)