Ciro Feitosa

Blog

Como desenvolver melhor na Web

Segunda-feira, 02 de Janeiro, 2006 | 45 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.


45 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

Gravatar para bred#34 | bred disse:

i say one thing buy hydrocodone 927 buy adipex 01789 lipitor 8-]] buy pure ephedrine nmjbk cialis online 7386 order levitra ipfhg buy ativan 8-]] clonazepam >:-]]] diazepam addiction
0368 ambien no prescription otlfhm

Gravatar para sylvia#35 | sylvia disse:

it\'s nice site adipex addiction >:[ cialis free samples ogsshc addiction vicodin
dhyrh tramadol hcl wuxdgn phendimetrazine 35 mg 8-PP phentermine addiction
dqnd ephedrine products
zav discount ambien SmileyDD hydrocodone without prescription
jhm diet meridia qvizhq

Gravatar para order#36 | order disse:

8ec52e3dc4 diet meridia 25e40 clonazepam online 4d419 ephedrine for sale 5014e purchase lipitor 11cdb clonazepam 60f00 order celexa 63695 buy tramadol online fdfff 58364 thyroid 4d187 zolpidem addiction a60a6 meridia pills 46424 purchase valium c5075 purchase lorazepam f028f order viagra 4812c online tramadol 045a1

Gravatar para tramadol#37 | tramadol disse:

fbaba71e56 ephedrine online 456e9 8aaf3 purchase hydrocodone 5bdd7 0a029 diazepam pills 0c417 xanax d6fbb nolvadex addiction 89a52 da6ee 31162 purchase zolpidem c4396 5275d 7ff5c xanax addiction a7f22 buy lorazepam online 1dd9f ee0f4

Gravatar para cheapest#38 | cheapest disse:

5163ef9037 34edb adipex addiction 7129b 5e6dc cheap codeine 8b15a generic celebrex 24480 adipex p c56f7 buy diazepam e55a4 1fe64 order paxil e0e1f adipex prescription 4564e 27417 tramadol no prescription dd3e5 4cd91 generic cialis ed515 celexa online 95654

Gravatar para generic#39 | generic disse:

fe190978b5 carisoprodol pills 3e8a6 cheapest diazepam 92b7b buy ephedrine 0c78f b13e0 e05cc buy adipex online 39e1b 50b54 free viagra 5e182 aa2ce 82048 buy meridia e432f celebrex addiction 19cbb online phendimetrazine 81a09 buy phendimetrazine online 0ce41 generic alprazolam 3c09c

Gravatar para order#40 | order disse:

cb30dfea14 order butalbital 2d93c 0967a generic ativan 0bd53 carisoprodol bef5a viagra online 6c1ea ultram pills 8d530 buy butalbital c980c purchase nolvadex e4580 buy alprazolam 49d3d zoloft addiction e3524 365ea klonopin online c3ff7 41f27 levitra addiction ef3e3 klonopin pills 4bdd8

Gravatar para cheapest#41 | cheapest disse:

9f60ce8e58 phentermine b09d5 cheap zithromax c19f8 viagra no prescription c0ff7 purchase paxil 3f47d phentermine online e82b4 buy fioricet online 01c9b a78e6 4a7ae cheapest celexa 88b73 valium pills d9de4 ae322 7d27f prozac pills 54091 208d7 purchase fluoxetine defef

Gravatar para cheap#42 | cheap disse:

8b22c01a35 codeine pills 8a903 order cialis 0b67a alprazolam no prescription 4d9fc propecia addiction b4b21 77a07 generic fioricet 4ac6f dd26e ambien 22bee buy ultram af5aa lorazepam pills 7c828 phendimetrazine pills 0e62f 0f18c 45c19 phentermine no prescription e4702 cialis free samples 0c244

Gravatar para effexor#43 | effexor disse:

3fbabe1748 740d3 clonazepam pills ad684 purchase nexium e1b09 56365 cheapest ativan b648f cheap phendimetrazine 93459 zithromax pills 9c75b 22223 diazepam online e771a generic levitra 56687 adipex sale b6c53 03227 buy levitra online 8eb4f adipex 37.5 775fc generic effexor dd886

Gravatar para cheapest#44 | cheapest disse:

80a9af4068 39678 7ed17 purchase ultram efef0 ambien addiction f6406 e2839 purchase zoloft 4305d purchase carisoprodol 55764 generic zithromax a5bee cheapest ultram bc984 05ebf ativan 039b9 nolvadex 8c36a buy propecia 150df codeine online e986e cheap lorazepam f3f5a

Gravatar para buy#45 | buy disse:

3885faed94 295b8 buy hydrocodone b70e3 order ephedrine de3b1 order soma 57632 59504 deb30 zolpidem 4b42b 9ab2f cheap propecia c7bec cheap zoloft b2a9c 6f5e7 bef0b a935a free cialis samples 82536 bacd5

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-2009 Ciro Feitosa - Todos os Direitos Reservados