Resumo

Este explicador de código transforma um trecho colado em um resumo em português: o idioma, cada função e o que seu nome sugere, uma pontuação de complexidade ciclomática e sinalizações como blocos catch vazios, chamadas eval e segredos codificados. É um leitor baseado em regras, não um modelo de linguagem, portanto descreve estrutura em vez de intenção. A complexidade segue a medida de McCabe, onde 10 ou menos por função é o limite recomendado. A análise é executada no seu navegador e seu código nunca é enviado para lugar nenhum.

Cole Código, Obtenha um Resumo em Português do Que Faz

Este explicador de código gratuito lê um trecho no seu navegador e retorna suas funções, caminhos de decisão, tratamento de erros e sinais de alerta, para você saber onde procurar antes de ler linha por linha.

Engineer reading unfamiliar code on a monitor with a notebook sketch of function boxes beside the keyboard

Explicador de código

Cole uma função ou um arquivo curto. O resumo é atualizado conforme você digita. Nada sai do seu navegador.

Walkthrough

    Things to check

      Lendo a saída

      Como usar o resumo

      1. 1

        Cole o trecho

        Uma função ou um arquivo funcionam melhor. Além de algumas centenas de linhas, o resumo deixa de ser um resumo e se torna uma lista.

      2. 2

        Verifique a sentença principal

        Nomeia o idioma, conta funções e fornece uma pontuação de complexidade. Uma pontuação acima de 10 significa que o código tem muitos caminhos para manter em mente de uma vez.

      3. 3

        Leia o passo a passo

        Cada função recebe uma linha: o que seu nome sugere, quanto tempo leva, quantos caminhos tem e se faz loop, espera ou trata falhas.

      4. 4

        Abra as sinalizações primeiro

        Se a ferramenta listar um manipulador de erro vazio ou uma string semelhante a credencial, comece por lá. Essas são as linhas mais prováveis de prejudicá-lo depois.

      Como funciona

      O que o explicador realmente mede

      Estrutura da sintaxe

      Remove comentários e strings e depois corresponde a definições de função, importações, classes, loops e ramificações para o idioma detectado. Nenhuma adivinhação sobre para que serve o código, apenas o que contém.

      Complexidade que você pode verificar

      A pontuação é complexidade ciclomática: um mais cada if, loop, case, catch e operador booleano. É a mesma contagem que um linter daria a você, e o relatório de testes estruturados NIST sugere manter uma função em 10 ou menos.

      Sinalizações que correspondem a bugs reais

      Chamadas eval ou exec, blocos catch vazios, segredos codificados, notas TODO, nesting além de quatro níveis e funções com mais de 40 linhas. Cada regra existe porque aponta para código que é fácil de ler mal.

      Onde para

      Um explicador de trecho responde "o que está aqui", não "por que está aqui"

      A pergunta que um novo engenheiro faz raramente é "o que faz este loop". É "por que o serviço de cobrança chama essa função e quem mais depende dela". Um trecho colado não pode responder isso, porque a resposta vive em outros arquivos. Esta ferramenta foi construída para a primeira passagem: você tem uma função aberta, tem cinco minutos e quer saber se é um auxiliar de dez linhas ou um emaranhado com seis caminhos de saída. Isso fornece em um segundo e diz onde está o risco. Para a segunda pergunta, você precisa pesquisar em todo o repositório. Essa é a lacuna entre ler uma função e entender como um sistema é conectado, e é onde a maior parte do tempo de integração vai.

      • Use-o em uma única função ou arquivo, não em um serviço inteiro
      • Trate as sinalizações como prompts para olhar mais de perto, não como conclusões
      • Mude para pesquisa em todo o repositório quando a pergunta for sobre chamadores e dependências
      Two engineers at a laptop, one pointing at a line of source code while the other reads along

      Perguntas sobre o explicador de código

      Este explicador de código é gratuito e meu código sai do meu navegador?
      É gratuito e não requer inscrição. A análise é executada inteiramente no seu navegador com JavaScript simples. Seu trecho nunca é enviado a um servidor, portanto você pode colar código interno sem revisão de segurança. A única coisa registrada é uma contagem anônima de que a ferramenta foi usada.
      Este é um modelo de IA que entende meu código?
      Não. É um leitor baseado em regras. Detecta o idioma, encontra funções, importações, ramificações, loops e tratamento de erros e os descreve usando os nomes e a estrutura que vê. Isso o torna rápido e previsível, mas não pode conhecer intenção. Se uma função for chamada process() e fizer algo surpreendente, a ferramenta não saberá.
      Como a pontuação de complexidade é calculada?
      Conta pontos de decisão (if, elif, for, while, case, catch ou except, operadores booleanos and/or, ternários) e adiciona um. É a medida de complexidade ciclomática que McCabe propôs em 1976. Uma pontuação de 10 ou menos é o limite que o relatório de testes estruturados NIST recomenda para uma única função.
      Quais idiomas ele suporta?
      Python, JavaScript, TypeScript, Java, Go e Rust. A detecção automática examina palavras-chave e sintaxe. Se adivinhar errado em um trecho curto, escolha o idioma na lista suspensa. Outras linguagens estilo C costumam funcionar, mas a detecção de função é menos confiável.
      Por que ele sinaliza coisas como blocos catch vazios e comentários TODO?
      Esses são os lugares onde um leitor mais frequentemente se surpreende depois. Um catch vazio oculta falhas, um TODO marca uma lacuna conhecida, e uma função longa ou profundamente aninhada é difícil de testar. As sinalizações são prompts para olhar mais de perto, não veredictos.
      Qual é a diferença entre isso e perguntar a um bate-papo de IA sobre meu código?
      Um modelo de bate-papo pode raciocinar sobre intenção, mas apenas sobre o que você cola. Esta ferramenta mostra estrutura em segundos sem modelo envolvido. Nenhum deles sabe como o trecho se conecta ao resto do seu repositório. Para isso você precisa de uma ferramenta que indexou toda a base de código.
      Posso usá-lo para revisar uma solicitação pull?
      Sim. Escolha a opção revisor e cole a função alterada. Você recebe uma lista de verificação com contagens de ramificações, tratamento de erros e sinalizações de alerta, que informam onde gastar sua atenção antes de abrir o diff completo.

      Entenda todo o repositório, não apenas um trecho

      codebasechat responde perguntas sobre sua base de código em inglês simples, com os arquivos e locais de chamada que respaldam cada resposta.