[Cascavel-pm] Controle de processo em perl

kleber payback em oi.com.br
Quinta Maio 15 05:54:15 PDT 2008


Caro Luis ,

Aceito suas críticas sem nenhum constragimento pois sei que é bem 
intencionada.

De fato possuo sete aplicativos ou sistemas em ambiente cobol / cics ( 
maiframe ) que devem totalizar aproximadamente 850 programas.
O que estou tentando é adaptá-los ao ambiente cliente-servidor com 
tecnologia da internet ( html , cgi , etc ).
Fiz um piloto com um aplicativo ( sistema de contabilidade ) e estou 
avaliando suas repercussões.
É evidente que se tivesse que desenvolver todos estes sistemas , em outra 
plataforma , não sofreria estas restrições que deformam a solução entretanto 
o tempo de resposta seria infinitamente maior.
A conversão destes sistemas está sendo feita por mim e mais dois amigos e 
parece ser razoável preservar a solução cobol pois além de estar pronta 
possuimos alguma experiência neste ambiente ( melhor tempo de resposta e 
facilidade na manutenção ).

O perl , neste contexto sistêmico ,  tem uma atuação bastante limitada
( sem nenhum demérito á linguagem ) ,  sendo o cobol a parte central da 
solução
 ( já esta toda programada ).

Pesquisando o assunto controle de processo ,  deparei-me com uma função em 
perl chamada waitpid( ) que controla a execução de procesos.
Não consegui entender a tecnica de funcionamento desta função.
Você conhece esta função ??????????????

Mais uma vez agradeço a atenção dispensada ,
kleber

----- Original Message ----- 
From: "Luis Motta Campos" <luismottacampos em yahoo.co.uk>
To: "Cascavel Perl Mongers" <cascavel-pm em pm.org>
Sent: Wednesday, May 14, 2008 5:12 PM
Subject: Re: [Cascavel-pm] Controle de processo em perl


Caro e caríssimo Kleber

Estou escrevendo este parágrafo aqui em cima depois de ter escrito,
reescrito e relido tudo duas vezes. Infelizmente, eu não tenho outra
alternativa a não ser continuar sendo honesto e sincero com você.

Você não vai gostar muito do que você vai ler daqui para baixo. Eu
recomendo a você que se acalme, tome uma chávena de chá, e leia sem
emoções fortes.

Eu gostaria que você considerasse isso como uma grande oportunidade de
dar uma virada na sua carreira e na forma como você pensa sistemas. Mas
eu não posso obrigar você a fazer isso. Posso apenas aconselhar e
esperar pelo melhor.

Por favor não leve à mal o que eu escrevi. Eu o fiz de boa vontade, com
intenção legítima de ajudar, e gastando muito mais do meu tempo e da
minha paciência do que eu normalmente faria - estão aí os meus amigos e
conhecidos da lista que não me deixam mentir.

kleber wrote:
> OK Luis, mais uma vez agradeço sua atenção.

Sem problemas. É sempre um prazer poder ajudar.

> Você entendeu corretamente. O perl faz a interface entre o cliente e
> o aplicativo cobol. Sobre suas indagações informo-lhe que : - Toda
> crítica realizada pelo javascript é também realizada no servidor (
> cobol ) portanto existe redundância na função de validação de dados.

Isso quer dizer dois lugares diferentes para dar manutenção, e, como o
sistema não tem público muito grande, pode passar sem validação no JS.
Desculpe falar assim, mas eu considero isso erro de projeto.

> - Não sei se o cobol lê e grava na entrada padrão do sistema ( vou
> pesquisar este assunto ) entretanto já escrevi mais de 100 scripts em
>  perl e gostaria de preservá-lo  na medida do possível )

Kleber, eu não quero deixar você chateado, mas, depois de olhar o teu
código, eu recomendo fortemente que você jogue tudo fora, compre o
"Algorítmos + Datos = Programa" do Niklaus Wirth, e comece novamente.

O código que você escreveu até agora é um pesadelo de manutenção, e vai
te dar trabalho desnecessário e muitas dores-de-cabeça num futuro muito
próximo.

Eu sou um engenheiro de software com 12 anos de experiência, e já
trabalhei em sistemas em 4 países diferentes. Por favor siga o meu
conselho, você apenas tem a ganhar.

> Nesta oportunidade cabe salientar que o ambiente sistêmico é
> multi-usuário porém a execução é mono-tarefa ( existem mais de 100
> rotinas que podem ser executada simultaneamente porém cada rotina
> deve ser executada uma de cada vez ).

Kleber, novamente, eu não quero deixar você chateado, mas isso não
existe - teus usuários não vão gostar de saber que o sistema tem esta
restrição. Este tipo de aproximação morreu com os sistemas monousuários,
mais de 20 anos atrás.

> Para cada programa cobol existe um script perl que captura os dados
> fornecidos pelo usuário para processamento pelo cobol.

Por favor não me leve à mal, Kleber. Eu realmente não quero chatear
você. Mas qualquer engenheiro de software desta lista vai confirmar para
você que a tua abordagem do problema é desestruturada, não facilita
reuso de código, vai pedir muita manutenção repetida em muitos pontos
diferentes do sistema e não é aconselhada para o tipo de problema que
você tem.

> Os dados capturados são gravados em um diretório específico e único
> no qual o programa cobol o processará. ( pôr exemplo , o usuário ao
> cadastrar um departamento , acionará uma rotina perl que reside em
> c:/payback/tabelas/depto , que captura os dados fornecidos pelo
> usuário no formulário , grava o arquivo de dados no diretório
> c:/payback/tabelas/depto , executa o programa cobol que dá manutenção
>  nesta base de dados e gera um arquivo html para enviar ao usuário o
>  status do processamento.

Mais uma vez me desculpe. Esta é a pior arquitetura de sistemas que eu
vi este ano (já vi muita coisa feia, acredite). Eu recomendo a você que
reconsidere, jogue fora o que você escreveu até agora e que não entrou
em produção, e comece a desenhar o sistema novamente. Você precisa de
ajuda, meu amigo. Mas o teu sistema é relativamente simples de consertar.

> - A título de exemplificação estou enviando-lhe em anexo dois
> arquivos : 1) index.plx - Este scritp perl é o primeiro a ser
> executado pelo sistema ( autentica o usuário ) e sua  codificação
> está mais ou menos padrão com as demais rotinas perl do sistema. Nota
>  - como disse possuo pouca experiência em perl

Kleber, eu insisto. Se todo o teu código está como estes programas, você
precisa de ajuda. Não continue construindo este sistema. Você tem muita
sorte de conseguir fazer isso funcionar.

Eu estou impressionado, faz mais de 10 anos que eu não vejo alguém usar
programação com GOTOs e sem estruturação. Você é esforçado, mas está
faltando orientação e /know/-/how/.

Este sistema é absurdamente complicado, para o que ele se propõe a
fazer; ele é ineficiente, inseguro, está incorretamente implementado e
não segue os padrões mínimos de qualidade de um sistema de software
implementado em Perl.

É impressionante até que você tenha conseguido implementar isso usando a
linguagem - honestamente, eu não vejo coisas assim desde que eu parei de
escrever BASIC, 11 anos atrás.

Por favor converse com o seu supervisor. Explique que você mostrou o seu
sistema para um amigo que é engenheiro de software, e mostre os emails
que a gente trocou. Ele vai ser compreensivo, pode acreditar.

Você é esforçado, tem muita capacidade. Mas precisa de um bom
treinamento em técnicas modernas de programação e precisa aprender a
usar Perl da maneira correta.

> 2) idxrauto.js - Estando o usuário autorizado , o cobol gera este
> arquivo de autorização que será encaminhado , pela rotina perl , ao
> solicitante.

Javascript para transportar autorização e autenticação de usuários no
sistema é proibitivamente inseguro. Eu aconselho você fortemente a não
usar esta solução. Ela é inerentemente insegura e muito, mas muito
simples de ser burlada.

> Nota - Todas as rotinas que escevi em perl estão funcionando
> corretamente e não apresentam problemas. O meu temor esta na forma
> como individualizei a execução das rotinas em perl ( ver script em
> anexo index.plx ) . Me parece uma solução frágil ??????????????????

Sim, Kleber. Eu lamento que seja eu a te dizer isso, mas a tua solução é
imensamente frágil, em vários aspectos. É praticamente uma bomba-relógio
esperando para desmantelar a tua vida e a tua carreira profissional.

Por favor, eu estou implorando, não permita que este sistema vá para
produção. Ele precisa ser re-projetado e reescrito corretamente, antes
de poder aparecer em público.

Desculpe pelas notícias ruins.
Eu estou à disposição para mais informações, se você estiver interessado.

Como a minha opinião apenas não é o bastante, eu recomendo a você que
escute mais opiniões da lista. Tem muita gente muito melhor qualificada
do que eu aqui.

Putamplexos.
-- 
Luis Motta Campos (a.k.a. Monsieur Champs) is a software engineer,
Perl fanatic evangelist, and amateur {cook, photographer}
_______________________________________________
Cascavel-pm mailing list
Cascavel-pm em pm.org
http://mail.pm.org/mailman/listinfo/cascavel-pm




Mais detalhes sobre a lista de discussão Cascavel-pm