Segunda-feira, 02 de Janeiro, 2006 | 45 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.
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.
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.
Nem só de códigos vive um desenvolvedor.
À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.
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.
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?
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.
Bem abrangente... Parabéns e continue nesssa linha de desenvolvimento.. Forte abraço amigão.
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.
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!
Cara, seu artigo esta muito bem elaborado, sem contar que como desenvolvedor voce e o cara... abraçaoo
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
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.
Bem lembrado Cosme, EditPlus é uma excelente ferramenta.
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).
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!
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
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!
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
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!
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.
Cara, exelente artigo. Aprendi bastante.
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
Gostei...
![]()
ó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!!
Parabéns ciro, muito bom o post, so queria tirar uma duvida?
Esse Smarty não existe para windows ?
Abraços galera
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.
Ó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
Excelente artigo!
É um grande exemplo de desenvolvimento de sistemas web.
Excelente artigo!
Ciro, o smarty pode ser usado com o php4?
Parabéns pelo artigo.
@ Daniel:
Sim, o Smarty pode ser utilizado com PHP 4.
Bendito seja, essa matéria !!!
Muito boa mesmo! Tirou a maioria de minhas dúvidas!
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
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
o php e o melhor que existe estou trabalhando com ele e e muito simples portanto se e veras resultados positivos
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.
@ 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!
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.
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
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
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
DD hydrocodone without prescription
jhm diet meridia qvizhq
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
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
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
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
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
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
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
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
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
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
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.
English Version © Copyright 2004-2009 Ciro Feitosa - Todos os Direitos Reservados