@@ -48,7 +48,7 @@ Haben mehrere Spieler das Spiel gespielt, so gibt es die Möglichkeit, Analysen
## Projektrahmen
Im diesem Repository finden Sie einen Projektrahmen, den Sie für die Implementierung des gesamten Projektes verwenden sollen. Unter anderem bringt er eine Package-Struktur mit, in die Sie Ihren Code einfügen sollen. Konkret heißt dies, dass alle von Ihnen erzeugten Klassen in `de.hda.fbi.db2.stud` oder von ihnen erstellte Unterordner in dem Package zu erstellen sind.
In diesem Repository finden Sie einen Projektrahmen, den Sie für die Implementierung des gesamten Projektes verwenden sollen. Unter anderem bringt er eine Package-Struktur mit, in die Sie Ihren Code einfügen sollen. Konkret heißt dies, dass alle von Ihnen erzeugten Klassen in `de.hda.fbi.db2.stud` oder von ihnen erstellte Unterordner in dem Package zu erstellen sind.
Viele Teile des eigentlichen Wissenstests als Spiel sind bereits vorgegeben, beziehungsweise implementiert. Schauen Sie sich die abstrakten Klassen in dem Package `de.hda.fbi.db2.api` an. Ihre Aufgabe besteht darin für jedes Praktikum eine Implementierung (Unterklasse) für diese zur Verfügung zu stellen. Ihre Implementierung muss innerhalb oder unterhalb des Packages `de.hda.fbi.db2.stud` sein. Lesen Sie sich genaustens die JavaDoc Kommentare in den abstrakten Klassen durch.
In der Klasse `Main`, müssen Sie für jeweilige Praktika gegebenenfalls Codezeilen aus- beziehungsweise einkommentieren.
...
...
@@ -56,9 +56,9 @@ In der Klasse `Main`, müssen Sie für jeweilige Praktika gegebenenfalls Codezei
Darüber hinaus, bringt der Projektrahmen noch die folgenden Dinge mit:
- Gradle Projekt: Fertiges Projekt, damit Sie direkt mit der Entwicklung anfangen können. Weitere Informationen zu Gradle finden Sie [hier](https://gradle.org/)
- Datenbasis als `csv`-Datei. Die Datei finden Sie im Unterordner `/src/main/resources/Wissenstest_sample200.csv`
- Parser für die Datenbasis. Sie finden diesen im Package: `de.hda.fbi.db2.controller.CsvDataReader`
- Parser für die Datenbasis. Der Klassenname ist: `de.hda.fbi.db2.controller.CsvDataReader`
- CI/CD Pipeline (details siehe unten) zum Bauen und Testen Ihres Projektes auf dem GitLab Server
Weitere Hinweise wie sie das Projekt bei sich Lokal clonen und in IntelliJ verwenden finden sie [hier](readme/gitandgitlab.md)
...
...
@@ -72,7 +72,7 @@ Sie benötigen für dieses Praktikum die [IDE IntelliJ](https://www.jetbrains.co
Wir empfehlen, zusätzlich zum in IntelliJ integrierten Git-Client die Software TortoiseGIT zu installieren:
- Unter Windows: [TortoiseGIT](https://tortoisegit.org/) integriert sich in den Windows-Explorer, sodass alle Funktionen im Explorer über das Kontextmenü (rechte Maustaste) aufrufbar sind. Zur Nutzung von TortoiseGIT benötigen Sie außerdem GitForWindows.
- Unter Windows: [TortoiseGIT](https://tortoisegit.org/) integriert sich in den Windows-Explorer, sodass alle Funktionen im Explorer über das Kontextmenü (rechte Maustaste) aufrufbar sind. Zur Nutzung von TortoiseGIT benötigen Sie außerdem [GitForWindows](https://gitforwindows.org/).
- Falls Sie Linux verwenden, installieren Sie ein git package Ihrer Wahl. Aber, ganz ehrlich, wenn Sie Linux verwenden, wissen Sie genau was zu tun ist.
## Continuous Integration Pipeline
...
...
@@ -87,7 +87,7 @@ Die Pipeline verwendet die folgenden zwei Tools:
## Nutzen der Checkstyle und Spotbugs in IntelliJ
Bevor Sie ihren Code zum GitLab-Server pushen, sollten Sie local mit Hilfe von Spotbugs und Checkstyle überprüfen lassen ob die Pipeline Fehler finden wird. Dafür rufen Sie einfach in IntelliJ den Gradle task `build` auf. In der Konsolenausgabe werden entsprechende Fehler angezeigt.
Bevor Sie ihren Code zum GitLab-Server pushen, sollten Sie local mit Hilfe von Spotbugs und Checkstyle überprüfen lassen, ob die Pipeline Fehler finden wird. Dafür rufen Sie einfach in IntelliJ den Gradle task `build` auf. In der Konsolenausgabe werden entsprechende Fehler angezeigt.
Erzeugte Reports finden Sie lokal im Projekt unter `/build/reports/`.
[Git](https://git-scm.com/) ist eine populäre Software zur (verteilten) Versionsverwaltung von Dateien. Sie wurde initial von [Linux Torvalds](https://en.wikipedia.org/wiki/Linus_Torvalds) für den [Linux Kernel](https://en.wikipedia.org/wiki/Linux_kernel) enwickelt und gilt heute als Standard in der Software Entwicklung.
[Git](https://git-scm.com/) ist eine populäre Software zur (verteilten) Versionsverwaltung von Dateien. Sie wurde initial von [Linux Torvalds](https://en.wikipedia.org/wiki/Linus_Torvalds) für den [Linux Kernel](https://en.wikipedia.org/wiki/Linux_kernel) entwickelt und gilt heute als Standard in der Software Entwicklung.
[GitLab](https://about.gitlab.com/) ist, ähnlich wie [GitHub](https://github.com/), eine Weboberfläche zum Verwalten von Git-Repositories. Das folgende Dokument führt in die für dieses Praktikum benötigte Infrastruktur und Software ein.
## Clonen eines Projekts von Gitlab
Um die Arbeit zu erleichtern, finden Sie in diesem Repository einen vorbereiteten Projektrahmen. Als erstes müssen Sie sich eine lokale Kopie des Projektes erzeugen – dieser Schritt heißt bei Git clonen. Sie können das Clonen mit den installierten Git-Tools (vgl. „Benötigte Software für die Arbeit mit Git“) über das Dateisystem (git clone) oder über **IntelliJ** ausführen:
Um die Arbeit zu erleichtern, finden Sie in diesem Repository einen vorbereiteten Projektrahmen. Als Erstes müssen Sie sich eine lokale Kopie des Projektes erzeugen – dieser Schritt heißt bei Git clonen. Sie können das Clonen mit den installierten Git-Tools (vgl. „Benötigte Software für die Arbeit mit Git“) über das Dateisystem (`git clone`) oder über **IntelliJ** ausführen:
- VCS → Git → Clone
- Im Feld URL die URL Ihres Repositorys eintragen.
- Im Feld URL die URL Ihres Repositorys eintragen.
- Unter Directory ein geeignetes Verzeichnis auf Ihrem Rechner auswählen.
- Alle weiteren Angaben im IntelliJ-Dialog können Sie unverändert übernehmen.
Das vorbereitete Projekt kann in IntelliJ direkt und ohne weitere Anpassungen verwendet werden. Das eingesetzte Build-Automatisierungssystem heißt Gradle und muss von Ihnen in der Regel nicht angepasst werden, da bereits alles lauffähig konfiguriert ist und stelle eine Menge vorbereiteter Tasks, wie check, build, run, etc., zur Verfügung.
Das vorbereitete Projekt kann in IntelliJ direkt und ohne weitere Anpassungen verwendet werden. Das eingesetzte Build-Automatisierungssystem heißt Gradle und muss von Ihnen in der Regel nicht angepasst werden, da bereits alles lauffähig konfiguriert ist und stellt eine Menge vorbereiteter Tasks, wie check, build, run, etc., zur Verfügung.
Der Projektrahmen ist in folgende Bereiche aufgeteilt:
- In src → main → java werden die Java-Sources abgespeichert. Das Package de.hda.fbi.db2 ist bereits eingerichtet.
- In src → main → java werden die Java-Sources abgespeichert. Das Package `de.hda.fbi.db2` ist bereits eingerichtet.
- In src → main → resources werden die zum Projekt gehörenden Ressource-Dateien abgespeichert.
**Hinweis**: Alle von Ihnen entwickelten Java-Klassen und -Packages müssen als Unter-Packages von de.hda.fbi.db2.stud abgelegt werden, damit der automatisierte Build-Prozess (vgl. „Weitere Hinweise zur Arbeit mit GitLab“) funktioniert!
**Hinweis**: Alle von Ihnen entwickelten Java-Klassen und -Packages müssen als Unter-Packages von `de.hda.fbi.db2.stud` abgelegt werden, damit der automatisierte Build-Prozess (vgl. „Weitere Hinweise zur Arbeit mit GitLab“) funktioniert!
**Beispiel**: de.hda.fbi.db2.stud.entity
**Beispiel**: `de.hda.fbi.db2.stud.entity`
### Wichtige Git-Kommandos
**Add***(Selektieren Ihrer Änderungen zum Commit)*: `git add`<br/>
...
...
@@ -42,7 +42,7 @@ Lädt Änderungen vom Server herunter. Ggf. müssen diese Änderungen mit den lo
Für Studierende, die über keine Erfahrung mit Git verfügen, empfehlen wir, nicht gleichzeitig an mehreren Rechnern zu arbeiten, und jeweils unmittelbar *vor* der Arbeit ein Pull und unmittelbar *nach* der Arbeit ein Push zu machen (Commit vor dem Push nicht vergessen!).
Des weitern empfehlen wir unerfahrenen Studierenden folgende Links:
Des Weiteren empfehlen wir unerfahrenen Studierenden folgende Links:
-[Buch: *Git Pro*](https://git-scm.com/book/en/v2)(verfügbar in verschiedenen Sprachen)Gutes Buch zu Git, mit vielen (sehr vielen) Beispielen. Das Buch steht unter Creative Commons Attribution Non Commercial Share Alike 3.0 license. Es ist in verschiedenen Sprachen und Formaten verfügbar.
-[Comparing Workflows](https://www.atlassian.com/git/tutorials/comparing-workflows) eine gute Einführung in die Git-Workflows.
-[learngitbranching.js.org](https://learngitbranching.js.org/) Tutorial zum Thema Git Branching