Ciro Feitosa

Blog

Como desenvolver melhor na Web

Segunda-feira, 02 de Janeiro, 2006 | 33 comentários | Del.icio.us

Olá pessoal! Começo de ano, quero desejar um Feliz 2006 para todos. Que seja um ano repleto de conquistas. Muita paz e saúde. Neste artigo, pretendo expor um pouco da idéia de como desenvolver de forma produtiva, e ao mesmo tempo, facilitar manutenções.

Faz bastante tempo que acompanho alguns profissionais nesta área, e vejo pecar em alguns pontos. Na Universidade, já ouvia falar de Engenharia de Software, e no decorrer dos meus projetos fui colocando em prática. Observei uma melhora significativa em todo o processo de desenvolvimento, desde os requisitos de sistemas até os testes finais, passando pela documentação geral.

Não vou aqui citar a importância de outros profissionais que podem fazer parte de um projeto, como é o caso de um Analista de Sistemas. Mas é bom que você saiba que, na maioria das vezes, irá trabalhar com pessoas de diversas áreas e formação bem variada.

Este artigo não contém códigos. Não é a idéia geral. Mas pretendo criar outros focando mais aquilo que todo programador gosta: códigos.

Qual linguagem escolher?

PHP, ASP, JSP, ColdFusion, Perl, Python? Muitas pessoas ainda discutem ou até defendem com unhas e dentes a escolha de 1 linguagem. A tal escolha vai depender de vários fatores. Onde o sistema vai rodar (infra-estrutura, arquitetura, sistema operacional, etc.)? Quais as necessidades vitais? Em determinada tarefa, qual oferece a relação desempenho e segurança mais competitiva?

Já vi grandes produtos desenvolvidos sob o uso de diferentes linguagens. Isso pode ser muito bom em alguns aspectos, mas em se tratando de manutenção de código, pode gerar um problema dos grandes.

Dos mais de 10 projetos que já participei, sempre fiz uso do PHP. O PHP é hoje, a linguagem server-side mais usada no mundo todo. Oferece velocidade de execução muito boa, suporte a diversos tipos de SGBD's, flexibilidade de sintaxe, facilidade de aprendizado para futuros usuários que venham a trabalhar no projeto, dentre outros.

Mas o meu papel aqui não é elogiar o PHP, apenas estou demonstrando que com uma linguagem se pode fazer muita coisa (já fiz) e mais abaixo apresentarei uma classe que ajuda muito no desenvolvimento.

Não exagere nos tratamentos

O uso do JavaScript também fará parte de um projeto Web. É ele quem controla o lado do cliente, muito usado por exemplo em tratamentos de formulários. Mas atente para a escrita de um código válido em todos os navegadores. O site brasileiro JSFromHell traz diversos exemplos de scripts bem escritos e eficazes no que fazem, vale a visita.

Muito cuidado para não criar excessos de tratamento no lado do cliente por alguns motivos:

  • Sobrecarrega o processamento do lado do cliente.
  • Reduz a compatibilidade por alguns dispositivos.
  • O cliente pode desativar o uso de JavaScript no browser.

Observando uma dessas afirmações, você observa que o tratamento total sempre deve ficar no lado do servidor.

Ferramentas ajudam

Nem só de códigos vive um desenvolvedor.

Telas do DBDesignerÀs vezes, em projetos de pequeno e médio porte, o próprio profissional se encarregará de projetar o banco de dados. Há bastante tempo que venho usando o DBDesigner da fabForce. O software deixa a desejar em alguns pontos, mas supre muitas necessidades. Possui integração ao SGBD MySQL, exportando e importando tabelas e relacionamentos. Por exemplo, você pode diagramar todas as tabelas e relações direto no DBDesigner e, em apenas 1 clique, exportar tudo isso para o MySQL e começar a trabalhar. Se preferir, ele ainda exporta em SQL para importação em outros SGBD's.

Em ambiente Windows, o MySQL-Front ajuda no gerenciamento das informações e testes de integridade. Via Web, o famoso phpMyAdmin quebra um galho na administração remota.

Melhorando a produtividade

Se você ainda não ouviu falar em Smarty, aconselho a dar uma lida nesta incrível classe de templates. O Smarty te oferece diversos recursos, que depois de fazer uso, vai ser bem difícil não desenvolver (pra não dizer "viver") sem ele (como banda larga e TV por assinatura). Alguns deles (retirado da seção Why Use Smarty):

  • Programação e Layout: como um sistema de templates, a programação e o layout final ficam separados. Isso melhora a relação do programador e arquiteto de interface, os dois trabalham juntos, melhorando a produtividade final.
  • Cache: provê cache dos templates gerados, aumentando a velocidade de execução.
  • Segurança: os arquivos de templates não contém códigos PHP, portanto o designer da aplicação não terá acesso do lado do servidor.
  • Fácil de usar e mudar: os templates possuem sintaxe simples, que facilitará o uso pelo arquiteto de interface e depois a alteração.
  • Funções pré-prontas: diversas funções podem ser usadas nos templates, como por exemplo geração de menus drop-downs apartir de dados de banco de dados por exemplo.

Neste artigo não vou entrar em detalhes de código do Smarty, ficará para outro post.

Webstandards no desenvolvimento

Os Webstandards não poderiam ficar de fora. Falando ainda de produtividade, a separação do código xHTML da apresentação CSS, melhora a relação entre o arquiteto de interface e designer. Indo mais além, uma boa escrita xHTML aumentará também a acessibilidade do produto final.

Imagine que um gerente solicita um produto, ele passa por todas as fases do desenvolvimento, fica pronto, e 1 mês depois precisa-se desenvolver uma versão para PDA por exemplo. O que fazer? Se tiver fora dos padrões, com certeza terá que se criar uma versão nova e direcionada para o dispositivo. Isso demanda mais tempo e claro, mais custo.

É neste ponto que os Webstandards ajuda: reduz custo e melhora acessibilidade. Por que ainda tem gente que insiste em não usar?

Documente

Um dos objetivos para a criação da documentação é o de facilitar manutenções posteriores por você ou por pessoas que venham a trabalhar no projeto. Criar um Diagrama de Entidade e Relacionamento (DER) por exemplo, já é um exemplo de documentação do banco de dados.

33 comentários

Gravatar para Tiago#1 | Tiago disse:

Bem abrangente... Parabéns e continue nesssa linha de desenvolvimento.. Forte abraço amigão.

Gravatar para Tiago algodas#2 | Tiago algodas disse:

Foi ótimo você ter ressaltado sobre as fases do projeto de desenvolvimento, principalmente no que diz respeito a documentação. Documentar é importante para:

> Refactoring (retomada ao codigo para melhora lo ou manutenção)
> Facilidade na retomada de antigas etapas no desenvolvimento.
> Facilita a inclusão de novos requisitos a surgirem durante tempo de vida do projeto.
> Entendimento Total do projeto para toda equipe que trabalha com você
> Facilidade de novos membros adaptar-se ao projeto, ou um novo programador, no caso de sistemas corporativos onde o sistema pertença a organização, sendo assim, tem total autonomia para contratar novos membros a trabalharem n oprojeto desenvolvido por você.

Recomendo:

A Rational sem dúvidas se destaca pela diversidade de ferramentas que dispõe para todo ciclo de vida de um projeto, adaptadas as suas própias metodologias. Apesar da Rational Rose ser um ferramenta poderosa há quem queira mais facilidade e simplicidade para documentação, por isso indico o Poseidon.

Gravatar para Geloca#3 | Geloca disse:

Ciro

Gostei muito do seu artigo,como leiga achei bem accesível a linguagem e o texto sendo explicativo ficou mais fácil entender o objetivo que você quis atingir.Parabéns, vou sempre visitar seu site para está reciclando os conhecimentos da informática.

Um abraço!

Gravatar para Vercilo#4 | Vercilo disse:

Cara, seu artigo esta muito bem elaborado, sem contar que como desenvolvedor voce e o cara... abraçaoo

Gravatar para Aldemir Vieira#5 | Aldemir Vieira disse:

Ciro,

Boa contribuição para a comunidade! Assino em baixo.

Seguir uma metodologia para desenvolvimento é realmente importante, o ciclo de vida do projeto não acaba quando o entregamos, por isso consideramos a documentação um artefato necessário e de grande importância.

Parabéns e bom ano de 2006!

[]´s Aldemir Vieira

Gravatar para CosmeWeb#6 | CosmeWeb disse:

Qual linguagem escolher?
Concordo com você, PHP é a melhor linguagem server-side.

Não exagere nos tratamentos
Tratamento? Validar um formulário em PHP, além de ser melhor, é mais seguro. =)

Ferramentas ajudam
EditPlus é o máximo... (rs)

Melhorando a produtividade
Realizei um projeto em que o programador envolvido trabalhou com Smarty, realmente, é uma maravilha, o resultado final ficou ótimo, as atualizações na estrutura são bem mais rápidas.

Webstandards no desenvolvimento
Seguir os padrões no desenvolvimento de um projeto, para mim (e muitos), é sempre essencial.

Gravatar para Ciro#7 | Ciro disse:

Bem lembrado Cosme, EditPlus é uma excelente ferramenta.

Gravatar para Tiago Medeiros#8 | Tiago Medeiros disse:

Uma boa prática no desenvolvimento web é usar um padrão de arquitetura conhecido como MVC (Model-View-Controller), onde você divide sua aplicação em três grandes grupos: As visões (normalmente as interfaces com usuário), o modelo (o código em si), e o controller (responsável pelo fluxo lógico da sua aplicação).

Gravatar para Ciro#9 | Ciro disse:

Tiago,

A arquitetura MVC é uma evolução do sistema de templates (Smarty) apresentado. Nele (no Smarty), existem apenas 2 camadas - interface e código. É como se a camada de modelo e controller do MVC, se unissem.

Mas é válido sua citação. De grande importância.

Abraço!

Gravatar para Bruno Dulcetti#10 | Bruno Dulcetti disse:

Boa abordagem. Na parte de ferramentas, no projeto final da minha pós eu utilizei o DBDesigner, mas cheguei a mexer tambem no ERWin q eh mais completo. Recomendo também o MS Project, para separação de tarefas, tempo, preços, profissionais, etc...

Sem falar em webstandards que pra mim eh primordial, naum pode deixar de ser utilizado. Smiley

Parabéns

Gravatar para Ciro#11 | Ciro disse:

Bruno,

Bem lembrado. Existem outras ferramentas de modelagens bem melhores que o DBDesigner. Mas eu fiz questão de mostrar o DBDesigner por ser FREE.

Abraço!

Gravatar para Radson#12 | Radson disse:

Cirão,

Parabéns pelo artigo. Muito boa abordagem, creio um bom desenvolvedor tem que seguir essas boas práticas de programação que você citou.

Um forte abraço

Radson

Gravatar para Hélio Costa e Silva#13 | Hélio Costa e Silva disse:

Realmente o PHP é muito bom, porém, eu que iniciei em Java e muito ouvi falar do JSP, e pelo que me parece para grandes aplicações ele bate o PHP, ASP e etc, pois ele é compilado e não interpretado como estes outros modelos server-side.
Pense agora no Orkut! Hoje, ou pelo menos até a época em que eu o usava, ele era escrito em Asp.net, interpretada certo ? Isso foi o maior erro que um programador poderia cometer pois:

1 usuário acessa: 1 nova requisição à base de dados é feita
2 usuário acessa: 2 novas requisições à base de dados
..
1000 usuários acessam: 1000 novas requisições à base de dados...

Então, esse é um dos motivos das falhas constantes no Orkut. Usando JSP poderia ser feita um Pool de conexãoSQL, ou seja:
Quando o primeiro usuário acessar, seria aberta junto 10 conexões e este usuário pegaria 1 delas. Usou ? Ótimo, libera e devolve esse pool para que outro usuário use da mesma forma que ele. O que isso implica ? Simples, apenas 10 conexões estariam realmente abertas, e não 1000 como no outro exemplo. Sem falar que estamos falando de Java não é ? Uma linguagem poderosa, portátil e confiavel.

Agora, falando nas interpretadas, realmente PHP é a melhor!

Sobre a documentação, realmente é importantíssima para o autor original do projeto e para as pessoas que poderão dar manutenção futura na aplicação em questão, mas é uma coisa que muitos ainda não se abituaram a fazer.


Abraços!

Gravatar para Eden Cardim#14 | Eden Cardim disse:

Bem Hélio, o problema que você falou não se deve ao fato da linguagem ser interpretada ou não, se deve à implementação feita no lado do servidor. Todos os sites do porte do Orkut contém uma camada de pooling, caching e equilíbrio de carga, elas podem ser implementadas em qualquer linguagem.

Gravatar para Paulo#15 | Paulo disse:

Cara, exelente artigo. Aprendi bastante.

Gravatar para Ricardo#16 | Ricardo disse:

ah! faltou dizer que é bom adotar um padrão nos nomes... senão vira-tudo-umaBagunça_mesmo%20! Smiley ... acho que isso independe da linguagem e metodologia, deveria ser uma constante, algo mais elementar. abs

Gravatar para Michael#17 | Michael disse:

Gostei... Smiley

Gravatar para JamW#18 | JamW disse:

ótimo artigo, na faculdade estudei sobre engenharia de software várias metodologias, mas atualmente estou pesquisando sobre metodologias específicas de desenvolvimento web.

Quem puder me ajudar com apenas os nomes das metodologias por favor me mande um e-mail, pois estou tentando compilar um conteúdo sobre todas, para que posssa disponibiliza lo a quem interessar.

Parabéns Ciro!!

Gravatar para João Paulo Peres#19 | João Paulo Peres disse:

Parabéns ciro, muito bom o post, so queria tirar uma duvida?

Esse Smarty não existe para windows ?

Abraços galera

Gravatar para Ciro#20 | Ciro disse:

João, o Smarty não é um software Desktop. É uma classe PHP, que roda junto com o servidor web (Apache, por exemplo). O Apache roda em várias plataformas, inclusive Windows.

Gravatar para Nei Rauni#21 | Nei Rauni disse:

Ótimas citações, smarty é realmente muito bom, já não desenvolvo nada sem o smarty, db designer também, ótimo, etc.. falou de uma forma geral de tudo que envolve o desenvolvimento web, em sua melhor prática..

gostei, acredito que é um ótimo artigo para quem está começando na área...

Abraço

Gravatar para Edivaldo Reis#22 | Edivaldo Reis disse:

Excelente artigo!

É um grande exemplo de desenvolvimento de sistemas web.

Gravatar para Bruno#23 | Bruno disse:

Excelente artigo!

Gravatar para Daniel#24 | Daniel disse:

Ciro, o smarty pode ser usado com o php4?

Parabéns pelo artigo.

Gravatar para Ciro#25 | Ciro disse:

@ Daniel:
Sim, o Smarty pode ser utilizado com PHP 4.

Gravatar para Venancio Mesquita#26 | Venancio Mesquita disse:

Bendito seja, essa matéria !!!
Muito boa mesmo! Tirou a maioria de minhas dúvidas!

Gravatar para carlos#27 | carlos disse:

voce é muito bom, gostaria de pergunta para vc como cadatrar fotos no banco de dados mysql e como fazer cadastro de noniticias no myadmin .obrigado carlos Smiley

Gravatar para Antonio Carlos#28 | Antonio Carlos disse:

Achei muito interessante esse blog !!!! más estou precisando de informções sobre a evolução cronológica de desenvolvimento para web, tipo uma tabela que mostra essa evolução de tempos atráz até os tempos atuais se puder mandar para o meu e-mail seria de agrado!!!
obrigado Carlos

Gravatar para higino menezes#29 | higino menezes disse:

o php e o melhor que existe estou trabalhando com ele e e muito simples portanto se e veras resultados positivos

Gravatar para Daniel Mendonça#30 | Daniel Mendonça disse:

Todo sistema produzido não depende unicamente da linguagem utilizada mas da capacidade de desenvolvimento de cada um. Não adianta tentar programar em ASP, PHP ou qualquer outro se não se não entender que o mais importante de tudo, (nenhum sistema se cria e trabalha sozinho, ele só faz o que se manda fazer) sempre tem uma pessoa responsável por ele. Não devemos nos prender a recursos, assim não a nada que não possamos fazer.

Gravatar para Rafa Soares#31 | Rafa Soares disse:

@ Hélio Costa e Silva:

ASP.NET é compilado (o .aspx é só a marcação em HTML, o código server-side está todo em DLLs). Dá para mandar descompilado e o servidor compila tudo na primeira execução, nas subsequentes já vai estar compilado.
Mas todo programador que se preze manda tudo compilado para o servidor, eu acho. Smiley

E Ciro, parabéns, muito bom o texto!

Gravatar para ludimar guerra#32 | ludimar guerra disse:

eu gostaria de saber com desenvolver codigos em PHP pois estou criando um site e estou com esta dificuldade, sera que você podera me ajudar ficarei muito grato pela sua ajuda.

Gravatar para André Leitão#33 | André Leitão disse:

Muito bom, Ciro. Parabéns!

Estava difícil encontrar o que eu queria sobre o assunto que procurava, e este post atendeu minha necessidade.

Obrigado e siga em frente

Um abraço

Deixe o seu comentário

As imagens que aparecem são Gravatars. Ao registrar um, sempre que comentar em algum blog que suporte essa funcionalidade, sua imagem aparecerá ao lado. Se você ainda não tem um gravatar, crie aqui.





arrow exclaim question idea biggrin confused cool cry eek evil lol mad mrgreen neutral razz redface rolleyes sad smile surprised twisted wink




English Version © Copyright 2004-2008 Ciro Feitosa - Todos os Direitos Reservados