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.