TheCodeNaked

Paralelismo - Episódio 32 (Copy)

Episódio 32 - Execução Dinâmica de Código e Interação com o Usuário

Chegamos a um ponto em que a execução condicional e os fluxos declarativos já estão estabelecidos. Mas a verdadeira interação com o usuário não acontece apenas ao mostrar um resultado: ela se dá quando o sistema escuta, pergunta e decide com base nas respostas. Esse é o próximo passo.


🌀 Do JSON estático para o JSON interativo

Imagine uma entrada como esta:

{
  "acao": "Perguntar",
  "mensagem": "Deseja continuar?",
  "sim": {
    "acao": "ExecutarProcesso",
    "nome": "ReiniciarServico"
  },
  "nao": {
    "acao": "ExibirMensagem",
    "mensagem": "Processo cancelado pelo usuário."
  }
}

Agora temos decisões baseadas em resposta humana. A estrutura JSON se torna um mini-diálogo. Isso exige que o mecanismo de execução compreenda que:

  • Nem todas as ações são automáticas
  • Algumas dependem de input do usuário
  • O próximo passo deve ser escolhido dinamicamente

⚖️ Arquitetura sugerida

  1. O mecanismo encontra uma ação do tipo Perguntar
  2. Apresenta a pergunta ao usuário (em UI ou console)
  3. Aguarda a resposta (sim ou nao)
  4. Executa a próxima etapa correspondente

Isso abre portas para:

  • Interfaces declarativas de assistentes
  • Fluxos de onboarding guiado
  • Robôs de decisão com branching dinâmico

🔄 Integração com TSafeThread

Como já temos todo um ecossistema que lida com threads, é possível:

  • Interromper temporariamente a execução até a resposta
  • Continuar o fluxo após a resposta, em thread separada
  • Tratar cancelamento, timeout e erros como eventos declarativos

🔹 Exemplo avançado:

{
  "acao": "Perguntar",
  "mensagem": "Deseja enviar o relatório agora?",
  "sim": {
    "acao": "ExecutarTarefa",
    "nome": "GerarRelatorio",
    "proxima": {
      "acao": "EnviarEmail",
      "para": "admin@empresa.com"
    }
  },
  "nao": {
    "acao": "Aguardar",
    "tempo": 3600
  }
}

✨ Conclusão

Com isso, nosso mecanismo deixa de ser apenas um executor de scripts para se tornar um mini interpretador reativo, que interage com o humano e adapta seu comportamento.

No próximo episódio, vamos introduzir a ideia de validadores, para verificar condições antes de prosseguir com a execução.

Estamos cada vez mais perto de um mecanismo declarativo, flexível e humano.

Sobre o autor

TheCodeNaked

No TheCodeNaked, programar é consequência, não ponto de partida. Antes do código, vem a dúvida, a análise, o contexto. Não seguimos fórmulas — questionamos. Criar software é pensar com clareza. O resto é só digitação.

TheCodeNaked

Criar com clareza. Codificar com intenção.

TheCodeNaked

Ótimo! Você se inscreveu com sucesso.

Bem-vindo de volta! Você acessou com sucesso.

Você se inscreveu com sucesso o TheCodeNaked.

Sucesso! Verifique seu e-mail para acessar com o link mágico.

As suas informações de faturamento foram atualizadas.

Seu pagamento não foi atualizado