Segunda-feira, 02 de Janeiro, 2006 | 33 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
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-2008 Ciro Feitosa - Todos os Direitos Reservados