TheCodeNaked

Paralelismo - Episódio 5 (Copy)

Episódio 5 - Engine JSON: carregamento dinâmico de tarefas

No episódio anterior, organizamos nossas tarefas como plugins reaproveitáveis e flexíveis. Agora é hora de darmos o próximo passo: permitir que as tarefas sejam definidas de forma externa, por exemplo, por um arquivo JSON.

Essa mudança permite que o comportamento do sistema seja alterado sem recompilar o código. Um operador, um script externo ou mesmo uma aplicação cliente pode definir uma sequência de tarefas com seus parâmetros, erros esperados e condições de continuidade.


✅ Por que usar JSON?

  • Separar dados da lógica: mantém o código limpo e reutilizável
  • Permitir reconfiguração sem recompilar
  • Fácil de validar, logar e versionar
  • Fácil de integrar com interfaces externas

Exemplo de definição via JSON:

[
  { "task": "DownloadJSON", "params": { "url": "https://..." }, "continueOnError": false },
  { "task": "ProcessJSON", "params": {}, "continueOnError": true },
  { "task": "DownloadImage", "params": { "timeout": 1000 }, "continueOnError": false }
]

Esse arquivo pode ser carregado na inicialização e interpretado por uma engine que:

  • Localiza o plugin correspondente a cada tarefa
  • Injeta os parâmetros informados
  • Controla a execução e continuação conforme o erro

Estrutura da engine:

  • PluginRegistry: onde os plugins são registrados com um identificador (ex: "DownloadJSON")
  • JSONLoader: carrega e interpreta o JSON, construindo dinamicamente uma instância de TTaskChain
  • ParamMapper: aplica os parâmetros JSON ao plugin de forma segura

Vantagens reais

  • Aplicativo mais genérico
  • Scripts de tarefas compartilháveis
  • Integração com interfaces de configuração (Web, REST, Mobile)
  • Permite criar uma linguagem de orquestração

Nos próximos episódios:

  • Criaremos uma interface simples para editar os JSONs
  • Mostraremos como registrar dinamicamente os plugins
  • Falaremos de fallback, tempo de execução, condicionais
  • E como validar uma cadeia de execução antes de rodar

O que era uma tarefa virou uma linguagem declarativa de execução. Bem-vindo à ideia de uma mini-orquestradora local para Delphi.
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