master > master: README - Anmerkungen

This commit is contained in:
RD 2021-11-01 20:15:34 +01:00
parent 7e2399c819
commit d0fa57b46d
1 changed files with 23 additions and 21 deletions

View File

@ -29,7 +29,7 @@ In diesem Repository findet man:
Im Unterordner [`code`](./code) kann man Codeprojekte in Python und Golang finden, in denen verschiedene Algorithmen implementiert werden
(siehe insbes. [`code/python/src/algorithms`](./code/python//src/algorithms)
und [`code/golang/pkg/algorithms`](./code/golang/pkg/algorithms)).
und [`code/golang/internal/algorithms`](./code/golang/internal/algorithms)).
Gerne kann man den Code benutzen, in einem eigenen Repository verändern, und mit den im Kurs präsentierten Algorithmen **herumexperimentieren**.
@ -56,14 +56,6 @@ Jetzt können wir von dem Hauptordner des Repositorys Befehle wie
```
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ötigt. 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
@ -76,22 +68,15 @@ py -3 -m pip install -r code/requirements; # Windows
```
installieren.
### Ausführung ###
#### Für das Golang-Projekt ####
Zuerst den Artefakt kompilieren:
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ötigt. Letztere lassen sich mittels
```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/ads help; # zeigt Hilfsanleitung
./dist/ads version; # zeigt Version
./dist/ads run [--debug]; # führt code aus
./scripts/build.sh --lang go --mode setup
```
installieren.
### Ausführung ###
#### Für das Python-Projekt ####
@ -114,3 +99,20 @@ chmod +x run.sh; # nur einmalig nötig
./run.sh
```
aus.
#### Für das Golang-Projekt ####
Zuerst den Artefakt kompilieren:
```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/ads help; # zeigt Hilfsanleitung
./dist/ads version; # zeigt Version
./dist/ads run [--debug]; # führt code aus
```
**ANMERKUNG.** Ich habe versucht in beiden Projekten alle unnötigen Komplikationen von den Algorithmen auszublenden. Dennoch kann es durchaus der Fall sein, dass die Python-Implementierung wesentlich einfacher zu verstehen ist als die Go-Implementierung. Das Go-Projekt wurde v. a. deshalb entwickelt, da man mit Python nicht mit Pointers (»Zeiger«, siehe Woche 3) arbeiten kann. Dennoch versuche ich in beiden Projekten parallel auf einem ähnlichen Stand zu halten. Und beide Projekt sind so konzipiert, dass sie Inputs gleichen Formats (d. h. die **config.yml** Datei) akzeptieren.