diff --git a/README.md b/README.md index f15043e..699a079 100644 --- a/README.md +++ b/README.md @@ -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.