Episódio 10 - Condicionais no JSON: lógica sem "if"
Na evolução do nosso sistema baseado em TSafeThreadInterface e TTaskChain, alcançamos um ponto crítico: como representar lógica condicional usando apenas JSON?
A proposta aqui é ousada: queremos manter um modelo declarativo, desacoplado do código, que permita tomar decisões como "se isso, então aquilo" sem precisar reescrever ou recompilar a aplicação.
Por que evitar o if no código?
- Modificações exigem recompilação: Trocar um simples fluxo exige alteração de código.
- Aumenta o acoplamento: O código fica repleto de verificadores, validadores e bifurcações.
- Dificulta a visualização da lógica de negócio: A regra fica espalhada entre as linhas do código.
Com JSON, podemos mover essa lógica para um nível mais alto de abstração. O código vira interpretador, e a regra passa a ser declarada de forma legível, editável e carregada dinamicamente.
Como definir uma condicional via JSON?
Vamos usar um novo tipo de instrução:
{
"acao": "Condicional",
"se": {
"variavel": "status",
"igual": "ativo"
},
"entao": [
{ "acao": "EnviarEmail", "para": "cliente@exemplo.com" }
],
"senao": [
{ "acao": "Log", "mensagem": "Cliente inativo" }
]
}
Essa estrutura pode ser interpretada por um mecanismo que valida o valor da variável status, e dependendo do resultado, executa as ações da lista entao ou da lista senao.
Benefícios
- Extensão natural do interpretador: não altera as estruturas existentes.
- Legibilidade e clareza: qualquer um pode entender a lógica com leitura simples.
- Editor-friendly: pode ser alterado em tempo real, editado em interface visual.
- Sem recompilar: regras mudam com simples upload de JSON.
Próximos passos
No próximo episódio, vamos mostrar como:
- Tratar expressões mais complexas (e, ou, diferente, maior que, etc.)
- Reaproveitar condicionais para filtros e bifurcações
- Criar um interpretador modular e performático
Estamos transformando threads e tarefas encadeadas em uma linguagem visual de comportamento.
Código que pensa é bom. Código que obedece à lógica declarada é melhor ainda.
Nos vemos no Episódio 11.