1
resposta

Quando usar redundância e quando não usar?

@Override
    public String getBitsIdentificacaoAlgoritmo(WriterInterface writer) {
        String firstByte = "00001111"; //identificaçãoAlgoritmo
        String secondByte = StringUtils.integerToStringBinary(divisor, 8); // informação extra goloumb
        if (writer instanceof WriterRedundancy) {
            CRCService crcService = new CRCService();
            String encodedCRC = crcService.calculateCRC8(firstByte, secondByte);
            return firstByte + secondByte + encodedCRC;
        }
        return firstByte + secondByte;
    }

1)Nessa parte do "if" o "writer" pode ser ou não do tipo "WriterRedundancy". Mas quando vai ser de um tipo ou do outro? Quando vai ser usado a redundancia e quando não vai ser usado?
2)Por que não usar a redundancia sempre?

Analize o projeot no github pra responder, vou mandar o link abaixo.

Link do código: https://github.com/EncodeDecodeStepByStep/EncodeDecodeStepByStep/blob/master/backend/src/main/java/br/unisinos/encodedecodestepbystep/service/codification/GoulombService.java#L84

1 resposta

Olá, Luidi! Como vai?

A decisão de usar ou não redundância, como no caso do WriterRedundancy, geralmente depende do contexto e dos requisitos do sistema em que você está trabalhando. Vou tentar esclarecer suas dúvidas:

  1. Quando usar redundância?

    A redundância é geralmente usada para aumentar a confiabilidade e a segurança dos dados transmitidos ou armazenados. No seu código, a redundância é aplicada por meio da adição de um CRC (Cyclic Redundancy Check), que é uma forma de verificar a integridade dos dados. Se o writer é uma instância de WriterRedundancy, isso indica que o contexto em que está sendo usado requer essa verificação adicional para garantir que os dados não foram corrompidos durante a transmissão ou armazenamento.

    A escolha de quando writer será uma instância de WriterRedundancy depende de como o sistema foi projetado. Pode ser que, em situações críticas, nas quais a integridade dos dados é essencial, o sistema opte por usar WriterRedundancy. Em situações menos críticas, pode ser que a redundância não seja necessária.

  2. Por que não usar redundância sempre?

    Embora a redundância aumente a segurança dos dados, ela também pode adicionar sobrecarga ao sistema. Isso significa que mais dados são transmitidos ou armazenados, o que pode afetar o desempenho, especialmente em sistemas que lidam com grandes volumes de dados ou em ambientes nos quais a largura de banda é limitada. Além disso, calcular e verificar CRCs consome tempo de processamento, o que pode ser um fator crítico em sistemas que exigem alta performance.

    Portanto, a decisão de usar redundância deve ser balanceada entre a necessidade de segurança e integridade dos dados e as restrições de desempenho e recursos do sistema.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.