Aprendizagem pessoal com IA
e orientação prática

Os engenheiros do Google explicam como usar a IA para melhorar o desenvolvimento de software

Engenheiros do Google explicam como usar a IA para melhorar o desenvolvimento de software-1

Em 2024, a escrita de código de IA permeou todas as esferas da vida, afetando profundamente todo o ciclo de vida do software. Portanto, a questão é: as ferramentas de código de IA usadas pelas pessoas são boas, mas por que geralmente usamos o software e não sentimos muito progresso? Será que é porque estamos usando a IA da maneira errada?


Recentemente, Addy Osmani, chefe de engenharia do Google e autor de best-sellers da Amazon, nos revelou como é a codificação assistida por IA no desenvolvimento da linha de frente, compartilhando os desafios e as oportunidades que as ferramentas de IA apresentam no desenvolvimento do mundo real.

 

Como os engenheiros usam a IA?

Em geral, há dois modelos diferentes para as equipes desenvolverem com IA: "bootstrappers" e "iterators". Ambos os modelos estão ajudando engenheiros (e até mesmo usuários com pouca formação técnica) a encurtar a distância entre a ideia e o código real.

Bootstrappers

Essa categoria inclui ferramentas de IA, como Bolt, v0 e screenshot-to-code, que se caracterizam por:

  • Comece com um desenho de projeto ou um conceito aproximado;
  • Use a IA para gerar uma base de código inicial completa;
  • Capacidade de obter um protótipo funcional em poucas horas ou dias;
  • Focado em validar rapidamente a viabilidade das ideias

Esse é um fluxo de trabalho impressionante. Por exemplo, um desenvolvedor independente pode usar o Bolt para transformar um design Figma em um aplicativo da Web funcional em pouco tempo. Não chega a ser um nível de produção, mas é bom o suficiente para obter o feedback inicial do usuário.

Iteradores

Essa categoria é a principal responsável pelo fluxo de trabalho de desenvolvimento diário, incluindo Cursor, Cline, Copilot e WindSurf Ferramentas como essas não são tão "chamativas" quanto as anteriores, mas são mais práticas, por exemplo:

  • Automatize o preenchimento de código e forneça sugestões de código;
  • Executar tarefas complexas de refatoração de código;
  • Gerar código de teste e documentação;
  • "Parceiros de programação de geminação" como uma solução para problemas de programação

Embora ambos os métodos possam acelerar consideravelmente o desenvolvimento, como diz o ditado, "não existe almoço grátis".

Os custos ocultos da "velocidade da IA"

Usado por engenheiros sênior Cursor talvez Copiloto Ferramentas de IA como essa podem criar a estrutura básica para um recurso inteiro em minutos, com os testes e a documentação apropriados - é como mágica.

Mas uma análise mais detalhada revela que, além de fazer referência às recomendações de IA, os engenheiros sênior fazem o seguinte:

  • Refatoração do código gerado pela IA em módulos menores;
  • Adicione o manuseio de várias situações extremas;
  • Otimização da definição de tipos e do design da interface;
  • Adicionar um mecanismo abrangente de tratamento de erros;
  • Ou até mesmo questionar as soluções arquitetônicas fornecidas pela IA.

Em outras palavras, eles estão aplicando anos de experiência acumulada em engenharia para moldar e limitar o resultado da IA, que é responsável por acelerar a implementação do código, mas a experiência humana garante que o código seja sustentável - não é possível ter um sem o outro.

Engenheiros do Google explicam como usar a IA para melhorar o desenvolvimento de software-1

No entanto, os engenheiros juniores tendem a ignorar essas etapas essenciais. É mais provável que eles aceitem o resultado da IA em sua totalidade, o que leva ao que é conhecido como "código castelo de cartas", algo que parece completo na superfície, mas que pode se desfazer facilmente sob estresse no mundo real.

paradoxo intelectual

Portanto, de fato, a IA é melhor para ajudar desenvolvedores experientes do que iniciantes, o que é um tanto contraintuitivo.

Os engenheiros sênior usam a IA para criar rapidamente protótipos de ideias (para entender os requisitos), gerar implementações básicas (para facilitar melhorias subsequentes), explorar soluções alternativas para problemas conhecidos e muito mais;

Em vez disso, os iniciantes geralmente adotam diretamente soluções incorretas ou desatualizadas fornecidas pela IA, ignoram problemas críticos de segurança e desempenho, não sabem como depurar o código gerado pela IA e acabam criando um sistema frágil que não compreendem totalmente.

70% Pergunta

Os não engenheiros que escrevem código usando IA geralmente se deparam com um dilema frustrante: eles podem fazer 70% de trabalho surpreendentemente rápido, mas o 30% final é excepcionalmente doloroso.

O "Problema 70%" revela o estado atual do desenvolvimento assistido por IA, que começa como se fosse uma dádiva divina, mas depois é "esfregado na cara" pela realidade.

A realidade geralmente é essa:

  • Tentando corrigir um pequeno erro -->
  • A IA propõe uma mudança aparentemente razoável -->
  • Essa alteração interrompe o restante do código -->
  • Peça à IA para corrigir problemas emergentes -->
  • Dois novos bugs foram criados -->
  • loop infinito

Esse ciclo é especialmente doloroso para quem não é engenheiro e não tem o conhecimento necessário para entender o que realmente deu errado.

Os desenvolvedores experientes que encontram bugs podem inferir possíveis causas e soluções com base em anos de experiência e reconhecimento de padrões. Sem esse conhecimento de base, você está basicamente "trabalhando" com um código que não entende completamente, e os problemas são infinitos.

Engenheiros do Google explicam como usar a IA para melhorar o desenvolvimento de software-1

paradoxo do aprendizado

Há também um problema mais profundo: dar a não engenheiros acesso a ferramentas de escrita de código de IA pode, na verdade, prejudicar seu aprendizado.

O código é gerado e executado, mas os "desenvolvedores" não entendem os princípios subjacentes. Nesse ponto, eles perdem a oportunidade de aprender padrões básicos de programação, desenvolver habilidades de depuração e raciocinar sobre decisões arquitetônicas que precisarão ser mantidas e ampliadas no futuro.

Como resultado, os "desenvolvedores" estão constantemente recorrendo à IA para resolver problemas sem desenvolver a experiência necessária para lidar com eles por conta própria.

A melhor maneira de os não engenheiros usarem as ferramentas de codificação de IA é provavelmente o "modo misto":

  1. Prototipagem rápida com IA
  2. Dedique algum tempo para entender como o código gerado funciona
  3. Aprender conceitos básicos de programação e como usar a IA
  4. Crie sua base de conhecimento passo a passo
  5. Usar a IA como uma ferramenta de aprendizado, não apenas como um gerador de código

Mas isso requer paciência e comprometimento, o oposto do que muitas pessoas fazem quando usam ferramentas de IA - elas só querem uma solução rápida.

O "problema do 70%" mostra que a IA atual não é a "IA perfeita" que muitas pessoas esperam. No final das contas, o trabalho do 30% (tornar o software utilizável em um ambiente de produção, passível de manutenção etc.) ainda requer conhecimento real de engenharia que não pode ser completamente substituído pela IA.

melhores práticas

Addy Osmani, depois de observar dezenas de equipes, criou algumas abordagens de práticas recomendadas:

  • "Modelo de "primeiro rascunho de IA
    Permita que a IA gere a implementação básica do código, revise manualmente e execute a refatoração modular, adicione um tratamento abrangente de erros, escreva casos de teste abrangentes e documente as principais decisões.
  • "Modelo de "diálogo contínuo
    Inicie um novo diálogo de IA para cada tarefa diferente; mantenha o contexto focado e conciso; revise e confirme as alterações com frequência; e mantenha um ciclo de feedback rígido.
  • "Modelo "Confie, mas verifique
    Use a IA para gerar o código inicial; revise manualmente todos os caminhos críticos; automatize testes para vários casos de limite; e realize auditorias de segurança regulares.

O verdadeiro futuro da IA?

Apesar desses desafios, os autores estão otimistas quanto ao papel da IA no desenvolvimento de software. O segredo é aproveitar ao máximo os benefícios reais da IA:

  • Aceleração conhecida
    A IA é excelente em nos ajudar a perceber padrões que já conhecemos, como um parceiro de programação gêmeo com paciência infinita e velocidade de digitação rápida.
  • Explore as possibilidades
    A IA é excelente para prototipar ideias rapidamente e explorar diferentes abordagens, como uma caixa de areia na qual podemos testar conceitos rapidamente.
  • rotina de automação
    A IA reduz drasticamente o tempo que gastamos em códigos de amostra e tarefas cotidianas de programação, permitindo que nos concentremos em problemas mais interessantes.

Se estiver apenas começando a experimentar o desenvolvimento assistido por IA, o conselho dos autores é começar aos poucos: use a IA para tarefas bem definidas e desacopladas, examine cada linha de código gerada e, em seguida, crie gradualmente recursos maiores.

Mantenha a modularidade no processo de desenvolvimento: divida tudo em documentos pequenos e bem focados, mantenha interfaces claras entre os componentes e documente os limites dos módulos.

O ponto importante é confiar em sua própria experiência: a IA é usada para acelerar o desenvolvimento, mas não pode substituir seu julgamento; tenha a coragem de questionar quando algo não parecer certo; e sempre mantenha seus padrões de engenharia.

Emergência de agentes

O cenário do desenvolvimento assistido por IA está mudando drasticamente à medida que avançamos para 2025. Embora as ferramentas atuais tenham mudado a forma como fazemos protótipos e iterações, estamos no início de uma transformação ainda mais importante: o surgimento da engenharia de software com agentes de IA (agentes). Os agentes de IA não só poderão responder a comandos, como também poderão planejar e executar soluções com um grau cada vez maior de autonomia.

Antrópica, por exemplo. Claude Ter acesso direto a um computador, ou Cline Você pode iniciar o navegador e executar testes automaticamente.

Durante a depuração, o agente de IA não apenas sugere correções de bugs, mas também: identifica proativamente possíveis problemas, inicia e executa conjuntos de testes, examina elementos da interface do usuário e captura capturas de tela, sugere e implementa correções e verifica se as soluções funcionam.

A próxima geração de ferramentas será capaz de integrar perfeitamente a compreensão visual (capturas de tela da interface do usuário, modelos, diagramas), o diálogo verbal e as interações ambientais (navegadores, terminais, APIs).

A IA do futuro não se trata de substituir os desenvolvedores, mas de se tornar um parceiro colaborativo cada vez mais poderoso, capaz de assumir tarefas de forma proativa e, ao mesmo tempo, respeitar a orientação e a experiência humanas.

Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " Os engenheiros do Google explicam como usar a IA para melhorar o desenvolvimento de software

Chefe do Círculo de Compartilhamento de IA

O Chief AI Sharing Circle se concentra no aprendizado de IA, fornecendo conteúdo abrangente de aprendizado de IA, ferramentas de IA e orientação prática. Nosso objetivo é ajudar os usuários a dominar a tecnologia de IA e explorar juntos o potencial ilimitado da IA por meio de conteúdo de alta qualidade e compartilhamento de experiências práticas. Seja você um iniciante em IA ou um especialista sênior, este é o lugar ideal para adquirir conhecimento, aprimorar suas habilidades e realizar inovações.

Entre em contato conosco
pt_BRPortuguês do Brasil