Unidade 3 / 12

Leitura de código, explicação e compatibilidade com a nova base de código

Ganhos:

  • Capacidade de mapear uma base de código externo camada por camada com IA e rastrear um recurso de ponta a ponta
  • Capacidade de explicar funções complexas passo a passo e monitorar o fluxo de dados
  • Capacidade de visualizar a descrição da IA como uma hipótese e verificar afirmações críticas no código

Os desenvolvedores leem código em vez de escrever código. Quando você inicia um novo trabalho, assume um serviço deixado por outra pessoa ou contribui para uma biblioteca de código aberto, sua primeira tarefa é “o que está acontecendo aqui?” é encontrar uma resposta para a pergunta. A IA pode reduzir esta tarefa de descoberta para horas em vez de semanas – mas apenas quando usada com as perguntas certas e um reflexo de verificação.

Nesta unidade, aprendemos a usar a IA como um “guia de código”: mapeando uma base de código estrangeiro, traduzindo uma função complexa em linguagem simples, seguindo um fluxo de dados e descobrindo como usar uma biblioteca. A regra de ouro aqui é que a explicação da IA ​​é uma hipótese; você verifica isso com o próprio código.

Por que a anotação de código é poderosa, mas arriscada?

Um LLM é muito bom para ler um trecho de código e traduzi-lo para a linguagem humana, como "esta função atualiza o token de sessão de um usuário"; porque aprendeu padrões de milhões de exemplos semelhantes. Isso economiza muito tempo, especialmente com funções longas e aninhadas.

Aqui está o risco: o modelo às vezes diz o que o código parece fazer, e não o que ele realmente faz. Se o nome da variável for isAdmin, mas a lógica interna for invertida, o modelo poderá olhar para o nome e extrair o resumo errado. Portanto, antes de fazer da declaração a base para suas decisões críticas, você deve verificar visualmente o comportamento alegado nas linhas relevantes. A descrição leva você ao lugar certo; O código tem a palavra final.

Cuidado: não conte o resumo “este código faz X” da IA ​​apenas como evidência em uma decisão envolvendo segurança ou fluxo de dinheiro. O resumo é um mapa que mostra onde procurar; Você dá a confirmação no código.

Etapas para mapear uma base de código estrangeiro

  1. Comece no nível superior. Primeiro, familiarize-se com a estrutura de pastas e os pontos de entrada (principal, inicialização de aplicativo, roteador doméstico). Pergunte à IA "quais são as camadas do aplicativo baseadas nesta estrutura de diretórios?" perguntar.
  2. Rastreie um recurso de ponta a ponta. "Quais arquivos são ativados e em que ordem quando o usuário faz login?" — observar um único fluxo é mais instrutivo do que ler toda a arquitetura.
  3. Localize os termos. Peça à IA conceitos específicos do projeto ("tenant", "ledger", "job runner") e encontre seus equivalentes no código.
  4. Você simplificou a função complexa. Tenha uma função longa explicada passo a passo e marque essas etapas no código.
  5. Verificar. Faça uma pequena alteração e faça testes para testar sua compreensão; O teste informa imediatamente se o seu entendimento está errado.

Três Mini Estojos

Caso 1 — O serviço herdado foi reduzido de 2 dias para 3 horas. Um desenvolvedor assumiu um serviço de reconciliação de pagamentos de 4.000 linhas de um colega que estava saindo. A IA resumiu os módulos e rastreou um fluxo de pagamento de ponta a ponta; Ele verificou pessoalmente duas funções críticas no código. A descoberta, que foi estimada em 2 dias com a clássica “leitura às cegas”, foi concluída em aproximadamente 3 horas com o método de IA verificado.

Caso 2 — Armadilha de nomes enganosos. Uma função foi chamada de activateAndSave, mas o resumo da IA ​​dizia “primeiro valida, depois salva”. Quando o desenvolvedor entrou no código, ele viu que o salvamento foi feito antes da verificação, e a verificação apenas gravou no log. Esta foi a verdadeira causa raiz de um ticket de bug na produção. Se não houvesse validação no código, o resumo falso esconderia o erro.

Caso 3 — Aprendizagem acelerada de novas bibliotecas. A equipe iria integrar uma biblioteca de fila de mensagens com a qual eles não estavam familiarizados. Perguntei à AI "como configurar um consumidor nesta biblioteca, como tentar novamente em caso de erro?" Eles pediram e mandaram produzir uma amostra; Em seguida, compararam o exemplo com o documento oficial e corrigiram uma diferença (API da versão antiga). O tempo de aprendizagem foi reduzido pela metade.

Quatro modelos copiáveis

Mapeamento de base de código:

Abaixo está a lista de diretórios/arquivos de um projeto. 1) Extraia as camadas da aplicação (entrada, lógica de negócio, acesso a dados, etc.). 2) Liste a possível jornada de arquivo de uma solicitação "{{example property}}". 3) Marque as áreas sobre as quais você não tem certeza como "devem ser verificadas". {{lista_diretórios}}

Descrição da função (passo a passo):

Divida esta função em grupos de linhas e explique em turco simples o que cada grupo faz. Finalmente: liste entrada, saída, efeitos colaterais (banco de dados/arquivo/rede) e possíveis casos extremos. Colete os comportamentos sobre os quais você não tem certeza em um título SEPARADO "deve ser verificado".{{function}}

Acompanhamento do fluxo de dados:

De onde vem o valor "{{variável/dados}}", por quais transformações ele passa, onde está escrito? Crie uma cadeia de fluxo usando os nomes das funções no código. Código relacionado: {{code_segments}}

Aprendendo a usar a biblioteca:

Quero fazer {{propósito}} com {{biblioteca}}. Dê um exemplo mínimo e funcional. Certifique-se de que todas as funções que você usa realmente pertencem a esta biblioteca; se não tiver certeza, marque "verificar na documentação oficial". Versão: {{versão}}.

Alerta fraco / Alerta forte

Fraco: "Explique este código." (O que você está se perguntando? Em que nível? O que você fará?)
Forte: "Estou assumindo esta função e mudarei a lógica de nova tentativa nela. Explique a função passo a passo, especialmente em caso de erro, indique claramente quantas vezes e em que intervalo você tentará novamente; marque as partes sobre as quais você não tem certeza como 'devem ser verificadas'. [código]"

A versão forte fornece sua intenção (mudarei a lógica de nova tentativa) e foco; para que a explicação não seja um resumo geral, mas um guia útil.

Missão

IA vai bem

Certifique-se de verificar

Resumo geral da arquitetura

Remover camadas

Sequência de chamada real

função complexa

Explicação passo a passo

Lógica reversa, efeitos colaterais

fluxo de dados

Desenhando a cadeia

Ramos condicionais, caminhos ignorados

Uso da biblioteca

Geração de amostra

Autenticidade e versão da API

Não há substituto para a compreensão humana

A descrição da IA não substitui a aprendizagem; isso acelera. “Possuir” verdadeiramente uma base de código significa construir um modelo mental dela, e esse modelo só se ajusta quando você lê o código, faz pequenas alterações e vê o resultado. Use a IA como um mentor diria “olhe aqui, isso é importante” - mas leia onde você vê com seus próprios olhos.

Dica: Quando você achar que entendeu uma função, peça à IA para “resuma-la em uma frase”; Em seguida, compare-o com sua própria frase. Se duas frases se contradizem, você ou o modelo perderam alguma coisa - e você resolve isso no código.

Erros comuns

  • Considere o resumo como evidência. Tomar uma decisão sobre o código sem verificar a descrição significa cair na armadilha de nomes enganosos.
  • Colando pedaços muito grandes. Resumir 2.000 linhas de uma vez fornece resultados superficiais e sujeitos a erros; divida em pedaços.
  • Não declarando propósito. Se você não disser “o que você fará”, a descrição permanecerá geral e não focará no seu negócio.
  • Não validando a instância da biblioteca. O modelo pode chamar API desatualizada ou inexistente; Compare com documento oficial.
  • Dando todo o aprendizado. Trabalhar apenas com resumos sem nunca ler a base de código deixa você impotente diante do primeiro erro real.

Em resumo

A IA é um guia poderoso na exploração de uma base de código estrangeira: mapeia a arquitetura, simplifica funções complexas, rastreia o fluxo de dados, ensina o uso da biblioteca. Mas toda explicação é uma hipótese. Deixe seu ponto claro, analise-o e verifique no código e teste cada afirmação crítica que o modelo diz (e não diz) "deve ser verificada". O guia é IA; Você é quem lê o mapa e assume a responsabilidade.

Tarefa de aplicativo

Escolha um módulo com o qual você não está familiarizado ou que acabou de herdar. Primeiro, extraia as camadas e a jornada de arquivo de um recurso com o modelo "mapeamento de base de código". Em seguida, tenha a função mais crítica desse recurso explicada passo a passo com o modelo de "explicação da função". Por fim, verifique pessoalmente no código pelo menos duas afirmações que o modelo marcou como “devem ser verificadas” e observe se são verdadeiras ou falsas.

lista de verificação

  • [] Eu trato a afirmação da IA como uma hipótese e a verifico no código.
  • [] Ao explicar o código, adiciono meu propósito e foco ao prompt.
  • [] Eu resumo a grande base de código dividindo-a em partes.
  • [] Eu verifico declarações críticas on-line em busca de armadilhas de nome/lógica reversa enganosas.
  • [] Comparo os exemplos da biblioteca com o documento e a versão oficial.
  • [ ] Utilizo a IA como um guia para acelerar a aprendizagem, não como um substituto da aprendizagem.