[SP-pm] Design de Aplicações Web, como é feito?

Blabos de Blebe blabos at gmail.com
Tue May 24 22:01:43 PDT 2011


Resumidamente e simplificando muito, uma aplicação web é um programa
que funciona segundo os princípios do protocolo http.

https://github.com/blabos/Docs/wiki/Protocolo-HTTP

Ao acessar uma página na internet, você tem um cliente (browser) que
faz uma requisição ao servidor. Este por sua vez, recebe a requisição,
processa e gera uma resposta para o browser, normalmente html. O
browser então faz o download dessa resposta e renderiza para você.

Portanto, existe o lado cliente e o lado servidor.


O lado cliente é responsável por "chamar" a página e renderizar a
resposta, que normalmente contém html, javascript, css, etc.

No lado servidor, pode haver qualquer coisa pra processar a
requisição, de Perl a assembly, desde que respeitado o http. Conhecço
casos de aplicações web em C++.

Python, Perl, PHP, C, C++, Lisp são linguagens que normalmente rodam
no servidor, processando a requisição e gerando a resposta. Você pode
fazer isso da forma que achar melhor. Existem entretanto, padrôes e
convenções amplamente aceitas no mercado. O MVC é uma delas.

O MVC é uma forma de organizar o código do lado do servidor, separando
o que é dado, o que é processamento e o que é visualização, de forma
que uma equipe possa trabalhar em paralelo, entre outros benefícios.
Não é a única forma de fazer, mas tem-se mostrado uma boa forma de
fazer.

PHP e Perl antigos eram uma desgraça, pois você misturava html com
SQL, com validação de parâmetro, com cookie, com o diabo a quatro.
Funciona. Mas na hora de dar manutenção vc sofre.

MVC é o que chamamos de padrão de engenharia de software. Fazendo uma
analogia, vc pode construir uma casa com paredes redondas e fora do
prumo, mas o padrão é ter paredes retas com Π/2 radianos entre si.

Catalyst e Mojolicious são frameworks, ferramentas que te ajudam a
construir uma aplicação. Com eles vc vai ter facilidades para montar
seu piso, paredes e teto, de acordo com a necessidade da sua
construção.

Os frameworks normalmente implementam as partes repetitivas, chatas e
genéricas do ato de fazer uma aplicação, enquanto que o seu código vai
implementar os dados, a lógica e a cara específica da sua aplicação.

Ao invés da bitola do vergalhão da fundação você vai se preocupar com
a cor, o tamanho, quantos quartos, etc vai ter a sua casa.

Você já deve ter notado que pra dominar esse processo você vai
precisar aprender sobre várias "camadas" de tecnologia. Entretanto dá
pra começar com um pouquinho de cada e ir se aprofundando. Você não
vai precisar de um PhD pra fazer um site, mas quanto mais souber, mais
fácil/rápido/barato fica.

Note que assim como na construção, onde há operários especializados
pra cada tarefa, (pedreiro, carpinteiro, vidraceiro, etc) é normal ter
vários especialistas trabalhando numa aplicação, como DAs, DBAs,
programadores, designers (design é a coisa, designER é quem faz
design), testers e assim por diante.

Imagina se fundação, teto, encanamento e fiação fossem sendo
adicionados aleatoriamente e misturados. Hum, mas eu queria essa
lâmpada um palmo pra direita. Sinto muito, vou ter que quebrar o piso,
tirar a torneira do banheiro e por na sala.

Por isso a importância dos padrões, facilitados por frameworks.

Espero ter dado um pequeno overview, abusando da licença poética.

Qualquer coisa, só falar.

[]'s

2011/5/24 Teddy Hammer <teddyhammer em hotmail.com>:
> Ae galera!
> Vcs comentaram sobre Mojolicious e o CatalystFramework. Dei uma olhada por
> cima e não sei se entendi o que realmente eles fazem.
> O código deles é embutido dentro do HTML ou eles fazem o Designer da página,
> por exemplo, de um formulário de cadastro, como por exemplo o DreamWeaver
> faz?
> Se não for, como vcs fazem o desenvolvimento (tipo como faz um Web Design !)
> das páginas? Vcs usam qual ferramenta pra isso?
>
> Alguém pode me explicar como isto eh feito?
>
> =begin disclaimer
>   Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>  SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>
>


More information about the SaoPaulo-pm mailing list