Umgang mit generierten Sourcen

Doch den gibt es, wie oft denn noch. Integrationstests haben eine eigene Datenbank, und wenn man diese aktualisiert, dann läuft der Test durch. In der nächsten Umgebung vergisst man aber die DB zu aktualisieren, und dann?

Anderes Probleme andere Lösungen

Hä? Das ist kein anderes Problem. Es sind verschiedene Umgebungen.

Naja ich habs versucht dir nahe zu bringen, es ist kein Problem von eingecheckten Klassen oder nicht. Kannst ja mal ausprobieren…
Schau dir die Sachen einfach an vielleicht hilfts euch, aber ich hatte noch nie das Problem, dass mein Model(Schema) meine generierten Klassen und meine Umgebung nicht zusammen passte.
Vielleicht werde ich das auch noch erleben :slight_smile:

Edit: So eine Diskussion gab es schon mal im anderen Forum, da sehen die Meinungen ziemlich gleich aus…

[QUOTE=SirWayne]Naja ich habs versucht dir nahe zu bringen, es ist kein Problem von eingecheckten Klassen oder nicht. Kannst ja mal ausprobieren…
[/QUOTE]
Von was genau sprichst du gerade? Ich glaube du schweifst etwas ab, kann das sein?

Du Witzbold, wenn du die Klassen je Umgebung aus dem Schema generieren lässt, ist das doch auch klar. Das geht ja auch nicht anders. Das Problem für dich ist, dass dein Schema nicht aktualisiert wird oder eben nur teilweise, und dann passt es nicht mehr zur Anwendung bzw. zu den Anforderungen → logische Fehler. Diese Fehler sind schwer zu finden, daher viel Spaß bei der Fehlersuche, was ja meist nicht du, sondern die Tester machen.

[QUOTE=SirWayne;69963]
Edit: So eine Diskussion gab es schon mal im anderen Forum, da sehen die Meinungen ziemlich gleich aus…[/QUOTE]
Da hab ich nicht mit diskutiert, aber bei diesem Thema gibt’s kein richtig oder falsch, nur Pro und Contra. Aber das muss man auch erstmal verstehen.

Zumindest in den Schulungen, die ich kenne, sowie in den Projekten, in denen ich tätig war, wurde von dem einchecken generiertem Codes abgeraten. Und alle, die ich bisher darauf angesprochen habe, halten dies für ein Bad Practise.

Ich denke schon, dass es hier ein richtig oder falsch gibt. Und Deine Pros konnte ich leider nicht nachvollziehen.

Habe die Beitrage aus dem alten Thread verschoben: http://forum.byte-welt.net/threads/10427-Projekt-Organisation-Eclipse-Co

Mir war nicht so klar ab welchem Beitrag ich splitten sollte, das es einen fliessenden Uebergang von OSGi zum Thema Umgang mit generierten Sourcen gab, falls noch etwas fehlt bzw. anders gemacht werden sollte sagt bescheid.

[QUOTE=maki]Habe die Beitrage aus dem alten Thread verschoben: http://forum.byte-welt.net/threads/10427-Projekt-Organisation-Eclipse-Co

Mir war nicht so klar ab welchem Beitrag ich splitten sollte, das es einen fliessenden Uebergang von OSGi zum Thema Umgang mit generierten Sourcen gab, falls noch etwas fehlt bzw. anders gemacht werden sollte sagt bescheid.[/QUOTE]

Ja müsste schon so passen :slight_smile: Danke…
@Sym geht mir auch so
@deetee Du hast Probleme die anscheinend in der Form noch nie einer hier hatte, was meistens kein gutes Zeichen ist. Aber wenn du denkst du machst alles richtig und perfekt, dann ist doch doch gut.
Ich (wir) haben dir die Vorteile versucht näher zu bringen Sourcen nicht einzuchecken. Ich vermute immer noch, dass dein Problem nicht vorkommen würde, aber mir geht wie Sym so richtig kapiert habe ich es nicht und die logischen Fehler wird es in beiden Fällen geben.
Der einzige Grund der mir einfällt generiert Sourcen einzuchecken ist wenn das Generieren zu lange dauert, aber das kann bei uns nicht vorkommen (Modular).

Die Vorteile hab ich doch verstanden :wink: Nur ihr habt die Nachteile nicht verstanden, die ich hier mehrfach erläutert habe.

Ich habe nie behauptet alles richtig und perfekt zu machen. Außerdem habe ich hier mehrmals erwähnt, dass ich beide Varianten ok finde. Beides hat nunmal Vor- und Nachteile, das habt ihr hoffentlich eingesehen?

Nein eben nicht!!!

… es gibt immer Vor- und Nachteile :wink:

Kenne das in beiden Varianten, die Vorteile waren IME groesser wenn man generierte Sourcen nicht eincheckt.
Auch fuehrt das beim commit nicht zu einem riesigen Wust an angeblichen Aenderungen beim neugenerieren, bevorzuge beim commit wirklich nur das zu sehen, was ich wirklich geaendert habe und einchecken moechte.

Wichtig ist IMHO aber eben auch, dass man versteht welche Auswirkungen es hat Dinge in die Quellcode Verwaltung einzuchecken, die gar keine Quellen im eigentlichen Sinne sind.

Ob man das sinnvoll einfuehren kann haengt u.a. auch vom verwendeten Build Tool ab, Maven bietet ja Unterstuetzung durch Plugins und den in Phasen aufgeteilten Build Prozees, eine Phase heisst zb. „generate-sources“, „generate-resources“ (fuer Tests nochmal dasselbe), das Ergebniss landet immer brav im target Ordner, Module werden von Haus aus Unterstuetzt, genauso wie Dependency Management.

Mit so einem Build Prozess ist es einfacher solche Dinge umzusetzen, als wenn viel manuell gemacht wird, bei lketzterem kann naemlich das Vergessen einen Build Schritt anzustossen eben zu Problemen fuehren wie dass zB. das DB Schema veraltet ist usw. usf.

Wenn zB. in meiner POM steht dass vor dem Ausfuehren der Integrationstests eine In-Memory DB gestartet wird, ein aktuelles Schema generiert und ausgefuehrt wird, Test Daten in die DB geschrieben werden usw., muss sich der Entwickler das nicht mehr merken und kann es „vergessen“.

Hat man das alles nicht, sondern macht alles „zu Fuss“*, kann das ganze wieder anders aus sehen…

  • „zu Fuss“ waere zB. ein Ant basierter Build, da kann sowas sehr komplex und langsam werden wenn man das selber umsetzten will/muss.

[QUOTE=maki]… es gibt immer Vor- und Nachteile :wink:
[/QUOTE]

Also ich bin davon ausgegangen, dass man gescheite Tools verwendet sowohl zum Modellieren (Generation Gap etc.) als auch zum Bauen/Generieren.
Und da finde ich hat das einchecken keine Vorteile. Es gibt Tools da muss man es machen, aber solche Tools sollte man dann halt auch nicht verwenden gibt ja gute Alternativen im Java-Umfeld.
Oder sag mir mal ein Vorteil von eingecheckten generierten Sourcen, den ich verstehe :slight_smile: :slight_smile:

Du hast schon richtig verstanden SirWayne :slight_smile:

Mit den „richtigen“ Tools ueberwiegen die Vorteile, weil die meisten Nachteile wegfallen, vielleicht als Nachteil noch die Zeit die es zum staendigen generieren braucht, aber duch das auslagern koennte man das auch vermeiden.

[QUOTE=maki]
Mit den „richtigen“ Tools ueberwiegen die Vorteile, weil die meisten Nachteile wegfallen[/QUOTE]
Ja sind es doch keine Nachteile mehr, wenn Sie wegfallen :slight_smile:

Ja mit dem ständig neu generieren betrifft ja nur diejenigen, die das Projekt ausgecheckt haben, die anderen bekommen es ja über die Dependencies.
Ok das wäre der einzig kleine Nachteil :slight_smile: