lab-development-imb/web/07/labor/07_aufgaben.md

2.6 KiB
Raw Blame History

Übungsblatt 07

1. Go-Übung: Grundlagen

Keine Abgabe erforderlich

Aufgabenstellung: Machen Sie sich mit den Grundlagen der Programmiersprache vertraut.

Arbeitsschritte

  1. Besuchen Sie die Webseite Go by Example: Go by Example ist eine Einführung in Go anhand kommentierter Beispielprogramme.
  2. Arbeiten Sie die Liste der Beispiele nacheinander durch. Folgende Themen werden (mindestens) empfohlen:
    • Hello World
    • Values
    • Variables
    • For
    • If/Else
    • Switch
    • Arrays
    • Slices
    • Maps
    • Functions
    • Multiple Return Values
    • Closures
    • Range over Built-in Types
    • Pointers
    • Structs
    • Methods
    • Interfaces
    • Enums
    • Errors

2. Go-Übung: Kommandozeilenprogramm

Aufgabenstellung: Entwickeln Sie ein Kommandozeilenprogramm in Go, mit dem Nutzer:innen ihre persönliche Büchersammlung verwalten können.

Tipp: Schauen Sie sich vorher das Demo-Programm "taskmanager" an.

Arbeitsschritte

Implementieren Sie ein Programm mit folgenden Funktionen:

  1. Buch hinzufügen

    go run main.go add "Titel" "Autor"
    

    → Fügt ein neues Buch zur Sammlung hinzu.

  2. Bücher auflisten

    go run main.go list
    

    → Zeigt alle Bücher mit ID, Titel, Autor und Lesestatus.

  3. Buch als gelesen markieren

    go run main.go read <ID>
    

    → Markiert das Buch mit der angegebenen ID als gelesen.

  4. Persistenz

    • Die Bücher sollen in einer Datei books.json gespeichert und beim Programmstart wieder geladen werden.
    • Verwenden Sie dafür das encoding/json-Paket und os.ReadFile / os.WriteFile.

Hinweise

  • Verwenden Sie struct für die Buch- und Bibliotheksdaten.
  • Arbeiten Sie mit slice zur Verwaltung der Bücherliste.
  • Nutzen Sie Methoden zur Kapselung von Logik (z.B. Add, MarkRead, Save).
  • Behandeln Sie Fehler sinnvoll und benutzerfreundlich.
  • Strukturieren Sie Ihr Projekt in mindestens zwei Dateien (main.go, book.go).

3. Go-Übung: Formulardaten empfangen

Aufgabenstellung: Erstellen Sie ein Webserver-Programm in Go, das den HTTP-Endpunkt /registrierung bereitstellt.

  • Der Endpunkt nimmt die Formulardaten der Workshop-Anmeldung aus Übungsblatt 04 entgegen und gibt sie als Response zurück.
  • Nutzen Sie dazu gerne die zuvor von Ihnen in Übungsblatt 06 definierte SWAGGER-Schnittstelle.
  • Es sollen nur POST-Request erlaubt sein. Falls eine andere Methode verwendet wurde, soll der Status-Code 405 (Method not allowed) zurückgegeben werden.
  • Testen Sie Ihren Endpunkt mit Ihrem HTML-Formular.