arrow_back

Anwendungen mit Gemini Code Assist entwickeln

Anmelden Teilnehmen
Zugriff auf über 700 Labs und Kurse nutzen

Anwendungen mit Gemini Code Assist entwickeln

Lab 1 Stunde 30 Minuten universal_currency_alt 1 Guthabenpunkt show_chart Einsteiger
info Dieses Lab kann KI-Tools enthalten, die den Lernprozess unterstützen.
Zugriff auf über 700 Labs und Kurse nutzen

Übersicht

In diesem Lab verwenden Sie Gemini Code Assist, einen KI-gestützten Assistenten für die Anwendungsentwicklung in Google Cloud, um eine Anwendung zu erklären, zu testen, zu dokumentieren und zu verbessern.

Sie verwenden außerdem Cloud Workstations, um eine Entwicklungsumgebung zu erstellen, die Code OSS als integrierte Entwicklungsumgebung (IDE) nutzt.

Dieses Lab richtet sich an Entwickler aller Erfahrungsstufen, die Anwendungen erstellen. Sie müssen sich nicht mit der Entwicklung von Cloud-Apps auskennen.

Hinweis: Da es sich bei Gemini um eine Technologie im Frühstadium handelt, kann es zu Ergebnissen kommen, die zwar plausibel erscheinen, aber faktisch falsch sind. Ausgaben von Gemini sollten daher vor der Verwendung geprüft werden. Weitere Informationen finden Sie unter Gemini für Google Cloud und verantwortungsbewusste Anwendung von KI.

Lernziele

In diesem Lab lernen Sie, wie Sie die folgenden Aufgaben ausführen:

  • Cloudbasierte Entwicklungsumgebung für Anwendungen mit Cloud Workstations erstellen
  • Code mit Gemini Code Assist erklären
  • Mit Gemini Code Assist Unittests generieren
  • Gemini auffordern, das Aussehen einer Anwendung zu verbessern
  • Code mit Gemini Code Assist besser lesbar machen
  • Mit Gemini Code Assist Kommentare in englischer oder einer anderen Sprache zu Code hinzufügen

Einrichtung

Für jedes Lab werden Ihnen ein neues Google Cloud-Projekt und die entsprechenden Ressourcen für eine bestimmte Zeit kostenlos zur Verfügung gestellt.

  1. Melden Sie sich über ein Inkognitofenster in Qwiklabs an.

  2. Beachten Sie die Zugriffszeit (z. B. 1:15:00). Das Lab muss in dieser Zeit abgeschlossen werden.
    Es gibt keine Pausenfunktion. Sie können bei Bedarf neu starten, müssen dann aber von vorn beginnen.

  3. Wenn Sie bereit sind, klicken Sie auf Lab starten.

  4. Notieren Sie sich Ihre Anmeldedaten (Nutzername und Passwort). Mit diesen Daten melden Sie sich in der Google Cloud Console an.

  5. Klicken Sie auf Google Console öffnen.

  6. Klicken Sie auf Anderes Konto verwenden. Kopieren Sie den Nutzernamen und das Passwort für dieses Lab und fügen Sie beides in die entsprechenden Felder ein.
    Wenn Sie andere Anmeldedaten verwenden, tritt ein Fehler auf oder es fallen Kosten an.

  7. Akzeptieren Sie die Nutzungsbedingungen und überspringen Sie die Seite zur Wiederherstellung der Ressourcen.

Cloud Shell aktivieren

Cloud Shell ist eine virtuelle Maschine, auf der Entwicklertools installiert sind. Sie bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und läuft auf Google Cloud. Cloud Shell bietet Ihnen Befehlszeilenzugriff auf Ihre Google Cloud-Ressourcen. gcloud ist das Befehlszeilentool für Google Cloud. Das Tool ist in Cloud Shell vorinstalliert und unterstützt die Tab-Vervollständigung.

  1. Klicken Sie in der Google Cloud Console im Navigationsbereich auf Cloud Shell aktivieren (Bild: Cloud Shell-Symbol).

  2. Klicken Sie auf Weiter.
    Die Bereitstellung und Verbindung mit der Umgebung dauert einen kleinen Moment. Wenn Sie verbunden sind, sind Sie auch authentifiziert und das Projekt ist auf Ihre PROJECT_ID eingestellt. Beispiel:

Bild: Cloud Shell-Terminal

Beispielbefehle

  • Namen für das aktive Konto angeben:

gcloud auth list

(Ausgabe)

Credentialed accounts: - <myaccount>@<mydomain>.com (active)

(Beispielausgabe)

Credentialed accounts: - google1623327_student@qwiklabs.net
  • Projekt-ID angeben:

gcloud config list project

(Ausgabe)

[core] project = <project_ID>

(Beispielausgabe)

[core] project = qwiklabs-gcp-44776a13dea667a6

Aufgabe 1: Umgebung und Konto konfigurieren

In dieser Aufgabe aktivieren Sie die Cloud AI Companion API für Gemini und gewähren einem Nutzerkonto die erforderlichen Rollen.

APIs und Rollen konfigurieren

  1. Melden Sie sich mit Ihren Anmeldedaten für das Lab bei der Google Cloud Console an und öffnen Sie ein Cloud Shell-Terminal, indem Sie auf der Tastatur die Taste G und dann die Taste S drücken.

  2. Führen Sie die folgenden Befehle aus, um die Umgebungsvariablen für Projekt-ID, Nutzer und Region in Cloud Shell einzurichten:

    export PROJECT_ID=$(gcloud config list project --format="value(core.project)") export USER=$(gcloud config list account --format "value(core.account)") export REGION={{{project_0.startup_script.lab_region| Lab Region}}} echo "PROJECT_ID=${PROJECT_ID}" echo "USER=${USER}" echo "REGION=${REGION}"
  3. Führen Sie die folgenden Befehle aus, um die Cloud AI Companion API für Gemini zu aktivieren und Ihrem Nutzerkonto die erforderlichen Rollen zu gewähren:

    gcloud services enable cloudaicompanion.googleapis.com --project ${PROJECT_ID} gcloud projects add-iam-policy-binding ${PROJECT_ID} --member user:${USER} --role=roles/cloudaicompanion.user gcloud projects add-iam-policy-binding ${PROJECT_ID} --member user:${USER} --role=roles/serviceusage.serviceUsageViewer

Klicken Sie auf Fortschritt prüfen. Relevante APIs aktivieren und IAM-Rollen gewähren

Aufgabe 2: Cloud-Workstation erstellen

In diesem Lab entwickeln Sie mit Unterstützung durch Gemini eine Anwendung mit dem Cloud Code-Plug-in für die Cloud Workstations-IDE. Cloud Workstations ist eine vollständig verwaltete, integrierte Entwicklungsumgebung, die eine native Einbindung in Gemini bietet.

Bei dieser Aufgabe konfigurieren Sie eine Cloud Workstations-Umgebung und stellen sie bereit. Außerdem aktivieren Sie das Cloud Code-Plug-in für Gemini.

Workstation-Cluster aufrufen

Für dieses Lab wurde vorab ein Workstation-Cluster namens my-cluster erstellt. Dieser Cluster dient dazu, eine Workstation zu konfigurieren und zu erstellen.

  1. Öffnen Sie die Workstations-Seite. Geben Sie in der Titelleiste der Google Cloud Console in das Suchfeld die Wörter Cloud Workstations ein und klicken Sie dann auf Cloud Workstations.

  2. Wenn Cloud Workstations nicht angepinnt ist (Symbol für angepinntes Produkt), klicken Sie im Navigationsmenü (Navigationsmenü) auf Anpinnen (Schaltfläche zum Anpinnen eines Produkts).

  3. Klicken Sie im Navigationsbereich auf Clusterverwaltung.

  4. Prüfen Sie den Status des Clusters. Falls der Status des Clusters Wird abgeglichen oder Wird aktualisiert lautet, aktualisieren Sie die Anzeige regelmäßig, bis er den Status Bereit aufweist, bevor Sie mit dem nächsten Schritt fortfahren.

Konfiguration und Workstation erstellen

  1. Führen Sie in Cloud Shell die folgenden Befehle aus, um die Workstation-Konfiguration und die Workstation zu erstellen:

    export CLUSTER_NAME=my-cluster export CONFIG_NAME=my-config export WS_NAME=my-workstation export REGION={{{project_0.startup_script.lab_region| Lab Region}}} gcloud workstations configs create ${CONFIG_NAME} --cluster=${CLUSTER_NAME} --region=${REGION} --machine-type="e2-standard-4" --pd-disk-size=200 --pd-disk-type="pd-standard" --pool-size=1 gcloud workstations create ${WS_NAME} --cluster=${CLUSTER_NAME} --config=${CONFIG_NAME} --region=${REGION}

    Warten Sie, bis die Befehle abgeschlossen sind.

  2. Klicken Sie im Navigationsbereich auf Workstations.

    Nachdem die Workstation erstellt wurde, wird sie unter Meine Workstations mit dem Status Beendet aufgeführt.

  3. Klicken Sie auf Starten, um die Workstation zu starten.

    Wenn die Workstation gestartet wird, ändert sich der Status zu Wird gestartet. Warten Sie, bis der Status Wird ausgeführt lautet. Dies bedeutet, dass die Workstation bereit ist.

IDE starten

Für einige Erweiterungen müssen Drittanbieter-Cookies im Browser aktiviert sein, damit sie richtig funktionieren.

  1. Klicken Sie im Menü Chrome auf Einstellungen, um Drittanbieter-Cookies in Chrome zu aktivieren.

  2. Geben Sie in die Suchleiste Drittanbieter-Cookies ein.

  3. Klicken Sie auf die Einstellung Drittanbieter-Cookies und wählen Sie Drittanbieter-Cookies zulassen aus.

    Hinweis: Falls Sie den Browser nach dem Lab auf die aktuellen Einstellungen zurücksetzen möchten, merken Sie sich die ursprüngliche Einstellung für Drittanbieter-Cookies.
  4. Klicken Sie in der Google Cloud Console auf der Seite Workstations auf Starten, um die Code OSS-IDE zu starten.

    Die IDE wird in einem anderen Browsertab geöffnet.

    OSS-IDE mit hervorgehobener Aktivitäts‑ und Statusleiste

Klicken Sie auf Fortschritt prüfen. Cloud-Workstation erstellen und starten

Aufgabe 3: Cloud Code-Erweiterung aktualisieren, um Gemini zu aktivieren

In dieser Aufgabe aktivieren Sie Gemini in Cloud Code für die Workstation-IDE.

Mit Google Cloud verbinden

Führen Sie diese Schritte aus, um eine Verbindung zwischen der Workstation und Google Cloud herzustellen:

  1. Klicken Sie unten im Fenster in der Statusleiste auf Cloud Code – Anmelden und öffnen Sie dann den im Terminal angezeigten Link in Ihrem Browser.

  2. Wenn Sie aufgefordert werden, das Öffnen der externen Website zu bestätigen, klicken Sie auf Öffnen.

  3. Wählen Sie ein Konto aus, um zu Gemini Code Assist zu gelangen, und klicken Sie dann auf Anmelden.

    Ihr Bestätigungscode wird im Browsertab angezeigt.

    Hinweis: Möglicherweise werden Sie gewarnt, dass Sie einen „gcloud auth login“-Befehl ausgeführt haben. Diese Warnung wird lediglich angezeigt, da die IDE diesen Befehl in Ihrem Namen ausgeführt hat.
  4. Klicken Sie auf Kopieren.

  5. Fügen Sie den Code im IDE-Terminal unter Autorisierungscode eingeben ein.

  6. Wenn Sie aufgefordert werden, das Kopieren aus der Zwischenablage zu erlauben, klicken Sie auf Zulassen.

  7. Drücken Sie die Eingabetaste und warten Sie, bis in der Statusleiste Cloud Code – kein Projekt angezeigt wird.

    Sie sind jetzt mit Google Cloud verbunden.

Gemini in Cloud Code aktivieren

Führen Sie die folgenden Schritte aus, um Gemini in Cloud Code für die Workstation-IDE zu aktivieren:

  1. Klicken Sie in der Workstation-IDE auf das Menü (Code OSS – Hauptmenü) und dann auf Datei > Einstellungen > Einstellungen.

  2. Geben Sie unter Sucheinstellungen Gemini ein.

  3. Klicken Sie im Dialogfeld „Einstellungen“ im Tab Nutzer auf Erweiterungen > Gemini Code Assist.

  4. Fügen Sie auf der Cloud Code-Einstellungsseite unter Gemini Code Assist: Projekt die Google Cloud-Projekt-ID ein.

    Gemini aktivieren

  5. Klicken Sie in der Statusleiste unten im Fenster auf Cloud Code – kein Projekt, um das Projekt für Cloud Code auszuwählen. Wählen Sie dann die Option Google Cloud-Projekt auswählen und dann aus.

    Projekt für Cloud Code auswählen

    Die Projekt-ID wird jetzt in der Statusleiste angezeigt. Gemini ist einsatzbereit.

Aufgabe 4: Python Flask-Anwendung herunterladen, prüfen und ausführen

Der Code für eine Python Flask-Anwendung wurde bereits in einem Cloud Storage-Bucket gespeichert.

In dieser Aufgabe laden Sie eine Python Flask-Anwendung in der IDE herunter, prüfen sie und führen sie aus. Gemini Code Assist erklärt dann den Code.

Im Terminal anmelden

  1. Wählen Sie im IDE-Menü (Code OSS – Hauptmenü) Terminal > Neues Terminal aus.

  2. Führen Sie im Terminal den folgenden Befehl aus:

    gcloud auth login

    Öffnen Sie den im Terminal angezeigten Link in Ihrem Browser.

  3. Wählen Sie einen für das Konto aus, um sich beim Google Cloud SDK anzumelden, und klicken Sie dann auf Weiter.

  4. Klicken Sie anschließend im Fenster mit der Meldung Google Cloud SDK möchte auf Ihr Google-Konto zugreifen auf Zulassen.

    Ihr Bestätigungscode wird im Browsertab angezeigt.

    Hinweis: Möglicherweise werden Sie gewarnt, dass Sie einen „gcloud auth login“-Befehl ausgeführt haben. Diese Warnung wird lediglich angezeigt, da die IDE diesen Befehl in Ihrem Namen ausgeführt hat.
  5. Klicken Sie auf Kopieren.

  6. Fügen Sie den Code in der IDE im Terminal unter Den im Browser angezeigten Bestätigungscode eingeben ein und drücken Sie die Eingabetaste.

    Ihre Terminalsitzung ist jetzt in Google Cloud angemeldet.

Virtuelle Python-Umgebung installieren

  1. Führen Sie die folgenden Befehle aus, um Python lokal in einer virtuellen Umgebung zu installieren:

    sudo apt update sudo apt -y upgrade sudo apt install -y python3-venv python3 -m venv ~/env source ~/env/bin/activate
  2. Führen Sie die folgenden Befehle aus, um den zu verwendenden Python-Speicherort zu prüfen:

    which python3

Code kopieren

  1. Führen Sie im Terminal den folgenden Befehl aus, um den Anwendungscode zu kopieren:

    export PROJECT_ID={{{project_0.project_id | Project ID}}} export BUCKET_NAME=$PROJECT_ID-code gcloud storage cp -r gs://$BUCKET_NAME/* .

    Der Code wurde in ein Unterverzeichnis mit dem Namen codeassist-demo kopiert.

  2. Klicken Sie in der Aktivitätsleiste der IDE auf Explorer (Code OSS – Explorer-Menü) und dann auf Ordner öffnen.

  3. Klicken Sie im Dialogfeld Ordner öffnen auf codeassist-demo und dann auf OK.

    Die Verzeichnisstruktur wird angezeigt.

Code überprüfen

  1. Wählen Sie main.py aus.

    Die Python-Datei wird in einem Editorfenster geöffnet.

  2. Klicken Sie in der Aktivitätsleiste der IDE auf Gemini Code Assist (Code OSS – Gemini Code Assist-Menü).

    Gemini Code Assist ist ein KI-basierter Assistent, der Sie bei der Entwicklung von Anwendungen unterstützt.

  3. Geben Sie im Gemini Code Assist-Chatfenster den folgenden Prompt ein und klicken Sie auf Senden (Gemini – Senden):

    Explain this

    Prompts sind Fragen oder Aussagen, in denen Sie beschreiben, wobei Sie Unterstützung benötigen. Prompts können Kontext aus vorhandenem Code enthalten, den Google Cloud analysiert, um Ihnen hilfreiche oder vollständige Antworten zu geben. Informationen zum Schreiben von Prompts, auf die Sie gute Antworten erhalten, finden Sie unter Bessere Prompts für Gemini in Google Cloud schreiben.

    Gemini erklärt den Code in main.py. Die Antwort von Gemini erklärt möglicherweise folgende Abschnitte:

    • Abhängigkeiten
    • Anwendungseinrichtung
    • Routen
    • Anwendungsausführung

    Wenn Sie dagegen Code auswählen, führt derselbe Prompt dazu, dass Gemini Code Assist dann nur den ausgewählten Code erklärt.

    Hinweis: Der Status des Chatprotokolls wird nur im Arbeitsspeicher gespeichert und geht verloren, wenn Sie zu einem anderen Arbeitsbereich wechseln oder die IDE schließen. Gemini verwendet Ihre Prompts und die Antworten darauf nicht zum Trainieren des Modells. Weitere Informationen finden Sie unter So verwendet Gemini for Google Cloud Ihre Daten.
  4. Wählen Sie im Editor die app.route und Funktionsdefinition für die POST /convert-Route aus, klicken Sie auf die Glühbirne (Code OSS – Gemini-Glühbirne) und dann auf Gemini: Auswahl erklären.

    Code aus Datei

    Gemini erklärt dann den ausgewählten Code im Detail.

Anwendung ausführen

  1. Falls das Terminal geschlossen wurde, wählen Sie im IDE-Menü (Code OSS – Hauptmenü) Terminal > Neues Terminal aus.

  2. Führen Sie im Terminal die folgenden Befehle aus:

    cd ~/codeassist-demo source ~/env/bin/activate python3 main.py

    Der Befehl gibt den Fehler zurück, dass es kein Modul mit dem Namen flask gibt. Sie können Gemini Code Assist verwenden, um das Problem besser zu verstehen.

  3. Geben Sie im Chatfenster von Gemini Code Assist den folgenden Prompt ein:

    How do you install Python requirements?

    Gemini Code Assist wird wahrscheinlich erwähnen, dass Sie den Paketinstaller pip und die Datei requirements.txt verwenden können, um die nötigen Python-Anforderungen zu installieren.

  4. Klicken Sie in der Aktivitätsleiste der IDE auf Explorer (Code OSS – Explorer-Menü) und dann auf requirements.txt.

    Flask und dessen erforderliche Version sind in der Datei requirements.txt aufgeführt.

  5. Führen Sie im Terminal den folgenden Befehl aus:

    pip install -r requirements.txt

    Flask ist jetzt installiert.

  6. Führen Sie im Terminal den folgenden Befehl aus:

    python3 main.py

    In einem Dialogfeld werden Sie darauf hingewiesen, dass der Dienst, der Port 8080 überwacht, jetzt für die Webvorschau verfügbar ist.

  7. Klicken Sie auf Vorschau öffnen und dann auf Öffnen.

    Die Webanwendung „Roman Numerals“ wird in einem neuen Tab geöffnet.

  8. Geben Sie im Zahlenfeld 123 ein und klicken Sie auf Convert.

    Die zurückgegebene Zahl ist CXXIII. C steht für 100, X für 10 und I für 1. Das sieht richtig aus.

  9. Klicken Sie auf Return to home page, geben Sie 45 ein und klicken Sie auf Convert.

    Die zurückgegebene Zahl ist XXXXV. Technisch gesehen ist das mathematisch korrekt (4 × 10 + 5), aber 40 wird normalerweise als XL dargestellt (10 weniger als 50). Daher wird die Zahl traditionellerweise als die römische Zahl XLV dargestellt.

    Weitere Informationen zu diesem Thema folgen später.

  10. Klicken Sie in der Aktivitätsleiste der IDE auf Explorer (Code OSS – Explorer-Menü) und dann auf calendar.py.

    Die Funktion number_to_roman konvertiert eine Zahl in eine römische Zahl.

Klicken Sie auf Fortschritt prüfen. Code kopieren und eine Python Flask-Anwendung ausführen

Aufgabe 5: Unittests hinzufügen

In dieser Aufgabe verwenden Sie Gemini Code Assist, um für Ihren Code Unittests zu generieren.

  1. Klicken Sie in der Aktivitätsleiste der IDE auf Gemini Code Assist (Code OSS – Gemini Code Assist-Menü) und geben Sie den folgenden Prompt ein:

    Create unit tests for a fixed version of number_to_roman

    Gemini Code Assist erkennt den Code im geöffneten Tab für calendar.py. Der Beispielcode sollte in etwa so aussehen:

    import unittest import calendar class TestNumberToRoman(unittest.TestCase): def test_basic_conversions(self): self.assertEqual(calendar.number_to_roman(1), "I") self.assertEqual(calendar.number_to_roman(5), "V") self.assertEqual(calendar.number_to_roman(10), "X") self.assertEqual(calendar.number_to_roman(50), "L") self.assertEqual(calendar.number_to_roman(100), "C") self.assertEqual(calendar.number_to_roman(500), "D") self.assertEqual(calendar.number_to_roman(1000), "M") def test_combinations(self): self.assertEqual(calendar.number_to_roman(4), "IV") self.assertEqual(calendar.number_to_roman(9), "IX") self.assertEqual(calendar.number_to_roman(14), "XIV") self.assertEqual(calendar.number_to_roman(40), "XL") self.assertEqual(calendar.number_to_roman(90), "XC") self.assertEqual(calendar.number_to_roman(400), "CD") self.assertEqual(calendar.number_to_roman(900), "CM") self.assertEqual(calendar.number_to_roman(1994), "MCMXCIV") self.assertEqual(calendar.number_to_roman(3888), "MMMDCCCLXXXVIII") def test_edge_cases(self): self.assertEqual(calendar.number_to_roman(0), "") # Should handle zero self.assertRaises(TypeError, calendar.number_to_roman, "abc") # Should handle invalid input def test_large_numbers(self): self.assertEqual(calendar.number_to_roman(3000), "MMM") self.assertEqual(calendar.number_to_roman(3999), "MMMCMXCIX") if __name__ == '__main__': unittest.main() Hinweis: Gemini erstellt möglicherweise Unittests, die für Ihren Code in der aktuellen Implementierung erfolgreich sind, anstelle von Tests, die erfolgreich sind, wenn der Code der Standardimplementierung folgt. Für dieses Lab verwenden Sie eine korrekte Version der Unittests.
  2. Drücken Sie im Terminal STRG + C, um die laufende Anwendung zu beenden.

  3. Führen Sie im Terminal die folgenden Befehle aus, um Unittests für die Konvertierungsfunktion zu erstellen:

    cat > ~/codeassist-demo/test_calendar.py <<EOF import unittest import calendar class TestNumberToRoman(unittest.TestCase): def test_basic_conversions(self): self.assertEqual(calendar.number_to_roman(1), "I") self.assertEqual(calendar.number_to_roman(5), "V") self.assertEqual(calendar.number_to_roman(10), "X") self.assertEqual(calendar.number_to_roman(50), "L") self.assertEqual(calendar.number_to_roman(100), "C") self.assertEqual(calendar.number_to_roman(500), "D") self.assertEqual(calendar.number_to_roman(1000), "M") def test_combinations(self): self.assertEqual(calendar.number_to_roman(4), "IV") self.assertEqual(calendar.number_to_roman(9), "IX") self.assertEqual(calendar.number_to_roman(14), "XIV") self.assertEqual(calendar.number_to_roman(40), "XL") self.assertEqual(calendar.number_to_roman(90), "XC") self.assertEqual(calendar.number_to_roman(400), "CD") self.assertEqual(calendar.number_to_roman(900), "CM") self.assertEqual(calendar.number_to_roman(1994), "MCMXCIV") self.assertEqual(calendar.number_to_roman(3888), "MMMDCCCLXXXVIII") def test_edge_cases(self): self.assertEqual(calendar.number_to_roman(0), "") # Should handle zero self.assertRaises(TypeError, calendar.number_to_roman, "abc") # Should handle invalid input def test_large_numbers(self): self.assertEqual(calendar.number_to_roman(3000), "MMM") self.assertEqual(calendar.number_to_roman(3999), "MMMCMXCIX") if __name__ == '__main__': unittest.main() EOF
  4. Führen Sie zum Ausführen der Tests im Terminal die folgenden Befehle aus:

    cd ~/codeassist-demo python3 test_calendar.py

    Die Tests schlagen fehl:

    ====================================================================== ERROR: test_edge_cases (__main__.TestNumberToRoman.test_edge_cases) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/user/codeassist-demo/test_calendar.py", line 28, in test_edge_cases self.assertRaises(TypeError, calendar.number_to_roman, "abc") # Should handle invalid input ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/unittest/case.py", line 778, in assertRaises return context.handle('assertRaises', args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/unittest/case.py", line 238, in handle callable_obj(*args, **kwargs) File "/home/user/codeassist-demo/calendar.py", line 16, in number_to_roman number = int(number) ^^^^^^^^^^^ ValueError: invalid literal for int() with base 10: 'abc' ====================================================================== FAIL: test_combinations (__main__.TestNumberToRoman.test_combinations) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/user/codeassist-demo/test_calendar.py", line 16, in test_combinations self.assertEqual(calendar.number_to_roman(4), "IV") AssertionError: 'IIII' != 'IV' - IIII + IV ====================================================================== FAIL: test_large_numbers (__main__.TestNumberToRoman.test_large_numbers) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/user/codeassist-demo/test_calendar.py", line 33, in test_large_numbers self.assertEqual(calendar.number_to_roman(3999), "MMMCMXCIX") AssertionError: 'MMMDCCCCLXXXXVIIII' != 'MMMCMXCIX' - MMMDCCCCLXXXXVIIII + MMMCMXCIX ---------------------------------------------------------------------- Ran 4 tests in 0.004s FAILED (failures=2, errors=1)

    Die Fehler lauteten:

    • abc wurde nicht korrekt verarbeitet.
    • 4 gab IIII statt IV zurück.
    • 3999 wurde als MMMDCCCCLXXXXVIIII statt als MMMCMXCIX zurückgegeben.

    Bei jeder Testfunktion führt der erste auftretende Fehler dazu, dass die Funktion beendet wird.

    Hinweis: Ihre Ergebnisse können eventuell abweichen, wenn Ihr Testcode abweicht.

Klicken Sie auf Fortschritt prüfen. Unittests für die Konvertierungsfunktion erstellen

Aufgabe 6: Fehler im Code beheben und Code lesbarer machen

In dieser Aufgabe verwenden Sie Gemini Code Assist, um die Fehler im Code zu korrigieren und ihn lesbarer zu machen.

  1. Klicken Sie in der Aktivitätsleiste der IDE auf Explorer (Code OSS – Explorer-Menü) und dann auf calendar.py.

  2. Klicken Sie in der Aktivitätsleiste der IDE auf Gemini Code Assist (Code OSS – Gemini Code Assist-Menü) und geben Sie den folgenden Prompt ein:

    Make my code more readable and fix any errors

    Gemini Code Assist verbessert dann die Lesbarkeit des Codes und behebt das Problem wahrscheinlich. Hier ein Beispiel:

    def number_to_roman(number): """Converts an integer to its Roman numeral equivalent. Args: number: An integer between 0 and 3999. Returns: A string representing the Roman numeral equivalent of the number. Returns an empty string if the input is 0. Raises TypeError if the input is not an integer or is out of range. """ try: number = int(number) except ValueError: raise TypeError("Input must be an integer.") if not 0 <= number <= 3999: raise TypeError("Input must be between 0 and 3999.") if number == 0: return "" roman_map = { 1000: 'M', 900: 'CM', 500: 'D', 400: 'CD', 100: 'C', 90: 'XC', 50: 'L', 40: 'XL', 10: 'X', 9: 'IX', 5: 'V', 4: 'IV', 1: 'I'} result = "" for value, numeral in roman_map.items(): while number >= value: result += numeral number -= value return result

    Gemini Code Assist erklärt auch die vorgenommenen Änderungen:

    Key improvements: 1. Error Handling: Added TypeError for non-integer input and values outside the range 0-3999. This makes the function more robust. 2. Docstring: A clear docstring explains the function's purpose, arguments, return value, and error handling. This significantly improves readability and maintainability. 3. Efficiency and Correctness: Uses a roman_map dictionary and a more efficient algorithm to construct the Roman numeral. This handles subtractive notation (like "IV" for 4, "IX" for 9, etc.) correctly. The previous version had issues with these cases and was less efficient. 4. Zero Handling: Explicitly handles the case where the input number is 0, returning an empty string as expected. 5. Clarity: The code is now more concise and easier to understand. The logic is clearer and the variable names are more descriptive. This revised version addresses the limitations and errors of the original implementation and adheres to best practices for Python code. It's more robust, readable, and efficient.

    In diesem Beispiel hat Gemini Code Assist einen Algorithmus bereitgestellt, der den Code lesbarer gemacht und Probleme im ursprünglichen Code behoben hat.

  3. Klicken Sie im Codebereich von Gemini Code Assist auf Vergleich mit geöffneter Datei (Gemini Code Assist: Vergleich mit geöffneter Datei), um den Code in einer neuen Datei zu vergleichen.

  4. Klicken Sie auf Akzeptieren, um die Änderungen zu übernehmen. Der aktualisierte Code wurde akzeptiert.

  5. Führen Sie im Terminal die folgenden Befehle aus:

    cd ~/codeassist-demo python3 test_calendar.py

    Wenn die Tests nicht erfolgreich sind, führen Sie sie mehrmals aus, um sicherzustellen, dass die Tests keine im Cache gespeicherte Version des calendar-Moduls verwenden.

    Falls Gemini das Problem mit den römischen Zahlen nicht behoben hat, werden einige Tests fehlschlagen. In diesem Fall können Sie den Code so oft selbst korrigieren, bis der Test erfolgreich ist, oder calendar.py durch eine Version ersetzen, von der Sie wissen, dass sie funktioniert.

  6. Wenn manche der Tests fehlschlagen, führen Sie die folgenden Befehle aus, um den Code zu korrigieren und die Unittests noch einmal auszuführen:

    cat > ~/codeassist-demo/calendar.py <<EOF def number_to_roman(number): """Converts an integer to its Roman numeral equivalent. Args: number: An integer between 0 and 3999. Returns: A string representing the Roman numeral equivalent of the number. Returns an empty string if the input is 0. Raises TypeError if the input is not an integer or is out of range. """ try: number = int(number) except ValueError: raise TypeError("Input must be an integer.") if not 0 <= number <= 3999: raise TypeError("Input must be between 0 and 3999.") if number == 0: return "" roman_map = { 1000: 'M', 900: 'CM', 500: 'D', 400: 'CD', 100: 'C', 90: 'XC', 50: 'L', 40: 'XL', 10: 'X', 9: 'IX', 5: 'V', 4: 'IV', 1: 'I'} result = "" for value, numeral in roman_map.items(): while number >= value: result += numeral number -= value return result EOF cd ~/codeassist-demo python3 test_calendar.py

    Die Tests sollten jetzt erfolgreich sein.

Klicken Sie auf Fortschritt prüfen. calendar.py aktualisieren, um Probleme im ursprünglichen Code zu beheben

Aufgabe 7: Code für Personen besser lesbar machen, deren Muttersprache nicht Englisch ist

Wenn Englisch nicht Ihre Muttersprache ist und Sie auf eine Übersetzungsanwendung angewiesen sind, können Sie mit Gemini Code Assist auch Kommentare in anderen Sprachen generieren.

In dieser Aufgabe verwenden Sie Gemini Code Assist, um Code Kommentare hinzuzufügen, in Englisch und auch in einer anderen Sprache.

  1. Klicken Sie in der Aktivitätsleiste der IDE auf Explorer (Code OSS – Explorer-Menü) und dann auf main.py.

  2. Klicken Sie in der Aktivitätsleiste der IDE auf Gemini Code Assist (Code OSS – Gemini Code Assist-Menü) und geben Sie den folgenden Prompt ein:

    Add comments to main.py

    Gemini Code Assist fügt dann Kommentare hinzu, die den Code erklären:

    import os # Import the os module for environment variables from flask import Flask, render_template, request # Import Flask framework components import calendar # Import the calendar module for Roman numeral conversion # Create a Flask app instance app = Flask(__name__) # Define a route for the home page @app.route("/", methods=["GET"]) def home_page(): # Render the index.html template return render_template("index.html") # Define a route for the conversion endpoint @app.route("/convert", methods=["POST"]) def convert(): # Get the number from the form data number = request.form["number"] # Convert the number to Roman numerals using the calendar module roman = calendar.number_to_roman(number) # Render the convert.html template with the number and its Roman numeral equivalent return render_template("convert.html", number=number, roman=roman) # Run the Flask app if this script is executed directly if __name__ == "__main__": # Run the app in debug mode, listening on all interfaces (0.0.0.0) # and using the port specified in the environment variable PORT or defaulting to 8080 app.run(debug=True, host="0.0.0.0", port=int(os.environ.get("PORT", 8080)))

    Aber was, wenn Englisch nicht Ihre Muttersprache ist?

  3. Geben Sie im Bereich Gemini Code Assist den folgenden Prompt ein:

    Add Spanish comments to main.py

    Gemini Code Assist kann Kommentare in verschiedenen Sprachen bereitstellen, um die Lesbarkeit des Codes zu verbessern.

  4. Klicken Sie im Codebereich von Gemini Code Assist auf Vergleich mit geöffneter Datei (Gemini Code Assist: Vergleich mit geöffneter Datei), um zu überprüfen, ob nur Kommentare hinzugefügt wurden.

    Die Aktualisierungen werden mit dem vorhandenen Code verglichen:

    Vergleich mit spanischen Kommentaren

  5. Wenn Sie die Änderungen nicht annehmen möchten, klicken Sie auf Ablehnen.

Aufgabe 8: Aussehen der Anwendung verbessern

Gemini Code Assist kann Ihnen auch dabei helfen, Ihre Anwendung ansprechender zu gestalten.

In dieser Aufgabe verwenden Sie Gemini Code Assist, um das visuelle Design Ihrer Anwendung zu verbessern.

  1. Führen Sie im Terminal den folgenden Befehl aus:

    cd ~/codeassist-demo python3 main.py

    In einem Dialogfeld werden Sie darauf hingewiesen, dass der Dienst, der Port 8080 überwacht, jetzt für die Webvorschau verfügbar ist.

  2. Klicken Sie auf Vorschau öffnen und dann auf Öffnen.

    Die Webanwendung „Roman Numerals“ wird in einem neuen Tab geöffnet.

    Einfache Benutzeroberfläche

  3. Klicken Sie in der Aktivitätsleiste der IDE auf Explorer (Code OSS – Explorer-Menü) und wählen Sie templates/index.html aus.

    Die HTML-Vorlage für diese Anwendung ist sehr einfach.

  4. Klicken Sie in der Aktivitätsleiste der IDE auf Gemini Code Assist (Code OSS – Gemini Code Assist-Menü) und geben Sie den folgenden Prompt ein:

    Make this HTML template look better

    Gemini Code Assist aktualisiert dann den Code, um die Darstellung der Anwendungsseite mit den Einträgen zu verbessern.

  5. Klicken Sie in Gemini Code Assist im Codebereich auf Vergleich mit geöffneter Datei (Gemini Code Assist: Vergleich mit geöffneter Datei) und dann auf Akzeptieren, um die Änderungen zu übernehmen.

  6. Kehren Sie zum Browsertab mit der Anwendung „Roman Numerals“ zurück und klicken Sie auf Refresh.

    Die App sollte jetzt besser aussehen. In diesem Beispiel ist das Dialogfeld mittig auf der Seite platziert und es wurden Farben hinzugefügt.

    Verbesserte Benutzeroberfläche

    Hinweis: Die von Gemini Code Assist vorgenommenen Änderungen können bei Ihnen anders aussehen.
  7. Klicken Sie in der Aktivitätsleiste der IDE auf Explorer (Code OSS – Explorer-Menü) und dann auf templates/convert.html.

  8. Klicken Sie in der Aktivitätsleiste der IDE auf Gemini Code Assist (Code OSS – Gemini Code Assist-Menü) und geben Sie den folgenden Prompt ein:

    Make the convert.html template look similar to the index.html template

    Gemini Code Assist aktualisiert dann die Ergebnisvorlage, sodass sie mit der Indexvorlage übereinstimmt.

  9. Klicken Sie zum Übernehmen der Änderungen im Codebereich von Gemini Code Assist auf Vergleich mit geöffneter Datei (Gemini Code Assist: Vergleich mit geöffneter Datei) und dann auf Akzeptieren.

  10. Kehren Sie zum Browsertab mit der Anwendung „Roman Numerals“ zurück und geben Sie 45 ein. Drücken Sie dann die Eingabetaste.

    Die neue Ergebnisseite sollte dem Stil der Indexseite entsprechen:

    Verbesserte Ergebnisseite

Klicken Sie auf Fortschritt prüfen. Mit Gemini Code Assist das visuelle Design Ihrer Anwendung verbessern

Lab beenden

Wenn Sie das Lab abgeschlossen haben, klicken Sie auf Lab beenden. Qwiklabs entfernt daraufhin die von Ihnen genutzten Ressourcen und bereinigt das Konto.

Anschließend erhalten Sie die Möglichkeit, das Lab zu bewerten. Wählen Sie die entsprechende Anzahl von Sternen aus, schreiben Sie einen Kommentar und klicken Sie anschließend auf Senden.

Die Anzahl der Sterne hat folgende Bedeutung:

  • 1 Stern = Sehr unzufrieden
  • 2 Sterne = Unzufrieden
  • 3 Sterne = Neutral
  • 4 Sterne = Zufrieden
  • 5 Sterne = Sehr zufrieden

Wenn Sie kein Feedback geben möchten, können Sie das Dialogfeld einfach schließen.

Verwenden Sie für Feedback, Vorschläge oder Korrekturen den Tab Support.

Das wars! Sie haben das Lab erfolgreich abgeschlossen.

Sie haben Folgendes gelernt:

  • Cloudbasierte Entwicklungsumgebung für Anwendungen mit Cloud Workstations erstellen
  • Code mit Gemini Code Assist erklären
  • Mit Gemini Code Assist Unittests generieren
  • Gemini auffordern, das Aussehen einer Anwendung zu verbessern
  • Code mit Gemini Code Assist besser lesbar machen
  • Mit Gemini Code Assist Kommentare in englischer oder einer anderen Sprache zu Code hinzufügen

Weitere Informationen

© 2024 Google LLC. Alle Rechte vorbehalten. Google und das Google-Logo sind Marken von Google LLC. Alle anderen Unternehmens- und Produktnamen können Marken der jeweils mit ihnen verbundenen Unternehmen sein.

Vorbereitung

  1. Labs erstellen ein Google Cloud-Projekt und Ressourcen für einen bestimmten Zeitraum
  2. Labs haben ein Zeitlimit und keine Pausenfunktion. Wenn Sie das Lab beenden, müssen Sie von vorne beginnen.
  3. Klicken Sie links oben auf dem Bildschirm auf Lab starten, um zu beginnen

Privates Surfen verwenden

  1. Kopieren Sie den bereitgestellten Nutzernamen und das Passwort für das Lab
  2. Klicken Sie im privaten Modus auf Konsole öffnen

In der Konsole anmelden

  1. Melden Sie sich mit Ihren Lab-Anmeldedaten an. Wenn Sie andere Anmeldedaten verwenden, kann dies zu Fehlern führen oder es fallen Kosten an.
  2. Akzeptieren Sie die Nutzungsbedingungen und überspringen Sie die Seite zur Wiederherstellung der Ressourcen
  3. Klicken Sie erst auf Lab beenden, wenn Sie das Lab abgeschlossen haben oder es neu starten möchten. Andernfalls werden Ihre bisherige Arbeit und das Projekt gelöscht.

Diese Inhalte sind derzeit nicht verfügbar

Bei Verfügbarkeit des Labs benachrichtigen wir Sie per E-Mail

Sehr gut!

Bei Verfügbarkeit kontaktieren wir Sie per E-Mail

Es ist immer nur ein Lab möglich

Bestätigen Sie, dass Sie alle vorhandenen Labs beenden und dieses Lab starten möchten

Privates Surfen für das Lab verwenden

Nutzen Sie den privaten oder Inkognitomodus, um dieses Lab durchzuführen. So wird verhindert, dass es zu Konflikten zwischen Ihrem persönlichen Konto und dem Teilnehmerkonto kommt und zusätzliche Gebühren für Ihr persönliches Konto erhoben werden.