Conteúdo da documentação12 / 20

Guardar as suas decisões12 / 20

Ver a cobertura de intenções

Nesta página

Quanto deste software você realmente domina? A cobertura de intenções responde com uma imagem: um quadrado por arquivo de código, organizado por módulo; quanto mais escuro o quadrado, mais linhas dele as suas explicações citam. O que ainda está em branco e quais explicações estão desatualizadas aparecem de relance. Aponte para uma intenção e os arquivos que ela cobre se acendem.

Abra a cobertura de intenções

Inicie uma nova conversa: antes de enviar a primeira mensagem, a área da conversa mostra o cartão de Cobertura de intenções. Você também pode abrir Ajustes → Cobertura de intenções (no grupo do projeto atual), onde o cartão ocupa a página inteira, o que ajuda em projetos grandes.

A cobertura de intenções exige que a pasta de implementação seja um repositório Git. Enquanto o projeto não tem um resultado de cobertura, o cartão diz “Ainda não calculada” e oferece duas entradas: “Explicar” faz o Agent escrever as explicações primeiro, e “Calcular agora” calcula a cobertura a partir das explicações que você já tem. Em repositórios grandes é preciso ler todos os arquivos, então pode demorar.

Depois disso, o cartão se atualiza toda vez que o Explain termina. À direita da linha do título aparece quando o último Explain terminou e o commit daquele momento, com um botão para calcular de novo.

Leia o cartão

No topo do cartão há um número grande: a parcela de todas as linhas de código no escopo que as explicações citam. Ao lado, “3 / 6 arquivos” é quantos arquivos têm intenção por trás, do total.

O cartão de Cobertura de intenções: 68% das linhas de código são citadas por explicações, e 41 de 60 arquivos têm intenção por trás. A área de módulos dispõe um ponto por arquivo, por pasta, e cada Documento de Intenção aparece listado abaixo.

A barra logo abaixo tem três partes, com uma legenda embaixo:

  • Linhas referenciadas: a parte cheia, tão longa quanto a porcentagem.
  • Explicação desatualizada: a parte hachurada, arquivos que mudaram depois que as explicações foram escritas.
  • Sem intenção: a parte vazia, arquivos que nenhuma explicação cita.

Por módulo

A área “Módulos” mostra pontos por padrão: um ponto por arquivo, uma linha por pasta. Os arquivos com intenção por trás ficam mais escuros quanto mais linhas deles são citadas; os arquivos cujas explicações estão desatualizadas ficam hachurados; os arquivos sem intenção ficam vazios. Aponte para um ponto para ver o nome do arquivo e quanto dele é citado.

O interruptor no canto superior direito transforma os pontos em barras: uma linha por módulo, tão longa quanto a contagem de linhas dele, dividida nos três estados.

Clique num módulo para descer um nível; um botão de voltar e o caminho aparecem na linha do título. No serviço de assinaturas, por exemplo, as linhas de billing, jobs, notify e web ficam lado a lado, e a linha de notify está quase vazia: as regras dos e-mails de notificação ainda não foram escritas na intenção.

Por intenção

Abaixo dos módulos está a lista de intenções, uma linha por Documento de Intenção, com recuo como na árvore de documentos, com uma linha curta mostrando a quantos arquivos ele corresponde. Um documento que ainda não tem código por trás fica acinzentado, com uma linha vazia.

  • Aponte para um documento: as linhas da área de módulos que nada têm a ver com ele esmaecem, e o layout permanece.
  • Clique num documento: as linhas não relacionadas se recolhem, a barra e os pontos mostram só o código a que essa intenção corresponde, e um chip com o nome do documento e um × aparece sob o título dos módulos.
  • Clique nele de novo, clique no × do chip ou pressione Esc para limpar.

Clique em Renovação, por exemplo, e só restam billing/grace.ts, jobs/renewal-job.ts e alguns arquivos de teste. Você vê na hora o que uma mudança nas regras de renovação vai tocar.

O que o número significa

A cobertura mede quanto código as suas explicações citam. Não é qualidade de código e não é cobertura de testes. Ela ajuda a responder a duas perguntas:

  • Onde ainda não há intenção? Um módulo em branco é código que não importa muito, ou regras que já estão rodando e que você não pensou direito. Estas merecem um parágrafo de intenção e um Explain.
  • Onde as explicações estão desatualizadas? Muita hachura significa mudanças recentes que as explicações ainda não acompanharam; veja Quando o código muda.

Não é preciso perseguir os 100%. Comece pelas partes que mais importam para você e deixe essas escurecerem primeiro.

Parnas Index

Ajustes → Parnas Index olha para a mesma coisa do outro lado: até onde as mudanças no código alcançam a sua intenção. O nome vem do princípio de decomposição em módulos de David Parnas: um bom módulo esconde uma decisão que provavelmente vai mudar. No Noea, um trecho de intenção representa uma decisão e um arquivo de código representa um módulo.

O número grande no topo é quantos trechos de intenção são reverificados, em média, por arquivo alterado, com quantos foram verificados por completo e quantos deles não mudaram. Quanto mais alto, mais decisões uma única mudança arrasta. A janela de tempo pode ser de 7, 30 ou 90 dias.

A página tem duas visões:

VisãoNíveisColunas
Quantas intenções este código alcançaArquivos, DefiniçõesIntenções alcançadas, Alterações, Por alteração, Sem mudança
Quanto código alcança esta intençãoDocumentos, TrechosArquivos citados, Alterações de código, Alterações de intenção, Sem mudança

Clique numa linha para abri-la no próprio lugar. A linha de um arquivo mostra quanto dele as explicações citam, as intenções que ele mais alcança e “Ver na Cobertura de intenção”; a linha de uma intenção mostra quantos arquivos ela cita, o código que mais a alcança e um jeito de abrir aquele trecho.

Sob o nível de arquivo da primeira visão fica um gráfico de dispersão “Cobertura e alcance”: na horizontal, a parcela de linhas citadas por explicações; na vertical, quantos trechos de intenção cada mudança alcança. Os arquivos no canto superior direito são muito citados e mudam com frequência, então cada mudança significa reverificar muita intenção; talvez valha dividi-los. Uma cobertura mais alta nem sempre é melhor.

Se o projeto ainda não tem uma pasta de implementação vinculada, as duas páginas pedem que você vincule uma antes em Ajustes → Projeto.