Unidade 1 / 12

Inteligência Artificial para Equipes de Software: Modelo de Trabalho e Limites

Ganhos:

  • Capacidade de explicar como um assistente de codificação funciona como modelo de linguagem e os conceitos de token, janela de contexto, alucinação
  • Capacidade de distinguir tarefas de software onde a IA é forte e fraca com um mapa mental
  • Capacidade de aplicar o ciclo de trabalho básico de propor-produzir-verificar às suas próprias tarefas

O dia de um desenvolvedor de software raramente é gasto “escrevendo código do zero”. Tempo real; Ler o código escrito por outra pessoa, tentar reproduzir um bug, varrer o log (linhas de log produzidas pela aplicação durante a execução), escrever testes, escrever um PR (pull request - uma solicitação de mesclagem onde uma alteração de código é enviada para revisão da equipe) explicação e atualização da documentação. A inteligência artificial (IA) é um multiplicador de velocidade que pode afetar quase todos esses empregos invisíveis. Mas a primeira condição para utilizá-lo com segurança é entender corretamente o que é e o que não é.

Nesta unidade, primeiro explicamos a tecnologia subjacente de um assistente de codificação em linguagem simples; depois criamos um mapa mental dos pontos fortes e fracos do modelo; Por fim, estabelecemos a disciplina básica de trabalho que utilizaremos ao longo de todo o módulo: propor, produzir, verificar. Estas três etapas são a espinha dorsal das próximas onze unidades.

Nota: Este módulo é um treinamento geral. Em software de segurança crítica (processamento de pagamentos, assistência médica, autenticação, infraestrutura crítica), os resultados de IA não substituem a revisão e aprovação por um engenheiro qualificado. IA é uma assistente; O signatário é o engenheiro.

O que um assistente de codificação realmente faz?

A maioria dos assistentes de codificação são construídos em um grande modelo de linguagem (LLM – uma IA treinada em grandes quantidades de texto e código que prevê o próximo “pedaço” mais provável). O modelo não “entende” o código como um ser humano; Ele gera a continuação mais provável do contexto que você fornece, com base nos padrões que aprende a partir de um enorme conjunto de exemplos. Esse mecanismo aparentemente simples produz resultados surpreendentemente eficientes na prática — porque a maioria dos softwares consiste em padrões repetidos: uma solicitação HTTP, um loop, uma verificação de nulos, um padrão de teste.

Três termos são críticos aqui. Token é a menor unidade que o modelo processa dividindo o texto; São aproximadamente algumas letras ou parte de uma palavra. A janela de contexto é a quantidade de tokens que o modelo pode “ver” de uma vez; Seu código, mensagem de erro e instrução devem caber nesta janela. Um prompt são todas as instruções e contexto que você fornece ao modelo. A qualidade do resultado obtido depende diretamente destes dois: quanto melhor contexto e instruções mais claras você fornecer ao modelo, melhor resultado obterá. Entradas ruins produzem resultados ruins, mesmo que seja um modelo inteligente – a clássica regra de software “entra lixo, sai lixo” também se aplica à IA.

Mapa de Pontos Fortes e Fracos

Para direcionar a IA para os empregos certos, é necessário saber onde ela brilha e onde tropeça. Memorizar este mapa fará com que você se pergunte a cada próxima missão: “Devo terceirizar este trabalho para a IA ou fazê-lo sozinho?” Ele permite que você responda à pergunta em segundos.

Seus pontos fortes são: gerar código padrão, traduzir de uma linguagem para outra, escrever uma expressão regular (regex), descrever uma função, criar um esqueleto de teste, interpretar uma mensagem de erro, redigir documentação, sugerir nomes de variáveis/funções e pequenas refatorações (melhorar a estrutura do código sem alterar seu comportamento).

Fraquezas: Conhecer as regras de negócios específicas da sua empresa, lembrar toda a sua base de código, realmente executar e verificar o código, conhecer com certeza as versões mais recentes da biblioteca, detectar vulnerabilidades de segurança com cem por cento de garantia. O mais perigoso é a alucinação: o modelo inventa uma função, biblioteca ou API (interface que permite a troca de dados entre aplicações) inexistente em uma linguagem muito convincente. Na verdade, esse risco pode ser aproveitado a seu favor, já que o código, diferentemente do texto simples, pode ser testado para ver se “funciona” — apenas não pule a etapa de verificação.

Tipo de missão

O papel da IA

o papel do homem

Produzir padrão/esqueleto

produz rascunho

Adapta-se, analisa

Descrição do código

Dá um resumo rápido

Verifica a parte crítica no código

escrevendo testes

Caso sugere

Confirma cobertura e precisão

Lógica crítica de segurança

ideia útil

A decisão e a responsabilidade cabem inteiramente aos humanos.

Uso de API/biblioteca

Gera amostra

Verifica existência e versão

decisão arquitetônica

Tipos de opções

Seleciona e defende conhecendo o contexto

Passo a Passo: Ciclo Básico de Trabalho

  1. Esclareça a tarefa. Se você não consegue escrever o que deseja em uma frase, o modelo também não. Quanto mais cedo a incerteza penetra no insumo, maior ela cresce no produto.
  2. Dê contexto. Adicione o código relevante, a mensagem de erro completa, a versão do idioma/estrutura e as restrições ao prompt. Não diga "conserte isso", diga "Python 3.11, FastAPI 0.110; esta função dá um erro 500, ela explode quando o corpo da solicitação está vazio".
  3. Função e formato da imposição. Uma estrutura como "Você é um desenvolvedor Go sênior; basta fornecer o código e uma justificativa de duas frases" concentra a saída.
  4. Peça pequeno. Divida-o em etapas, em vez de em um pedido gigante; Verifique cada etapa separadamente. Grandes mudanças são arriscadas porque são difíceis de verificar e propensas a ocultar erros.
  5. Verificar. Execute, teste, leia visualmente. O código de IA não verificado é um “esboço”, não uma “solução”. Esta é a etapa mais inegociável do ciclo.

Três Mini Estojos

Caso 1 — A economia de tempo é real, mas modesta. Quando uma equipe esqueletizou novos endpoints CRUD (Criar-Leitura-Atualizar-Excluir) com IA, o tempo do primeiro rascunho caiu de aproximadamente 40 minutos para 8 minutos. Porém, com revisão e testes, o tempo total foi de 25 minutos; então o ganho real é de 40 para 25, cerca de 38%. Essa taxa, medida em vez da expectativa de “aceleramos 10 vezes”, é um ganho sustentável.

Caso 2 — A alucinação custa caro. Um desenvolvedor usou a chamada requests.get_json() sugerida pela IA sem validação; Não existia tal método (precisamente response.json()). 20 minutos foram perdidos quando o código não foi compilado. Um simples "esse método realmente existe?" a verificação redefiniria a perda.

Caso 3 — Um bom contexto duplica a produção. Para o mesmo bug, um desenvolvedor simplesmente escreveu “Estou recebendo um erro” e o outro adicionou o rastreamento completo da pilha, a versão e a amostra de entrada. Este último obteve a solução correta na primeira tentativa; O primeiro passou três turnos. A diferença não estava no modelo, mas na entrada.

Quatro modelos copiáveis

Um prompt de inicialização poderoso e de uso geral:

Função: Você é um desenvolvedor experiente em {{linguagem}}. Tarefa: {{what_want}}Contexto:- Framework/versão: {{framework_and_version}}- Restrições: {{regras de desempenho, estilo, dependência}}Regras:- Não use biblioteca/função inexistente; Se não tiver certeza, marque como "verificar". - Primeiro, dê um plano resumido, depois o código e depois 2 frases de justificativa. - Produza código testável e funcional.

Para filtrar a incerteza de volta ao modelo:

Antes de resolver a tarefa abaixo, liste PELO MENOS 3 pontos que você considera faltantes ou pouco claros como perguntas. NÃO escreva código antes de eu responder. Tarefa: {{task}}

Para que a saída seja autoverificada:

Você produziu o seguinte código. Agora mude sua função e critique este código: - Liste 3 casos (casos extremos) que podem não funcionar. - Há alguma API/função que você poderia ter inventado? Mark.- Forneça a versão corrigida.Código:{{código}}

Para dividir uma decisão em opções:

Sugira 2-3 abordagens de solução para {{problema}}. Para cada um: breve descrição, mais/menos, quando escolher. Forneça em forma tabular. NÃO escolha por mim; apenas esclareça a opção.

Alerta fraco / Alerta forte

Fraco: "Corrija o bug neste código." (Qual erro? Qual idioma? Qual é o comportamento esperado?)
Forte: "Python 3.11/FastAPI 0.110. O endpoint a seguir retorna 500 com KeyError quando o corpo da solicitação fica vazio; quero que ele retorne 400 e uma mensagem significativa no corpo vazio. Primeiro explique o motivo, depois forneça a função corrigida e, em seguida, escreva um teste para este cenário. [código]"

Versão poderosa; Fornece o idioma, versão, erro real, comportamento esperado e formato de saída. O modelo não precisa mais prever.

Erros comuns

  • Confiar sem verificação. O erro mais comum e mais caro. Não diga "resolvido" até que o código seja compilado e testado.
  • Fazer perguntas sem contexto. A resposta sem versão, texto de erro e restrições é genérica e muitas vezes errada.
  • Um grande pedido. Não poder solicitar e revisar uma produção de 300 linhas de uma só vez torna os erros invisíveis.
  • Confundir a autoconfiança da modelo como prova. A IA pode dizer algo errado com segurança; O tom não é um indicador de precisão.
  • Colando aleatoriamente o segredo da empresa. Chaves privadas, dados de clientes ou código-fonte privado não devem ser inseridos em ferramentas não aprovadas (aprofundaremos esse tema na unidade 10).
Dica: trate cada resultado de IA como “este é um rascunho”. Este único hábito mental extingue a maioria dos riscos que você verá ao longo do módulo.

Em resumo

Um assistente de codificação é um modelo de linguagem que prevê o próximo fragmento mais provável; Não entende o código, produz padrões. É por isso que ele é forte em trabalhos repetitivos e estereotipados; Deve ser usado com cautela para trabalhos que exijam verificação específica ao seu contexto. O maior risco é a alucinação e o único antídoto é a verificação. A disciplina que seguiremos ao longo de todo o módulo é clara: esclarecer a tarefa, contextualizar, pedir pequenos, validar cada entrega.

Tarefa de aplicativo

Anote três tarefas de software que você realizou na última semana (por exemplo, uma correção de bug, um teste, uma atualização README). Observe o “mapa de pontos fortes e fracos” de cada um e descreva em uma frase qual seria o seu papel e o da IA ​​se a IA fizesse isso. Em seguida, entregue uma dessas tarefas à IA com o modelo de “prompt de início” acima e execute e verifique a saída; Observe quantos minutos você economizou e quantos erros você teve que corrigir.

lista de verificação

  • [] Percebi que o LLM produz padrões, não “entende” código.
  • [] Posso explicar os conceitos de token, janela de contexto e prompt em uma frase.
  • [] Consigo distinguir entre tipos de tarefas em que a IA é forte e fraca.
  • [ ] Eu sei o que é uma alucinação e o único antídoto é a verificação.
  • [ ] Adaptei o ciclo “propor, produzir, verificar” à minha tarefa.
  • [] Posso mostrar a diferença entre um prompt forte e um prompt fraco em um exemplo concreto.