Awesome REA
Português (Brasil)
Voltar para todos os casos

ReaFuse: combinando duas bibliotecas após investigar seu comportamento

Alvo: Dois pares de bibliotecas JavaScript de código aberto: ms + pretty-bytes e dequal + klona

Autor / atribuição: sickpyramid

Data de revisão da fonte:

Rever estado: Fontes revisadas; os testes do autor não são executados de forma independente.

A questão

Como podem dois projetos tornar-se especificações de comportamento e depois uma nova ferramenta combinada?

O que REA fez

REA 6.4.0 JavaScript a análise estática lê as duas entradas. Arquivos e testes README ajudam a produzir especificações de comportamento; o modelo propõe combinações separadamente, escreve contratos de aceitação e novo código e, em seguida, executa os testes do autor e verificações de similaridade.

Resultados relatados pelo autor

O autor publica ratewise (taxa de transferência e ETA) e objdelta (diff/patch estrutural), relatórios e Evidence. Os resultados do contrato relatados são 18/18 e 17/17, além de testes 7/7 e 6/6 para as novas ferramentas. Ambos os exemplos contam como um caso de projeto.

Limitações e reivindicações não verificadas

Apenas dois exemplos públicos de JavaScript foram revisados; o projeto é v0.1 alfa. O mesmo fluxo de trabalho produz especificações e implementações. O rótulo de sala limpa do autor não é uma conclusão jurídica independente. Varreduras de similaridade e testes de aprovação não estabelecem originalidade geral ou equivalência completa. Este catálogo não os reexecutou.

O que aprender

Conecte a análise à implementação por meio de especificações de comportamento, mapeando testes para o comportamento de entrada ou para a nova combinação.

Evidência de uso de REA na fonte

Every donor goes through REA's static JavaScript analysis

A formatação do trecho é simplificada. Leia a fonte original para o contexto completo.

Fontes originais

Resumo editorial independente. O crédito pertence aos autores originais. O software alvo, os instaladores e a saída completa do descompilador não são redistribuídos aqui.

Veja este caso em GitHub · Sugira uma correção