SchachTurnierBastler

Hallo Leute,
habe ein neues Projekt angefangen, um Schachturniere ähnlich dem Schweizer System zu verwalten. Das Repository liegt auf github.com. Man kann es mit folgendem Befehl clonen:
git clone https://github.com/homer65/SchachTurnierBastler.git
Vielleicht interessiert sich ja der ein oder andere für Schach Turniere.
Es gibt auch einen kurzen Wiki Eintrag dazu:
https://github.com/homer65/SchachTurnierBastler/wiki
Gruß Chistian aka homer65

Tips:

  • Nutze Gradle oder Maven als Build-Tool
  • Pflege eine readme.md, damit jeder weiß, wie man in das Projekt einsteigen kann
  • Checke keine .classpath und .project Files ein

Hallo Sym,
danke das Du Dir Zeit genommen haste das Ganze mal abzuschauen.:blush:
Ebenso vielen Dank für die Tipps.
Werde mal eine readme.md Datei mit einbinden.
Hoffe das ich die .project and .classpath Datei aus dem Repository rausbekomme.
Aber ein Build tool verwenden, wo nur ein einziges .jar File herauskommt?
Bin wohl ein wenig faul um mich da einzuarbeiten.:innocent:
Gruß Christian

Ja, bei vielen Maven-Projekten kommt genau ein jar oder war heraus. Dann musst Du die Libs auch nicht mit einchecken. Es gibt somit einen Prozess. Ich lade mir ungerne Jars aus einem Repository herunter. Wer weiß, was Du da eingebaut hast. :slight_smile:

Zusätzlich zu den anderen Tipps: Du solltest dir anschauen, wie man Tests schreibt (üblicherweise mit JUnit). Das erlaubt dir sicherere Refactorings, dient der Dokumentation, gibt neue Ideen zur besseren Strukturierung, und hebt letztendlich auch das Vertrauen der Nutzer, dass sich jemand mit dem Code Mühe gegeben hat.

Dann fällt mir die Menge an Interfaces auf. Ich weiß, dass es mal die Denkschule gab, dass man für alles und jedes Interfaces verwenden sollte, aber das war vielleicht vor fünfzehn, zwanzig Jahren. Der Grund dafür war damals, den Code erweiterbar zu halten, und Änderungen möglichst lokal zu begrenzen. Zum einen hat sich das als nicht so praktikabel herausgestellt, zum anderen hat man inzwischen IDEs, die solche Änderungen sicher und schnell erledigen, selbst wenn sie sich durch das halbe Projekt ziehen. Interfaces sind eventuell(!) angebracht, wenn man schon mehrere Implementierungen hat (was bei dir nicht der Fall zu sein scheint), und wenn man Schnittstellen zu fremden Code anbietet (was du nicht tust). Generell ist man eher davon weggegangen, alles ultra-flexibel zu gestalten (siehe z.B. https://de.wikipedia.org/wiki/YAGNI )

Einen weiteren Punkt, den ich ankreiden würde, ist „Denglisch“. Englisch ist nunmal die vorherrschende Sprache, ein Mix sieht seltsam aus, und Klassennamen wie NoInitialisierung sollten vermieden werden.

Hallo Landei,
auch Dir Danke das Du mal drübergeschaut hast.
JUnit zu nutzen ist bestimmt eine gute Idee. Aber Eile mit Weile; das dauert.
Ja die vielen Interfaces. Ist tatsächlich früher mal aktuell gewesen und ich habe mich
daran gewöhnt. Außerdem finde ich, das es das Denken erleichtert. Bei einem Interface
muss man sich halt nicht so viel merken wie bei einer kompletten Klasse.
Und Denglisch ist so eine Angewohnheit von mir. Wird schwer davon wieder wegzukommen.
Trotzdem Danke für die Anmerkungen.
Gruß Christian