Acesse mais de 700 laboratórios e cursos

Criar apps com o Gemini Code Assist

Laboratório 1 hora 30 minutos universal_currency_alt 1 crédito show_chart Introdutório
info Este laboratório pode incorporar ferramentas de IA para ajudar no seu aprendizado.
Acesse mais de 700 laboratórios e cursos

Visão geral

Neste laboratório, você vai usar o Gemini Code Assist, um colaborador de desenvolvimento de apps com tecnologia de IA para o Google Cloud, para explicar, testar, documentar e melhorar um app.

Você vai usar o Cloud Workstations para criar um ambiente de desenvolvimento que usa o Code OSS como um ambiente de desenvolvimento integrado (IDE, na sigla em inglês).

O laboratório é voltado para desenvolvedores com qualquer nível de experiência que criam apps. Não é necessário ter experiência no desenvolvimento de apps na nuvem.

Observação: como uma tecnologia em estágio inicial, o Gemini pode gerar uma saída plausível, mas que é factualmente incorreta. Recomendamos que você valide todas as saídas antes de usá-las. Para mais informações, consulte Gemini para o Google Cloud e IA responsável.

Objetivos

Neste laboratório, você vai aprender a fazer o seguinte:

  • Criar um ambiente de desenvolvimento de apps baseado na nuvem usando o Cloud Workstations.
  • Usar o Gemini Code Assist para explicar o código.
  • Gerar testes de unidade com o Gemini Code Assist.
  • Usar comandos do Gemini para melhorar a aparência de um app.
  • Usar o Gemini Code Assist para tornar o código mais legível.
  • Usar o Gemini Code Assist para adicionar comentários ao código, em inglês ou em outro idioma.

Configuração

Para cada laboratório, você recebe um novo projeto do Google Cloud e um conjunto de recursos por um determinado período e sem custos financeiros.

  1. Faça login no Qwiklabs em uma janela anônima.

  2. Confira o tempo de acesso do laboratório (por exemplo, 1:15:00) e finalize todas as atividades nesse prazo.
    Não é possível pausar o laboratório. Você pode reiniciar o desafio, mas vai precisar refazer todas as etapas.

  3. Quando tudo estiver pronto, clique em Começar o laboratório.

  4. Anote as credenciais (Nome de usuário e Senha). É com elas que você vai fazer login no Console do Google Cloud.

  5. Clique em Abrir Console do Google.

  6. Clique em Usar outra conta, depois copie e cole as credenciais deste laboratório nos locais indicados.
    Se você usar outras credenciais, vai receber mensagens de erro ou cobranças.

  7. Aceite os termos e pule a página de recursos de recuperação.

Ativar o Cloud Shell

O Cloud Shell é uma máquina virtual que contém ferramentas para desenvolvedores. Ele tem um diretório principal permanente de 5 GB e é executado no Google Cloud. O Cloud Shell oferece aos seus recursos do Google Cloud acesso às linhas de comando. A gcloud é a ferramenta ideal para esse tipo de operação no Google Cloud. Ela vem pré-instalada no Cloud Shell e aceita preenchimento com tabulação.

  1. No painel de navegação do Console do Google Cloud, clique em Ativar o Cloud Shell (Ícone do Cloud Shell).

  2. Clique em Continuar.
    O provisionamento e a conexão do ambiente podem demorar um pouco. Quando esses processos forem concluídos, você já vai ter uma autenticação, e o projeto estará definido com seu PROJECT_ID. Por exemplo:

Terminal do Cloud Shell

Exemplo de comandos

  • Liste o nome da conta ativa:

gcloud auth list

(Saída)

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

(Exemplo de saída)

Credentialed accounts: - google1623327_student@qwiklabs.net
  • Liste o ID do projeto:

gcloud config list project

(Saída)

[core] project = <project_ID>

(Exemplo de saída)

[core] project = qwiklabs-gcp-44776a13dea667a6

Tarefa 1: configurar o ambiente e a conta

Nesta tarefa, você vai ativar a API Cloud AI Companion do Gemini e conceder os papéis necessários a uma conta de usuário.

Configurar APIs e papéis

  1. Faça login no console do Google Cloud com as credenciais do laboratório e abra um terminal do Cloud Shell. Para isso, pressione a tecla G seguida da tecla S no teclado.

  2. Para definir as variáveis de ambiente com o ID do projeto, o usuário e a região, execute os seguintes comandos no Cloud Shell:

    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. Para ativar a API Cloud AI Companion do Gemini e conceder os papéis necessários à sua conta de usuário, execute os seguintes comandos:

    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

Para verificar o objetivo, clique em Verificar meu progresso. Ativar as APIs necessárias e configurar os papéis do IAM

Tarefa 2: criar uma estação de trabalho do Cloud

Este laboratório conta com a ajuda do Gemini para desenvolver um aplicativo com o plug-in Cloud Code para o ambiente de desenvolvimento integrado do Cloud Workstations. O Cloud Workstations é um ambiente de desenvolvimento integrado totalmente gerenciado que inclui integração nativa com o Gemini.

Nesta tarefa, você vai configurar e provisionar o ambiente da estação de trabalho do Cloud e ativar o plug-in do Cloud Code para o Gemini.

Visualizar o cluster da estação de trabalho

Um cluster de estações de trabalho chamado my-cluster foi gerado para este laboratório. O cluster é usado para configurar e criar uma estação de trabalho.

  1. Para abrir a página "Estações de trabalho", na barra de título do console do Google Cloud, digite Cloud Workstations no campo Pesquisar e clique em Cloud Workstations.

  2. Se o Cloud Workstations não estiver fixado (botão &quot;Fixar&quot; para produto fixado), no menu de navegação (Menu de navegação), clique em Fixar (botão &quot;Fixar&quot; para produto não fixado).

  3. No painel de navegação, clique em Gerenciamento de clusters.

  4. Verifique o status do cluster. Se o status do cluster for Reconciling ou Updating, atualize periodicamente e aguarde até que ele mude para Ready antes de seguir para a próxima etapa.

Criar uma configuração e uma estação de trabalho

  1. Para criar a configuração e a estação de trabalho, execute os seguintes comandos no Cloud Shell:

    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}

    Aguarde a conclusão dos comandos.

  2. No painel de navegação, clique em Estações de trabalho.

    Depois que a estação de trabalho é criada, ela aparece em Minhas estações de trabalho com o status Stopped.

  3. Para iniciar a estação de trabalho, clique em Iniciar.

    Durante a inicialização, o status muda para Starting. Aguarde até que o status mude para Running, o que indica que a estação está pronta para ser usada.

Iniciar o ambiente de desenvolvimento integrado

Para que ele funcione corretamente, é preciso ativar cookies de terceiros em algumas extensões no navegador.

  1. Para fazer isso no Chrome, no menu do Chrome, clique em Configurações.

  2. Na barra de pesquisa, digite Cookies de terceiros.

  3. Clique na configuração Cookies de terceiros e selecione Permitir cookies de terceiros.

    Observação: se quiser restaurar as configurações do navegador depois do laboratório, anote as configurações originais para cookies de terceiros.
  4. Para iniciar o ambiente de desenvolvimento integrado do Code OSS na estação de trabalho, clique em Iniciar na página Estações de trabalho no console do Google Cloud.

    O ambiente será aberto em outra guia do navegador.

    Ambiente de desenvolvimento integrado do OSS com atividade destacada e barras de status

Para verificar o objetivo, clique em Verificar meu progresso. Criar e iniciar uma estação de trabalho do Cloud

Tarefa 3: atualizar a extensão do Cloud Code para ativar o Gemini

Nesta tarefa, você vai ativar o Gemini no Cloud Code para o ambiente de desenvolvimento integrado da sua estação de trabalho.

Conectar-se ao Google Cloud

Para se conectar ao Google Cloud na estação de trabalho, siga estas etapas:

  1. Para iniciar o fluxo Cloud Code - Fazer login, clique em Cloud Code - Fazer login na barra de status na parte de baixo da janela e abra o link exibido no terminal no navegador.

  2. Para confirmar a abertura do site externo, caso necessário, clique em Abrir.

  3. Escolha uma conta para continuar no Gemini Code Assist e clique em Fazer login.

    Seu código de verificação aparece na guia do navegador.

    Observação: talvez apareça um aviso informando que você executou um comando gcloud auth login. Esse processo é normal. O ambiente de desenvolvimento integrado executou o comando para você.
  4. Clique em Copiar.

  5. De volta ao ambiente, no terminal, cole o código onde está escrito Inserir o código de autorização.

  6. Se for necessário aprovar a cópia da área de transferência, clique em Permitir.

  7. Pressione Enter e espere até que a barra de status indique Cloud Code - Sem projeto.

    Você se conectou ao Google Cloud.

Ativar o Gemini no Cloud Code

Para ativar o Gemini no Cloud Code para o ambiente de desenvolvimento integrado da sua estação de trabalho, siga estas etapas:

  1. No ambiente de desenvolvimento integrado da estação de trabalho, clique no menu (Menu principal do Code OSS) e navegue até Arquivo > Preferências > Configurações.

  2. Em Configurações de pesquisa, digite Gemini.

  3. Na guia Usuário da caixa de diálogo "Configurações", selecione Extensões > Gemini Code Assist.

  4. Na página de configurações do Cloud Code, em Geminicodeassist: Projeto, digite o ID do projeto do Google Cloud.

    Ativar o Gemini

  5. Para selecionar o projeto do Cloud Code, clique em Cloud Code - Sem projeto na barra de status na parte de baixo da janela. Depois escolha a opção Selecionar um projeto do Google Cloud e selecione .

    Selecionar o projeto para o Cloud Code

    O ID do projeto aparece na barra de status. O Gemini já está pronto para uso.

Tarefa 4: baixar, analisar e executar um app Python Flask

O código de um app Python Flask já está salvo em um bucket do Cloud Storage.

Nesta tarefa, você vai baixar, examinar e executar um app Python Flask no ambiente de desenvolvimento integrado. O Gemini Code Assist explica o código.

Fazer login no terminal

  1. No menu do ambiente de desenvolvimento integrado (Menu principal do Code OSS), selecione Terminal > Novo Terminal.

  2. No terminal, execute o seguinte comando:

    gcloud auth login

    Abra o link exibido no terminal no navegador.

  3. Escolha uma conta para continuar em Fazer login no SDK Google Cloud e clique em Continuar.

  4. Clique em Permitir na janela que mostra O SDK Google Cloud quer acessar sua Conta do Google.

    Seu código de verificação aparece na guia do navegador.

    Observação: talvez apareça um aviso informando que você executou um comando gcloud auth login. Esse processo é normal. O ambiente de desenvolvimento integrado executou o comando para você.
  5. Clique em Copiar.

  6. Volte ao ambiente de desenvolvimento integrado e cole o código no terminal, onde está escrito Digite o código de verificação fornecido no seu navegador e pressione Enter.

    A sessão de terminal agora está conectada ao Google Cloud.

Instalar o ambiente virtual do Python

  1. Para instalar o Python localmente em um ambiente virtual, execute os seguintes comandos:

    sudo apt update sudo apt -y upgrade sudo apt install -y python3-venv python3 -m venv ~/env source ~/env/bin/activate
  2. Para verificar o local do Python que será usado, execute os seguintes comandos:

    which python3

Copiar o código

  1. Para copiar o código do app, execute o seguinte comando no terminal:

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

    O código foi copiado para um subdiretório chamado codeassist-demo.

  2. Na barra de atividades do ambiente de desenvolvimento integrado, clique em Explorer (Menu Explorer do Code OSS) e depois em Abrir pasta.

  3. Na caixa de diálogo Abrir pasta, clique em codeassist-demo e depois em OK.

    A estrutura de diretórios é exibida.

Analisar o código

  1. Selecione main.py.

    O arquivo Python será aberto em uma janela do editor.

  2. Na barra de atividades do ambiente de desenvolvimento integrado, clique em Gemini Code Assist (Menu do Gemini Code Assist no Code OSS).

    O Gemini Code Assist é um colaborador com tecnologia de IA que ajuda no desenvolvimento de apps.

  3. Na conversa do Gemini Code Assist, digite o comando abaixo e clique em Enviar (Envio do Gemini):

    Explain this

    Os comandos são perguntas ou declarações que você usa para descrever o que precisa. Eles podem incluir o contexto de um código já criado, que o Google Cloud analisa para dar respostas mais úteis ou completas. Saiba como escrever comandos para gerar boas respostas em Escrever melhores comandos do Gemini para Google Cloud.

    O Gemini vai analisar o código em main.py. A resposta pode explicar estas seções:

    • Dependências
    • Configuração do aplicativo
    • Rotas
    • Execução do aplicativo

    Quando você seleciona o código, o mesmo comando faz com que o Gemini Code Assist explique apenas o código selecionado.

    Observação: o estado do histórico de conversas é mantido apenas na memória e não continua quando você muda para outro espaço de trabalho ou quando fecha o ambiente de desenvolvimento integrado. O Gemini não usa seus comandos nem as respostas deles como dados para treinar o modelo. Para saber mais, consulte Como o Gemini para o Google Cloud usa seus dados.
  4. No editor, selecione app.route e a definição de função da rota POST /convert. Depois clique na lâmpada (Lâmpada do Gemini no Code OSS) e em Gemini: Explique.

    Código do arquivo

    O Gemini vai explicar o código selecionado em detalhes.

Executar o app

  1. Se o terminal fechou, no menu do ambiente de desenvolvimento integrado (Menu principal do Code OSS), selecione Terminal > Novo terminal.

  2. No terminal, execute os seguintes comandos:

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

    O comando retorna um erro informando que não há nenhum módulo chamado flask. Use o Gemini Code Assist para entender o problema.

  3. No painel de conversa do Gemini Code Assist, digite o seguinte comando:

    How do you install Python requirements?

    É provável que o Gemini Code Assist indique o uso do instalador de pacotes pip e de um arquivo requirements.txt para instalar os requisitos do Python.

  4. Na barra de atividades do ambiente de desenvolvimento integrado, clique em Explorer (Menu Explorer do Code OSS) e depois em requirements.txt.

    O Flask e a versão necessária são indicados no arquivo requirements.txt.

  5. No terminal, execute o seguinte comando:

    pip install -r requirements.txt

    O Flask agora está instalado.

  6. No terminal, execute o seguinte comando:

    python3 main.py

    Uma caixa de diálogo indica que o serviço com detecção na porta 8080 já está disponível para visualização na Web.

  7. Clique em Abrir visualização e em Abrir.

    O web app Roman Numerals será aberto em uma nova guia.

  8. Na caixa de números, insira 123 e clique em Convert.

    O número retornado é CXXIII. C é 100, X é 10 e I é 1. Parece correto.

  9. Clique em Return to home page, digite 45 e clique em Convert.

    O número retornado é XXXXV. Tecnicamente, o resultado está correto do ponto de vista matemático (4 vezes 10, mais 5), mas a representação normal de 40 é XL (10 a menos que 50) e, portanto, a representação mais tradicional em números romanos é XLV.

    Saiba mais sobre isso mais adiante.

  10. Na barra de atividades do ambiente de desenvolvimento integrado, clique em Explorer (Menu Explorer do Code OSS) e depois em calendar.py.

    A função number_to_roman converte um número em algarismo romano.

Para verificar o objetivo, clique em Verificar meu progresso. Copiar código e executar um app Python Flask

Tarefa 5: adicionar testes de unidade

Nesta tarefa, você vai usar o Gemini Code Assist para gerar testes de unidade para o código.

  1. Na barra de atividades do ambiente de desenvolvimento integrado, clique em Gemini Code Assist (Menu do Gemini Code Assist no Code OSS) e digite o seguinte comando:

    Create unit tests for a fixed version of number_to_roman

    O Gemini Code Assist reconhece o código na guia aberta de calendar.py. Ele deve dar um exemplo de código semelhante a este:

    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() Observação: talvez o Gemini crie testes de unidade que levem à aprovação do código atual, em vez do código que segue o padrão dos numerais romanos. Para este laboratório, você vai usar uma versão correta dos testes de unidade.
  2. Para interromper o app em execução, pressione CTRL + C no terminal.

  3. Para criar testes de unidade para a função de conversão, execute os seguintes comandos no terminal:

    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. Para executar os testes, execute os seguintes comandos no terminal:

    cd ~/codeassist-demo python3 test_calendar.py

    Os testes vão falhar:

    ====================================================================== 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)

    As falhas foram:

    • abc não foi processado corretamente.
    • O resultado de 4 foi IIII em vez de IV.
    • O resultado de 3.999 foi MMMDCCCCLXXXXVIIII em vez de MMMCMXCIX.

    Em cada função de teste, o primeiro erro encontrado faz com que a função termine.

    Observação: se o código de teste for diferente, os resultados também serão.

Para verificar o objetivo, clique em Verificar meu progresso. Criar testes de unidade para a função de conversão

Tarefa 6: corrigir o código e torná-lo mais legível

Nesta tarefa, você vai usar o Gemini Code Assist para corrigir o código e torná-lo mais legível.

  1. Na barra de atividades do ambiente de desenvolvimento integrado, clique em Explorer (Menu Explorer do Code OSS) e depois em calendar.py.

  2. Na barra de atividades do ambiente de desenvolvimento integrado, clique em Gemini Code Assist (Menu do Gemini Code Assist no Code OSS) e digite o seguinte comando:

    Make my code more readable and fix any errors

    O Gemini Code Assist vai gerar um código mais legível e provavelmente corrigir o problema. Por exemplo:

    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

    O Gemini Code Assist também explica as mudanças feitas:

    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.

    Neste exemplo, o Gemini Code Assist deu um algoritmo que tornou o código mais legível e também corrigiu problemas no código original.

  3. Para comparar o código em um novo arquivo, no painel de código do Gemini Code Assist, clique em Comparar com o arquivo aberto (Gemini Code Assist: comparar com o arquivo aberto).

  4. Para aceitar as mudanças, clique em Aceitar. O código atualizado foi aceito.

  5. No terminal, execute os seguintes comandos:

    cd ~/codeassist-demo python3 test_calendar.py

    Se o código não passar nos testes, execute-os algumas vezes para garantir que eles não estejam usando uma versão em cache do módulo de calendário.

    Se o Gemini não corrigiu o problema com os números romanos, o código não vai passar em alguns testes. Se isso acontecer, corrija o código até ele passar no teste ou substitua calendar.py por uma versão que funcione.

  6. Se o código não passar em alguns testes, execute os seguintes comandos para corrigir o código e executar os testes de unidade de novo:

    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

    Agora o código vai passar nos testes.

Para verificar o objetivo, clique em Verificar meu progresso. Atualizar calendar.py para corrigir os problemas

Tarefa 7: melhorar a legibilidade do código para falantes de inglês não nativos

Se você não é falante nativo de inglês e usa apps de tradução, use o Gemini Code Assist para gerar comentários em outros idiomas.

Nesta tarefa, você vai usar o Gemini Code Assist para adicionar comentários ao código, inclusive em outro idioma.

  1. Na barra de atividades do ambiente de desenvolvimento integrado, clique em Explorer (Menu Explorer do Code OSS) e depois em main.py.

  2. Na barra de atividades do ambiente de desenvolvimento integrado, clique em Gemini Code Assist (Menu do Gemini Code Assist no Code OSS) e digite o seguinte comando:

    Add comments to main.py

    O Gemini Code Assist vai adicionar comentários explicando o código:

    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)))

    Mas e se o inglês não for seu idioma nativo?

  3. No painel do Gemini Code Assist, digite o comando abaixo:

    Add Spanish comments to main.py

    O Gemini Code Assist pode fazer comentários em diferentes idiomas para ajudar na legibilidade do código.

  4. Para verificar se apenas comentários foram adicionados, no painel de código do Gemini Code Assist, clique em Comparar com o arquivo aberto (Gemini Code Assist: comparar com o arquivo aberto).

    As edições são comparadas ao código atual:

    Diferença com os comentários em espanhol

  5. Para rejeitar as mudanças, clique em Recusar.

Tarefa 8: melhorar a aparência do app

O Gemini Code Assist também pode deixar seu app mais bonito.

Nesta tarefa, você vai usar o Gemini Code Assist para melhorar o design visual do app.

  1. No terminal, execute o seguinte comando:

    cd ~/codeassist-demo python3 main.py

    Uma caixa de diálogo indica que o serviço com detecção na porta 8080 já está disponível para visualização na Web.

  2. Clique em Abrir visualização e em Abrir.

    O web app Roman Numerals será aberto em uma nova guia.

    Interface simples

  3. Na barra de atividades do ambiente de desenvolvimento integrado, clique em Explorer (Menu Explorer do Code OSS) e selecione templates/index.html.

    O modelo HTML desse app é muito simples.

  4. Na barra de atividades do ambiente de desenvolvimento integrado, clique em Gemini Code Assist (Menu do Gemini Code Assist no Code OSS) e digite o seguinte comando:

    Make this HTML template look better

    O Gemini Code Assist vai editar o código para melhorar a aparência da página inicial do app.

  5. Para aceitar as mudanças, no painel de código do Gemini Code Assist, clique em Comparar com o arquivo aberto (Gemini Code Assist: comparar com o arquivo aberto) e depois em Aceitar.

  6. Volte à guia do navegador do app Roman Numerals e clique em Atualizar.

    O app vai ficar mais bonito. Neste exemplo, a caixa de diálogo está centralizada na página, e há mais cores.

    Interface aprimorada

    Observação: talvez o Gemini Code Assist faça mudanças diferentes para você.
  7. Na barra de atividades do ambiente de desenvolvimento integrado, clique em Explorer (Menu Explorer do Code OSS) e depois em templates/convert.html.

  8. Na barra de atividades do ambiente de desenvolvimento integrado, clique em Gemini Code Assist (Menu do Gemini Code Assist no Code OSS) e digite o seguinte comando:

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

    O Gemini Code Assist vai modificar o modelo de resultados para corresponder ao modelo de índice.

  9. Para aceitar as mudanças, no painel de código do Gemini Code Assist, clique em Comparar com o arquivo aberto (Gemini Code Assist: comparar com o arquivo aberto) e depois em Aceitar.

  10. Volte para a guia do navegador do app Roman Numerals, digite 45 e clique em Enter.

    A nova página de resultados precisa ter o mesmo estilo da página de índice:

    Página de resultados aprimorada

Para verificar o objetivo, clique em Verificar meu progresso. Usar o Gemini Code Assist para melhorar o design visual do app

Finalize o laboratório

Após terminar seu laboratório, clique em End Lab. O Qwiklabs removerá os recursos usados e limpará a conta para você.

Você poderá avaliar sua experiência neste laboratório. Basta selecionar o número de estrelas, digitar um comentário e clicar em Submit.

O número de estrelas indica o seguinte:

  • 1 estrela = muito insatisfeito
  • 2 estrelas = insatisfeito
  • 3 estrelas = neutro
  • 4 estrelas = satisfeito
  • 5 estrelas = muito satisfeito

Feche a caixa de diálogo se não quiser enviar feedback.

Para enviar seu feedback, fazer sugestões ou correções, use a guia Support.

Parabéns!

Neste laboratório, você aprendeu a:

  • Criar um ambiente de desenvolvimento de apps baseado na nuvem usando o Cloud Workstations.
  • Usar o Gemini Code Assist para explicar o código.
  • Gerar testes de unidade com o Gemini Code Assist.
  • Usar comandos do Gemini para melhorar a aparência de um app.
  • Usar o Gemini Code Assist para tornar o código mais legível.
  • Usar o Gemini Code Assist para adicionar comentários ao código, em inglês ou em outro idioma.

Próximas etapas / Saiba mais

Copyright 2024 Google LLC. Todos os direitos reservados. Google e o logotipo do Google são marcas registradas da Google LLC. Todos os outros nomes de empresas e produtos podem ser marcas registradas das empresas a que estão associados.

Antes de começar

  1. Os laboratórios criam um projeto e recursos do Google Cloud por um período fixo
  2. Os laboratórios têm um limite de tempo e não têm o recurso de pausa. Se você encerrar o laboratório, vai precisar recomeçar do início.
  3. No canto superior esquerdo da tela, clique em Começar o laboratório

Usar a navegação anônima

  1. Copie o nome de usuário e a senha fornecidos para o laboratório
  2. Clique em Abrir console no modo anônimo

Fazer login no console

  1. Faça login usando suas credenciais do laboratório. Usar outras credenciais pode causar erros ou gerar cobranças.
  2. Aceite os termos e pule a página de recursos de recuperação
  3. Não clique em Terminar o laboratório a menos que você tenha concluído ou queira recomeçar, porque isso vai apagar seu trabalho e remover o projeto

Este conteúdo não está disponível no momento

Você vai receber uma notificação por e-mail quando ele estiver disponível

Ótimo!

Vamos entrar em contato por e-mail se ele ficar disponível

Um laboratório por vez

Confirme para encerrar todos os laboratórios atuais e iniciar este

Use a navegação anônima para executar o laboratório

Para executar este laboratório, use o modo de navegação anônima ou uma janela anônima do navegador. Isso evita conflitos entre sua conta pessoal e a conta de estudante, o que poderia causar cobranças extras na sua conta pessoal.