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.
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
Escpara 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ão | Níveis | Colunas |
|---|---|---|
| Quantas intenções este código alcança | Arquivos, Definições | Intenções alcançadas, Alterações, Por alteração, Sem mudança |
| Quanto código alcança esta intenção | Documentos, Trechos | Arquivos 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.