master > master: README

This commit is contained in:
RD 2021-10-30 10:19:33 +02:00
parent e6be5a467c
commit 189755e69a
1 changed files with 62 additions and 11 deletions

View File

@ -25,16 +25,49 @@ In diesem Repository findet man:
## Code ## ## Code ##
Im Unterordner [`code`](./code) kann man ein Python-Projekt finden, Im Unterordner [`code`](./code) kann man Codeprojekte in Python und Golang finden, in denen verschiedene Algorithmen implementiert werden
in dem verschiedene Algorithmen implementiert werden (siehe insbes. [`code/python/src/algorithms`](./code/python//src/algorithms)
(siehe insbes. [`code/algorithms`](./code/algorithms)). und [`code/golang/pkg/algorithms`](./code/golang/pkg/algorithms)).
Man kann gerne den Code benutzen, in einer eigenen Repository verändern, Man kann gerne den Code benutzen, in einer eigenen Repository verändern,
und mit den in dem Kurs präsentierten Algorithmen herumexperimentieren. und mit den in dem Kurs präsentierten Algorithmen herumexperimentieren.
### Systemvoraussetzungen ### ### Systemvoraussetzungen ###
#### Bashscripts ####
Im Ordner [`scripts`](./scripts) sind mehrere Workflows als Bashscripts kodiert. (Man kann natürlich ohne sie arbeiten, insbesondere dann, wenn man einen guten IDE hat.)
Zunächst braucht man einen Bashterminal. Das kommt mit OSX (Terminal) und Linux. Für Windows-User braucht man [git-for-windows](https://gitforwindows.org) zu installieren, was auch bash mit installiert. (Und für diejenigen, die VSCode oder andere IDEs benutzen, lässt sich bash als integrierten Terminal im IDE selbst verwenden.)
Den Bashscripts benötigen Ausfuhrrechte. Hierfür führe man
```bash
chmod +x scripts/*.sh;
```
aus. Das muss danach nie wiederholt werden.
Jetzt können wir von dem Hauptordner des Repositorys Befehle wie
```bash
./scripts/build.sh
./scripts/build.sh ---mode setup
```
usw. in der Bash-Console ausführen.
#### Für das Golang-Projekt ####
Man braucht [go](https://golang.org/dl/) Version **1.17.x**. (Man kann bestimmt bei späteren Releases höhere Versionen benutzen. Man muss lediglich dann in [`./code/golang/go.mod`](./code/golang/go.mod) die Version hochstellen und die Requirements nochmals installieren lassen.) Und einige Packages werden benötigen. Letztere lassen sich mittels
```bash
./scripts/build.sh --lang go --mode setup
```
installieren.
#### Für das Python-Projekt ####
Python version 3.x.x (idealerweise zumindest 3.9.5) plus einige Module (siehe [code/requirements](./code/requirements)). Letztere lassen sich mittels Python version 3.x.x (idealerweise zumindest 3.9.5) plus einige Module (siehe [code/requirements](./code/requirements)). Letztere lassen sich mittels
```bash ```bash
./scripts/build.sh --lang python --mode setup
## mit virtuellem Env:
./scripts/build.sh --lang python --venv true --mode setup
## alternative:
python3 -m pip install -r code/requirements; # linux, osx python3 -m pip install -r code/requirements; # linux, osx
py -3 -m pip install -r code/requirements; # Windows py -3 -m pip install -r code/requirements; # Windows
``` ```
@ -42,17 +75,35 @@ installieren.
### Ausführung ### ### Ausführung ###
Um den Python Code auszuführen, bspw. im Bash: #### Für das Golang-Projekt ####
Zuerst den Artefakt kompilieren:
```bash ```bash
./scripts/build.sh --lang go --mode dist;
## oder:
go build -o "dist/ads" "code/golang/main.go";
```
und dann mit dem gebauten Artefakt arbeiten:
```bash
./dist/ads1 help; # zeigt Hilfsanleitung
./dist/ads1 version; # zeigt Version
./dist/ads1 run [--debug]; # führt code aus
```
#### Für das Python-Projekt ####
```bash
pushd code/python/src; ## <- auf Pfad mit main.py wechseln
## Anzeigen der Hilfsanleitung: ## Anzeigen der Hilfsanleitung:
python3 code/main.py -h; # linux, OSX python3 main.py -h; # linux, OSX
py -3 code/main.py -h; # Windows py -3 main.py -h; # Windows
## Ausführung der Testfälle in code/config.yml: ## Ausführung der Testfälle in code/config.yml:
python3 code/main.py all; # linux, OSX python3 main.py run [--debug]; # linux, OSX
py -3 code/main.py all; # Windows py -3 main.py run [--debug]; # Windows
## Mit Infos über Schritte: ## --debug Option benutzen, um Infos über Schritte zu zeigen.
python3 code/main.py --debug all; # linux, OSX
py -3 code/main.py --debug all; # Windows popd; ## <- zum vorherigen Pfad zurückwechseln
``` ```
Oder man erstelle einen bash Skript wie `run.sh`, trage die Befehle da ein und führe Oder man erstelle einen bash Skript wie `run.sh`, trage die Befehle da ein und führe
```bash ```bash