[SP-pm] [was: Validar session no Catalyst] Compartilhando experiências com frameworks web em produção

Geovanny Junio :: eutsiv geovanny at eutsiv.com
Fri Jul 15 04:20:18 PDT 2011


2011/7/15 Nelson Ferraz <nferraz at gmail.com>

> 2011/7/15 Hernan Lopes <hernanlopes at gmail.com>:
> > catalyst é perfeito...
>
> Se ele é perfeito, significa que não pode ser melhorado. Eu me recuso
> a pensar dessa maneira.
>
> E se ele *não é* perfeito, a questão que fica é: como pode ser
> melhorado? Todos nós sabemos -- e eu sou o primeiro a admitir -- que o
> Catalyst é extremamente flexível e poderoso. Qualquer melhoria nessa
> área trará apenas ganhos marginais, e não nos ajudará a atingir a
> ubiquidade. (Se é que este é o nosso objetivo.)
>
> > depois de trabalhar com .net por 1 ano e pouco,
> > tive aula de struts na faculdade e te confesso que fiz o trabalho final
> em um final
> > de semana após a primeira semana de aula...  acabei indo estudar e
> trabalhar um
> > pouco com COBOL em uma oportunidade de estágio que me apareceu... depois
> > dessas experiências estava me formando em ciência da computação e o
> assunto
> > do momento eram "frameworks"
>
> Você estudou ciência da computação, tem experiência com .Net, PHP, e
> até COBOL. Definitivamente não é o público-alvo que me preocupa.
>
> Aliás: posso estar enganado, mas a maioria daqueles que defenderam o
> Catalyst nessa thread estudam (ou estudaram) Ciência da Computação.
>
> Vamos pensar sobre isso.
>
> E aqui eu peço um favor: não entrem em modo de defesa automático, não
> tentem proteger o seu framework preferido; ajudem-me a identificar
> falhas, pontos que podem ser melhorados.
>
> Eu quero saber como é que o sujeito que *não* estudou computação e mal
> sabe HTML -- ou seja, 99% da população -- vai usar o Catalyst.
>
> Vamos fazer o seguinte exercício: uma página web simples, com um
> formulário que ao ser enviado responda "Hello, $nome!". É assim que a
> maioria das pessoas vai tomar o primeiro contato com o seu framework.
>
>
> 1) PHP
>
> Abra um editor de texto e salve estes dois arquivos, em qualquer lugar:
>
> ==== index.php =====
>
> <form method="post" action="hello.php">
>  <input type="text" name="name">
>  <input type="submit">
> </form>
>
> ==== /index.php =====
>
>
> ==== hello.php =====
>
> <h1><?php echo( $_POST["name"] ) ?></h1>
>
> ==== /hello.php =====
>
> Isso é tudo. Dois arquivos, em qualquer lugar, e está funcionando.
>
>
> 2) Mojolicious::Lite
>
> ==== hello.pl =====
>
> #!/usr/bin/perl
>
> use Mojolicious::Lite;
>
> get '/' => 'index';
>
> post '/hello' => sub {
>    my $self = shift;
>    my $name = $self->param('name');
>    $self->stash( name => $name );
> } => 'hello';
>
> app->start();
>
> __DATA__
> @@ index.html.ep
> <form method="post" action="/hello">
>  <input type="text" name="name">
>  <input type="submit">
> </form>
>
> @@ hello.html.ep
> <h1>Hello, <%= $name %></h1>
>
> ==== /hello.pl =====
>
> Execute o programa com: ./hello.pl daemon
>
> Isso é tudo. Um arquivo, em qualquer lugar, e está pronto.
>
>
> 3) Catalyst
>
> Vou seguir o tutorial em
>
> http://search.cpan.org/~bobtfish/Catalyst-Manual/lib/Catalyst/Manual/Tutorial/02_CatalystBasics.pod
>
>    $ catalyst.pl Hello
>    created "Hello"
>    created "Hello/script"
>    created "Hello/lib"
>    created "Hello/root"
>    ...
>    created "Hello/script/hello_create.pl"
>    Change to application directory and Run "perl Makefile.PL" to make
> sure your install is complete
>    $ cd Hello
>
>    $ script/hello_create.pl view HTML TT
>
>
> Open the lib/Hello/Controller/Root.pm file in your editor.
>
>    sub index :Path :Args(0) {
>        my ( $self, $c ) = @_;
>
>        $c->stash(template => 'index.tt');
>    }
>
> Create a root/index.tt template file (put it in the root under the
> Hello directory that is the base of your application).
>
>    <form method="post" action="/hello">
>        <input type="text" name="name">
>        <input type="submit">
>    </form>
>
> ==== Neste ponto eu precisei buscar na documentação como obter um
> parâmetro do request ($c->req->params), pois a informação só aparece
> duas páginas do tutorial adiante - WTF???? =====
>
>    sub hello :Path :Args(0) {
>        my ( $self, $c ) = @_;
>
>        my $name = $c->req->params->{name};
>
>        $c->stash(
>            name => $name,
>            template => 'hello.tt',
>        );
>    }
>
> Create a root/index.tt template file (put it in the root under the
> Hello directory that is the base of your application).
>
>    <h1>Hello, [% name %]</h1>
>
>
> Isso é tudo... pelo menos eu acho, pois não consegui instalar o
> Catalyst no meu Mac [one dependency not OK
> (MooseX::Role::WithOverloading)]. WTF?!?!?!?!?!!
>
> Espero que vocês consigam entender a minha frustração. Imaginem um
> usuário iniciante, com pouca experiência em Perl!
>

Eu fico sem graça de opinar pois não colaboro com a comunidade, mas, qual o
sentido de deixar o Catalyst fácil para 99% das pessoas ( as que mal sabem
HTML )? Essas pessoas querem é produtos prontos: Wordpress, Joomla,
Openbravo, etc....

Acho que a discussão na verdade é aquela velha: "Como angariar novos
seguidores para Perl?" - e penso que a resposta também é: Produtos.

O problema que enfrentamos é que a comunidade é formada em sua maioria de
pessoas com perfil de cientistas da computação, então a galera prefere
escrever coisas mais core.

O pessoal aqui já faz demais - [ workshop, equinocio, yapc ] - ( para ser
sincero eu não faço nada para a comunidade atualmente ), mas acho que falta
definirem um produto e trabalharem nele, de preferência algo mais
enterprise, tipo um CRM.

abs,


>
> []s
>
> Nelson
> =begin disclaimer
>   Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20110715/65d19c63/attachment.html>


More information about the SaoPaulo-pm mailing list