Metamodeling
and its Applications
tud

1. Verzeichnisstruktur

Wenn im Team entwickelt wird, ist es hilfreich, eine vernünftige Verzeichnisstruktur zu etablieren. Wenn keine organisierte Verzeichnisstruktur vorhanden ist, läuft man schnell in Gefahr, dass jeder "irgendwo" seine Dateien ablegt und das wird bei mehr als drei Entwicklern recht schnell unübersichtlich.

Es gibt keine universell "richtige" Verzeichnisstruktur - aber zumindest gibt es ein paar Hinweise deren Einhaltung hilft die Übersicht zu behalten:

2. Gemeinsame Eclipse-Settings

Nichts ist unangenehmer als das jedes Team-Mitglied mit eigenen Code-Formatierungseinstellungen arbeitet. Wenn ihr Code ein-checkt und einen anderen Code-Formatierer verwendet, so wird es dem nächsten Teammitglied schwer fallen eure Veränderungen im CVS zu erkennen - denn CVS arbeitet im Wesentlichen zeilenorientiert. Jeder Zeilenumbruch wird also bei der Synchronisierung als Veränderung angezeigt - obwohl sich der Inhalt nicht verändert hat.

Eclipse bietet die Möglichkeit, "Code-Formatter" Einstellungen zu ex- und importieren. Legt einen Standard fest und speichert die Datei innerhalb eures Projekts. Sind die Einstellungen nicht mehr zufriedenstellend, werden diese geändert, eingecheckt und stehen ab dann wieder jedem zur Verfügung.

Gleiches gilt für Compiler-Einstellungen, Checkstyle-Settings und vieles mehr. Im Menü Window -> Preferences -> Java -> Code Style -> Code Formatter oben befindet sich ein Export-Button. Für andere Einstellungen existieren ähnliche Buttons in den jeweiligen Menüs.

Sollte es Dateien geben, die persönliche Einstellungen (zum Beispiel arbeitsplatzabhängige Pfade etc.) enthalten, lagert diese in eine extra Datei mit (zum Beispiel) dem Prefix "local." aus. Diese Dateien dann noch in der Datei ".cvsignore" eintragen, so dass sie nicht mehr in das CVS hochgeladen werden.

3. Umgang mit CVS

Eine wichtige Frage ist: Welche Dokumente sollen im CVS Repository gehalten werden?

Obwohl CVS binäre Dateien (z.B. jars, kompilierte Klassen oder Bilder) nicht praxisgerecht auf Änderungen untersuchen kann, sollten diese dennoch eingecheckt werden, bevor sie umständlich per Mail herumgeschickt oder auf einem FTP-Server zum Download bereit gelegt werden. Für benötigte Bibliotheken sollte z.B. ein Verzeichnis "lib" im Projekt angelegt werden, das alle notwendigen jars beinhaltet - eventuell auch mit Quellcodes.

Was auf jeden Fall nicht ins CVS repository gehört sind sogenannte "derived Files"- also Dateien, die aus anderen erzeugt wurden. Beispiele hierfür sind javaDocs, Class-Dateien oder Test-Reports. Die lassen sich lokal schnell neu erzeugen und müssen somit nicht mit eingecheckt werden

4. Vor dem Einchecken

Es gibt ein paar Grundregeln, die man beachten sollte, wenn man im Team entwickelt:
  1. Vor dem Bearbeiten eines Dokuments per "update" die neueste Version des Dokuments aus-checken (hilfreich).

  2. Vor dem Ein-checken überprüfen, ob Änderungen im CVS vorgenommen wurden (hilfreich)

  3. Vor dem Ein-checken dürfen keine Compile-Fehler existieren (notwendig!)

  4. Vor dem Ein-checken muss die Testsuite durchlaufen und eventuelle Fehlschläge behoben werden (wünschenswert)

Wenig ist nervenaufreibender, als kaputter Code, den man selbst nicht verursacht hat und dessen Reparatur deshalb beliebig langwierig ausfallen kann.

Viel Erfolg beim Entwickeln!