<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Vamos algumas repostas...<br>
<br>
Meu chefe n&atilde;o quer mais saber de Perl, pq ele n&atilde;o consegue profissional
"barato". Ali&aacute;s, ele n&atilde;o consegue profissional nenhum, hehehe<br>
Ele j&aacute; botou v&aacute;rias vezes an&uacute;ncio em jornal pedindo programador Perl,
mas nunca recebeu curriculum. Tenho pena dele se algum dia eu sair da
empresa.&nbsp; <span class="moz-smiley-s3"><span> ;-) </span></span><br>
Ele sabe da qualidade do Perl, mas encontrar programadores de outras
linguagens, como PHP &eacute; bem mais f&aacute;cil e menos caro. Eu tenho um projeto
de ensinar um programador PHP a programar em Perl, at&eacute; pq tem muita
coisa rodando que n&atilde;o vai ser migrada, mas infelizmente a rotatividade
entre programadores &eacute; muito grande. Tinha um programador, muito bom,
que eu j&aacute; estava come&ccedil;ando a dar umas dicas de Perl, mas ele largou
tudo e foi morar na Inglaterra.<br>
<br>
Contando a &eacute;poca que fui estagi&aacute;rio, estou nesta empresa a quase 12
anos.<br>
<br>
Acho que vou seguir o teu conselho e vou ler algum livro sobre isso,
mas em portugu&ecirc;s. Algum dia, pq arrumar tempo &eacute; algo complicado. Mas a
verdade &eacute; que eu n&atilde;o gosto mais de desenvolver sistemas. Futuramente
pretendo ficar apenas com administra&ccedil;&atilde;o de servidores e desenvolver
softwares que ajudem nisso, mas por enquanto n&atilde;o d&aacute; para escolher o que
eu quero fazer.<br>
<br>
Eu divido as telas (que na empresa onde a gente trabalha s&atilde;o
formul&aacute;rios que devem ser preenchidos, validados e enviados ao banco de
dados) em simples e complicadas, pq neste novo projeto as telas simples
(que em geral s&atilde;o a maioria) s&atilde;o geradas automaticamente. Assim, eu s&oacute;
passo para o script qual &eacute; o nome da tabela e mais algum ou outro
par&acirc;metro. Atrav&eacute;s de consultas SQL, o script monta o formul&aacute;rio, v&ecirc; o
tipo de campo e se &eacute; obrigat&oacute;rio ou n&atilde;o e monta toda a regra de
valida&ccedil;&atilde;o, isso tudo autom&aacute;tico. Em tese, toda a regra de neg&oacute;cio eu
estou tentando deixar no PostgreSQL e o script apenas l&ecirc; isso.<br>
<br>
Os formul&aacute;rios complicados (que na g&iacute;ria da empresa chamamos de tela),
n&atilde;o podem ser autom&aacute;ticos pq existem outras regras e sub-formul&aacute;rios.
Por exemplo, telas que tem que calcular quest&otilde;es financeiras, etc. A
vantagem disso &eacute; que eu posso concentrar meu tempo no que realmente
importa e deixar estas quest&otilde;es de design praticamente autom&aacute;ticas.<br>
<br>
Eu penso que n&atilde;o &eacute; ruim ser "colador de c&oacute;digo". Tem muita coisa pronta
na Internet &eacute; s&oacute; procurar um pouco. O que eu fa&ccedil;o &eacute; juntar estas coisas
prontas e gerar algo novo. Isso &eacute; o que eu posso fazer com os recursos
que eu tenho dispon&iacute;vel, pois na empresa onde eu trabalho, eu fa&ccedil;o
praticamente tudo sozinho, desde instalar, configurar e dar manuten&ccedil;&atilde;o
no sistema operacional do servidor, analisar e gerar a base de dados
(de acordo com a analise de processos que meu chefe faz), desenvolver o
software, etc. Para a produ&ccedil;&atilde;o, em geral, tem apenas eu e mais um
designer (agora estamos sem novamente). Neste projeto novo que eu estou
trabalhado tinha aquele programador ajudando, mas ele saiu e por
enquanto n&atilde;o entrou ningu&eacute;m novo. Resumindo: eu trabalho em uma pequena
empresa.<br>
<br>
Eu creio que n&atilde;o &eacute; educado da tua parte criticar os sistemas que eu
mantenho apenas pela quantidade de visitas que eles recebem. Meus
clientes merecem menos aten&ccedil;&atilde;o apenas pq eles n&atilde;o tem tantos
visitantes? Creio que n&atilde;o. A tua experi&ecirc;ncia &eacute; v&aacute;lida para empresas que
precisam trabalhar com este volume de dados, assim como minha
experi&ecirc;ncia vale para quem tem um volume "menor". Este cliente que eu
citei, que tem 10mil visitantes &uacute;nicos por dia &eacute; a uma das maiores
empresas de feiras e eventos do Brasil (talvez at&eacute; seja a maior), ou
seja, n&atilde;o &eacute; uma empresa pequena e eles tem esta visita&ccedil;&atilde;o nos sites
deles. Eu creio que a realidade deles &eacute; mais compat&iacute;vel com a realidade
da maioria das empresas brasileiras (excluindo empresas de
telecomunica&ccedil;&otilde;es, de grandes empresas de vajero, etc).<br>
<br>
Sobre a valida&ccedil;&atilde;o eu j&aacute; respondi para outra pessoa em outro e-mail e
sobre seguran&ccedil;a eu posso afirmar, com 100% de certeza absoluta, que os
sistemas que eu mantenho s&atilde;o mais seguros do que os das Lojas
Americanas, Submarino, Sara&iacute;va, entre outros. Eu me preocupo com isso e
sempre que encontro uma falha nova eu procuro solucionar. Voc&ecirc; est&aacute; me
pr&eacute;-julgado apenas pq eu falei em Javascript. Isso &eacute; um erro recorrente
dos "bons programadores". Relegam Javascript, acham que elas n&atilde;o servem
para nada. Javascript para mim &eacute; algo que uso direto, mesmo antes de
falarem em AJAX eu sempre usava Javascript para valida&ccedil;&atilde;o de dados e
jogar parte do processamento para o cliente. Com isso eu reduzo a
comunica&ccedil;&atilde;o com o servidor e o sistema fica mais "r&aacute;pido" para o
usu&aacute;rio. Nos projetos antigos, a valida&ccedil;&atilde;o no lado do servidor era
feito em Perl, mas neste projeto novo, minha inten&ccedil;&atilde;o &eacute; que a valida&ccedil;&atilde;o
do lado do servidor passe a ser feita pela base de dados.<br>
<br>
Creio que era isso.<br>
<br>
<br>
SDS,<br>
<br>
Luciano<br>
<br>
<br>
<br>
<br>
<br>
Luis Motta Campos escreveu:
<blockquote cite="mid:4811A029.9070907@yahoo.co.uk" type="cite">
  <pre wrap="">ATEN&Ccedil;&Atilde;O: Se voc&ecirc; n&atilde;o gosta de ser criticado, pare de ler este email
aqui. Voc&ecirc; foi avisado.

Luciano Giordani Bassani wrote:
  </pre>
  <blockquote type="cite">
    <pre wrap="">Eu n&atilde;o sei se minha opini&atilde;o vale, pois n&atilde;o sou um programador Perl de
 verdade, mas mais um "colador de c&oacute;digo".
    </pre>
  </blockquote>
  <pre wrap=""><!---->
Isso, lendo o teu email, a gente nota.

  </pre>
  <blockquote type="cite">
    <pre wrap="">Eu assisti a palestra de Catalyst e assisti a palestra de Ruby on
Rails. Eu estou iniciando um projeto de convers&atilde;o de ERP, tamb&eacute;m, mas
&eacute; de MS Access para PHP5. Eu n&atilde;o queria produzir em PHP, eu gostaria
de programar em bom Perl, mas infelizmente meu chefe n&atilde;o quer mais
Perl em projetos deste g&ecirc;nero.
    </pre>
  </blockquote>
  <pre wrap=""><!---->
Eu gostaria de saber por que seu chefe n&atilde;o quer mais saber de Perl. E
gostaria de saber tamb&eacute;m h&aacute; quanto tempo voc&ecirc; est&aacute; trabalhando com seu
chefe... talvez a opini&atilde;o dele esteja muito vinculada &agrave; imagem que voc&ecirc;
projeta do Perl.

  </pre>
  <blockquote type="cite">
    <pre wrap="">A sensa&ccedil;&atilde;o que eu tive &eacute; que estes frameworks s&atilde;o muito chatos e
cheio de "declara aqui, declara ali". N&atilde;o gostei. Eles tiram a parte
boa que eu gosto de fazer, que &eacute; planejar bem a base de dados e a
estrutura do sistema. N&atilde;o gosto muito de ficar escrevendo e validando
telas de cadastro, relat&oacute;rios, etc. Gostaria de algo que fizesse este
trabalho "sujo" para mim.
    </pre>
  </blockquote>
  <pre wrap=""><!---->
Voc&ecirc; obviamente n&atilde;o compreendeu o motivo de se ter e usar frameworks.
Leia Edward Yourdon ("Modern Structured Analisys", Prentice Hall PTR,
ISBN-13: 978-0135986240), e Roger S Pressman ("Software Engineering: A
Practitioner's Approach", McGraw-Hill, ISBN-13: 978-0073019338). A gente
conversa sobre os motivos depois que voc&ecirc; entender do que voce est&aacute; falando.

Por agora, procure seguir os frameworks. Eles concentram e formalizam
mais conceitos sobre engenharia de software do que voc&ecirc;.

  </pre>
  <blockquote type="cite">
    <pre wrap="">Por isso, para este projeto ERP que estou come&ccedil;ando a desenvolver, 
resolvi eu mesmo construir meu framework de uma forma que eu n&atilde;o
precise ficar criando telas, pelo menos n&atilde;o as telas mais simples.
Quando for uma tela mais complexa, n&atilde;o tem jeito. Fa&ccedil;o manualmente
mesmo, faz parte "sujar" um pouco as m&atilde;os.
    </pre>
  </blockquote>
  <pre wrap=""><!---->
Voc&ecirc; pode n&atilde;o estar compreendendo isso, mas est&aacute; escolhendo a pior
alternativa poss&iacute;vel. Ao dividir tuas "telas" (Tela? O que &eacute; isso? Um
ateli&ecirc; de artes pl&aacute;sticas?) em "simples" e "complicadas", voc&ecirc; est&aacute;
comentendo um erro b&aacute;sico: ter dois pesos e duas medidas, ter parte do
seu sistema feito &agrave; m&atilde;o e outra parte gerada automaticamente (e as duas
com a mesma "funcionalidade").

  </pre>
  <blockquote type="cite">
    <pre wrap="">O projeto est&aacute; muito no inicio ainda, mas como bom "colador" de
c&oacute;digo, reuni v&aacute;rios pacotes de desenvolvimento, para desenvolver um
esquema tipo um "kernel" do aplicativo e estou abusando de DHTML.
Acho que o projeto est&aacute; come&ccedil;ando a entrar nos eixos e talvez esta
seja uma dica para voc&ecirc;s.
    </pre>
  </blockquote>
  <pre wrap=""><!---->
A dica &eacute;: "n&atilde;o fa&ccedil;a como eu fa&ccedil;o, ou seus chefes tamb&eacute;m v&atilde;o achar que a
culpa &eacute; da linguagem Perl, que n&atilde;o ajuda nada".

Voc&ecirc; est&aacute; se comportando como um "colador de c&oacute;digo", e ainda por cima
tem orgulho disso. :( Eu lamento dizer, meu caro, mas voc&ecirc; est&aacute; doente,
e precisa estudar muita engenharia de software para n&atilde;o perder o bonde e
terminar aposentado como "colador de c&oacute;digo" breve. Por favor pense em
ler os livros que eu te indiquei, sim?

  </pre>
  <blockquote type="cite">
    <pre wrap="">Eu construi a aplica&ccedil;&atilde;o de tal forma que na tela de grid, s&oacute; preciso
 informar o nome da tabela e o SQL que &eacute; para ser usado no banco. O
resto o pr&oacute;prio c&oacute;digo faz. Na tela de cadastro, eu s&oacute; informo o nome
da tabela (volto a ressaltar, s&oacute; serve para telas simples, telas
complexas, com muitas tabelas tem que codificar "no bra&ccedil;o") e o meu
c&oacute;digo pega os dados do banco de dados e monta o formul&aacute;rio baseado
na defini&ccedil;&atilde;o SQL da tabela. Assim, o c&oacute;digo j&aacute; verifica o tipo de
campo, tamanho, se &eacute; obrigat&oacute;rio, etc, tudo via SQL (estou usando o
PostgreSQL).
    </pre>
  </blockquote>
  <pre wrap=""><!---->
Bom, parece que a escolha da base de dados n&atilde;o foi assim t&atilde;o ruim. Volto
a ressaltar: "tela" &eacute; coisa de atelier de pintura, n&atilde;o de engenharia de
software.

Tamb&eacute;m ressalto outra vez: seu problema &eacute; ter dois pesos e duas medidas:
voc&ecirc; faz teu c&oacute;digo funcionar bem em apenas uma parte dos casos, e
adiciona "cruft" ao sistema quando "resolve na m&atilde;o" os problemas que n&atilde;o
sabe como tratar para as "telas mais complexas".

  </pre>
  <blockquote type="cite">
    <pre wrap="">OBS.: sobre a performance do CGI, eu uso isso em 2 projetos em Perl 
rodando em um servidor Linux, Com v&aacute;rios portais rodando no Apache,
mais PostgreSQL e MySQL juntos, com uma visita&ccedil;&atilde;o de cerca de 10mil 
visitantes &uacute;nicos por dia, e nunca precisei usar FastCGI. A &uacute;nica
coisa &eacute; que eu abuso da valida&ccedil;&atilde;o de dados com o Javascript. Em
contra-partida, este projeto que esta em fase de teste em PHP5, no 
mesmo servidor, tem se mostrado lento, mesmo sendo escrito com boas 
pr&aacute;ticas e eu estar usando PDO, que em tese deveria ser r&aacute;pido. Meu 
servidor &eacute; um DELL Xeon com 3,8GHz e 2GB de RAM (a RAM &eacute; muito 
importante para o servidor web n&atilde;o ficar lento com o SGDB).
    </pre>
  </blockquote>
  <pre wrap=""><!---->
Bom, pequenas observa&ccedil;&otilde;es:

10.000 usu&aacute;rios &uacute;nicos por dia? Isso &eacute; menos de um minuto de trabalho
dos meus sistemas. Eu tenho mais de 4 milh&otilde;es de usu&aacute;rios &uacute;nicos por
dia, e pouco menos de 900 milh&otilde;es de page-hits por dia, nas minhas
p&aacute;ginas. Aqui, se usa ModPerl para as aplica&ccedil;&otilde;es web, e alguma coisa j&aacute;
&eacute; Catalyst. Estamos migrando os sistemas mais novos primeiro, por
quest&otilde;es pol&iacute;ticas.

Sobre validar dados com JS: eu espero que isso seja apenas uma
estrat&eacute;gia para reduzir a quantidade de erros que voc&ecirc; tem de tratar por
HTTP {GET,POST}, e que voc&ecirc; tenha uma estrat&eacute;gia consistente e coerente
de valida&ccedil;&atilde;o implementada nos seus sistemas. De outra forma, teus
sistemas n&atilde;o passam de um brinquedo, e eu n&atilde;o dou nada pela seguran&ccedil;a
das tuas "aplica&ccedil;&otilde;es web".

E n&atilde;o me venha com aquela conversa-mole de que "os sistemas da Intranet
n&atilde;o precisam de seguran&ccedil;a forte". O Gartner Group divulga faz muito
tempo que os maiores ataques contra os dados de uma organiza&ccedil;&atilde;o partem,
em 75% dos casos, de dentro da pr&oacute;pria organiza&ccedil;&atilde;o: funcion&aacute;rios e
ex-funcion&aacute;rios que ainda tem acesso aos sistemas s&atilde;o os principais
respons&aacute;veis por fraude e tentativas de roubo ou destrui&ccedil;&atilde;o de dados.

Espero que isso ajude a mudar a tua forma de ver sistemas, meu amigo.
Cuide-se, estude, e depois conversamos mais.
Putamplexos.
  </pre>
</blockquote>
</body>
</html>