Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] Desafio: Calculando valor da entrega

No desenvolvimento de APIs para aplicativos de delivery, o cálculo de frete é uma regra de negócio sensível e frequentemente isolada em um serviço de domínio específico. Para estruturar esse algoritmo com qualidade de engenharia de software (Clean Code), devemos evitar espalhar "números mágicos" (magic numbers) pelo código. A melhor prática é defini-los como constantes e separar claramente a regra de Taxa Base (distância) da regra de Modificadores Dinâmicos (clima).

Essa separação de responsabilidades garante que, se amanhã o sistema precisar cobrar uma taxa extra por alta demanda (além da chuva), o bloco da taxa base não precisará ser alterado.

Algoritmo em Linguagem Natural

INÍCIO

    Definição de Parâmetros (Constantes):

        Definir [Taxa_Curta] = 5.00

        Definir [Taxa_Media] = 8.00

        Definir [Taxa_Longa] = 10.00

        Definir [Adicional_Chuva] = 2.00

    Coleta de Dados (Payload de Entrada):

        Solicitar a distância em km e armazenar na variável numérica [Distancia].

        Verificar o clima e armazenar na variável booleana [Chovendo] (Verdadeiro/Falso).

        Inicializar a variável [Taxa_Final] com o valor 0.00.

    Processamento da Taxa Base (Motor de Regras - If/Else-If/Else):

        SE a [Distancia] for menor ou igual a 5, ENTÃO:

            [Taxa_Final] recebe [Taxa_Curta].

        SENÃO, SE a [Distancia] for menor ou igual a 10, ENTÃO:

            [Taxa_Final] recebe [Taxa_Media].

        SENÃO:

            (Nota lógica: Distâncias acima de 10km caem aqui automaticamente).

            [Taxa_Final] recebe [Taxa_Longa].

    Processamento de Modificadores (Estado Dinâmico):

        SE [Chovendo] for Verdadeiro, ENTÃO:

            Somar [Adicional_Chuva] ao valor atual da [Taxa_Final].

    Ação Final (Saída):

        Exibir a mensagem: "Taxa de entrega processada: R$ [Taxa_Final]".
FIM

Isolando os modificadores (Passo 4) da cadeia condicional principal (Passo 3), o algoritmo se torna escalável, permitindo adicionar ou remover taxas extras no futuro com impacto zero na lógica de distância.

1 resposta
solução!

Oi, Weriton.

que prazer ler uma contribuição com esse nível de maturidade técnica!

Sua abordagem foi muito além de apenas resolver o exercício; você aplicou princípios de Engenharia de Software que fazem toda a diferença no dia a dia de quem desenvolve sistemas de grande escala.

O que torna seu algoritmo excelente

  • Abstração e constantes: Ao evitar os "números mágicos", você cria um código muito mais fácil de manter. Se o preço da gasolina subir e todas as taxas precisarem de um reajuste de 10%, o desenvolvedor altera em um único lugar no topo do arquivo, em vez de caçar valores dentro da lógica.
  • Separação de responsabilidades: Essa é a parte mais inteligente da sua solução. Ao processar a Taxa Base e depois aplicar os Modificadores, você seguiu o princípio de que uma função deve fazer apenas uma coisa. Isso deixa o código modular: a regra da chuva não "sabe" nada sobre a distância, ela apenas adiciona valor ao resultado parcial.
  • Escalabilidade: Como você bem notou, se precisarmos adicionar uma taxa noturna ou um adicional por feriado, basta criar um novo bloco de "SE" para esses modificadores após o cálculo da base, sem risco de quebrar a lógica de km.

Parabéns pela excelente organização e pela didática ao explicar o porquê de cada decisão técnica. Esse tipo de visão estratégica é o que o mercado mais valoriza!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!