O primeiro padrão de projeto de programação no pxWorks

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br


[This article was first published on gtdir, and kindly contributed to R-bloggers]. (Você pode relatar problemas sobre o conteúdo desta página aqui)


Quer compartilhar seu conteúdo em R-bloggers? clique aqui se você tiver um blog, ou aqui se não tiver.

Em primeiro lugar, precisamos explicar algumas coisas com mais detalhes.

(Re) Introdução

pxWorks é uma plataforma de programação de código aberto que permite o seguinte, entre outras coisas:

  • Implemente a lógica de programação de mineração de dados de maneira clara, modelando o código em torno do fluxo de dados.
  • Use uma mistura de qualquer linguagem de script no mesmo projeto perfeitamente, sem introduzir nenhum código intermediário ou pacotes extras. (Nossos exemplos serão escritos principalmente em R.)
  • Delegue a escrita do código com a garantia de que o código escrito será transparente e fácil de seguir e depurar.
  • Crie protótipos com rapidez e facilidade.

Lógica de programação (fluxo de controle) no pxWorks

Qualquer programa de computador pode ser representado por um gráfico. No pxWorks, os nós do gráfico representam as operações e as bordas do gráfico representam a direção do fluxo de controle.

Para habilitar loops de programação sem complicar a lógica, a plataforma usa apenas dois tipos de conexões: incondicional e condicional.

O programa mais simples é aquele que usa conexões incondicionais. Essas conexões são representadas na tela por linhas cinzas. O gráfico com apenas conexões incondicionais representa um programa simples em que cada nó que possui entradas espera até que todos os blocos de código associados às entradas conectadas tenham sido processados.

Os nós que possuem entradas condicionais permitem a introdução de loops no fluxo de controle. As conexões condicionais são representadas por linhas magenta. Os nós que têm conexões de entrada incondicional e condicional aguardam sua vez para executar o código com base na seguinte regra: todos os nós conectados incondicionalmente foram (re) calculados ou pelo menos um nó condicional foi (re) calculado e gerado um Arquivo de entrada.

Leia Também  Um aplicativo de teste brilhante sobre a campanha de influência russa antes das eleições de 2016 nos EUA

Portanto, no primeiro caso, com links incondicionais, o acionamento do código ocorre independentemente de um arquivo de entrada ser gerado para o bloco dependente (portanto, a execução é incondicional).

No segundo caso, com links condicionais, o disparo do código ocorre apenas na condição de que um arquivo de entrada tenha sido gerado após a execução do bloco anterior.

Ainda mais detalhes sobre este assunto podem ser encontrados aqui.

O primeiro padrão de design: pulsação

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br

Antes de prosseguir, você pode obter o arquivo de exemplo aqui. (Para executar o exemplo, você precisará descompactá-lo e abri-lo no pxWorks.)

O primeiro e mais simples caso de uso pode ser a recuperação periódica (e processamento) de alguns dados usando um R / Python / Julia / etc. ou qualquer mistura destes. Usaremos R.

Para implementar esse padrão de design, precisamos de um bloco que iniciará o fluxo de controle, vamos chamá-lo de ‘init’, e um bloco de pulsação, que é simplesmente um script que gera um arquivo de saída e passa o fluxo de controle de volta para seu próprio soquete de entrada. Não há necessidade de gerar o arquivo todas as vezes, mas para simplificar, continuaremos gerando-o novamente sempre que o script for executado.
A saída de pulsação pode ser vinculada a qualquer número de blocos que precisam ser executados após o bloco de pulsação. Sem complicar o programa com a recuperação e processamento de dados reais, para fins de demonstração, iremos simplesmente gerar números aleatórios e representá-los. Ao executar o script, para ver o gráfico, basta clicar no ícone “gráfico” no menu principal. O pxWorks deve abrir uma nova janela que exibirá o último gráfico gerado.

Portanto, o bloco de pulsação continuará em execução perpetuamente e acionará scripts em blocos dependentes.

Leia Também  # 24: Teste, teste, teste ... esses binários do R 4.0.0 com Ubuntu e Rocker

Para parar o bloco de pulsação, o arquivo gerado deve ser excluído e o script deve parar de gerar o arquivo.

Em outras postagens, demonstraremos outros padrões de design que usamos em nosso fluxo de trabalho de análise de dados. Este primeiro exemplo já mostra como é simples introduzir a lógica de programação usando apenas dois tipos de conexões para modelar o fluxo de controle, em vez de vários tipos de blocos como feito em algumas outras plataformas.

As coisas se tornam muito mais simples. Em vez de pensar em arquitetura de programação, fica-se livre para pensar sobre os dados conforme a complexidade da programação desaparece.

###



cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br