[Cascavel-pm] Controle de processo em perl

Luis Motta Campos luismottacampos em yahoo.co.uk
Quarta Maio 14 13:12:11 PDT 2008


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}


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