Episódio 6: Condicionais sem if — Inteligência Declarativa em Ação
Se você chegou até aqui, já entendeu que estamos construindo algo maior do que um simples sistema de execução de tarefas. Estamos criando uma linguagem declarativa embutida no Delphi. Um formato interpretável, flexível e controlado por regras que você define.
Mas o que falta? Controle de fluxo. Condicionais.
A ideia
E se você pudesse escrever algo assim:
{
"acao": "VerificarSaldo",
"se": {
"campo": "saldo",
"condicao": ">",
"valor": 100
},
"entao": {
"acao": "LiberarCompra"
},
"senao": {
"acao": "NegarCompra"
}
}
Sim, isso é um if sem if. Declarativo. Autoexplicativo. E dinâmico.
Como funciona
O interpretador JSON passa a compreender um novo tipo de instrução:
se: representa a condição a ser avaliadaentao: o que executar se a condição for verdadeirasenao: (opcional) o que executar se a condição for falsa
Essa condição pode usar campos do contexto, parâmetros da requisição, ou até funções auxiliares.
Exemplo em Delphi
Nosso mecanismo de interpretação pode fazer algo como:
if AvaliarCondicao(JsonObj['se']) then
ExecutarAcao(JsonObj['entao'])
else if JsonObj.TryGetValue('senao', SenaoObj) then
ExecutarAcao(SenaoObj);
Mas quem define a regra é o arquivo JSON. O código Delphi apenas obedece.
Benefícios
- Regras de negócio mudam sem recompilar o sistema
- Fica fácil criar fluxos alternativos, planos B, fallback
- Ideal para apps que usam workflows, backoffices ou automações
- Possível integrar com sistemas externos, que fornecem as regras
E se quiser mais?
- Podemos criar
switch/casedeclarativos - Suportar funções lógicas como
and,or,not - Suportar “condicionais múltiplas” por lista
Conclusão
Condicionais declarativas abrem um novo nível de controle no interpretador. Não é apenas sobre executar código, é sobre delegar lógica para configuração.
Estamos transformando JSON em uma linguagem de programação de alto nível. E estamos fazendo isso no Delphi.
No próximo episódio: parâmetros dinâmicos e variáveis substituíveis.