Localizador de Duplicatas para Texto

Outras línguas: English 中文 Español

Qualquer pessoa que tenha trabalhado em documentação técnica em uma grande equipe certamente está ciente do problema de duplicação de conteúdo . Mesmo com as melhores ferramentas e práticas, a duplicação é fundamentalmente difícil de superar

À medida que o projeto cresce, o conteúdo duplicado começará a ocorrer. Isso é especialmente verdadeiro para grandes projetos que incluem muitos produtos ou recursos semelhantes.


definir uma vez:
<p>
    Se você encontrar algum problema, consulte o guia de solução de problemas
    ou entre em contato com o suporte.
</p>
reutilizar em outros lugares:
<NotaSobreSolucaoDeProblemas/>
<p>
    Se você encontrar algum problema, consulte o guia de solução de problemas
    ou entre em contato com o suporte.
</p>

<!-- mesmo sentido, redação um pouco diferente-->
<p>
    Em caso de problemas, consulte o guia de solução de problemas
    ou entre em contato com o suporte
</p>

A ideia que advoga contra a duplicação é comumente conhecida como Princípio DRY (Don’t Repeat Yourself). Embora esteja principalmente associado à programação, a mesma propriedade é muito valorizada na documentação.

Introdução ao projeto

As ferramentas modernas de autorização normalmente têm recursos para reutilização de conteúdo, tornando as restrições técnicas menos uma preocupação. O problema real, por outro lado, está em identificar duplicatas. Antes de extrair algo para um bloco reutilizável, você precisa saber o que extrair.

Se você é um programador, seu IDE pode realçar o código duplicado para você:

IntelliJ IDEA realça o código duplicado IntelliJ IDEA realça o código duplicado

Infelizmente, o mesmo recurso não é adequado para documentação, pois depende de comparar árvores de sintaxe abstratas (AST). Essa abordagem não funciona bem com texto.

Um dos meus projetos em andamento é implementar um localizador de duplicatas para documentação. A ferramenta será capaz de encontrar rapidamente correspondências não exatas, ou fuzzy, como o exemplo ruim acima.

Estado atual

No momento da escrita, o projeto está em andamento, mas já existe um protótipo funcional:

A interface do usuário do protótipo da ferramenta de localização de duplicatas mostrando várias duplicatas detectadas em um projeto fictício

O algoritmo demora menos de 30 segundos para analisar um projeto com ~6k arquivos de origem no meu MBP M1, e planejo aprimorá-lo para destacar instantaneamente as duplicatas enquanto você digita no editor.

O protótipo já me ajudou e aos meus colegas encontrar muitas duplicatas em projetos reais, então eu estou bastante entusiasmado com os resultados e melhorias futuras.

Próximos passos

Nos próximos posts, detalharei o algoritmo passo a passo e realizarei benchmarks para avaliar seu desempenho. Se você gosta de programação, fique à vontade para acompanhar.

Alternativamente, você pode acompanhar o progresso e usar o produto final quando o projeto estiver concluído. Uma vez finalizado, este recurso estará disponível no Writerside, uma ótima ferramenta de autorização feita por meus colegas.

Espero que a descrição do projeto ressoe com você e que você ache o tutorial útil.

Te vejo nos próximos posts!

all posts ->