Hi! Do you wanna see the English version?

Blog

Como desenvolver melhor na Web

Segunda-feira, 02 de Janeiro, 2006 | 34 comentários

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:

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):

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.

34 comentários:

Tiago disse:

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

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.

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!

Vercilo disse:

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

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

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.

Ciro Feitosa disse:

Bem lembrado Cosme, EditPlus é uma excelente ferramenta.

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).

Ciro Feitosa 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!

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.  ;)

Parabéns

Ciro Feitosa 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!

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

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!

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.

Paulo disse:

Cara, exelente artigo. Aprendi bastante.

Ricardo disse:

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

Michael disse:

Gostei...  :)

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!!

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

Ciro Feitosa 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.

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

Edivaldo Reis disse:

Excelente artigo!

É um grande exemplo de desenvolvimento de sistemas web.

Bruno disse:

Excelente artigo!

Daniel disse:

Ciro, o smarty pode ser usado com o php4?

Parabéns pelo artigo.

Ciro Feitosa disse:

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

Venancio Mesquita disse:

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

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  :-D

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

higino menezes disse:

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

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.

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.  ;-)

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

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.

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

planilhanoexcel@gmail.com disse:

APRESENTAMOS NOSSO PROGRAMA PARA CALCULAR OS MATERIAIS E ORÇAMENTO PARA CONSTRUÇÃO CIVIL: útil para elaboração de licitação pública ou privada, é uma planilha eletrônica de facílimo manuseio feita no excel, para engenheiros,arquitetos e até leigos. Para mais informações visite o site www.construirnet.com/planilha.htm
(copie o endereço acima e cole-o em seu navegador para visitar o site)












Comente:





Comentário enviado!