sábado, março 03, 2007

Frameworks

O mundo dos programadores é cercado de palavrinhas estranhas desde o começo da carreira. Para programadores autodidatas (como eu), muitas vezes, entender estas palavrinhas é uma tarefa um tanto quanto difícil, principalmente quando não se acha uma definição para elas no seu dicionário, que nunca o havia deixado na mão (até então) :p


Ultimamente tem-se falado muito em utilização de frameworks. Frameworks para desenvolvimento em PHP, em javascript e para ambos ao mesmo tempo; frameworks baseados no padrão MVC, frameworks com ORM (Object Relational Mapping – essa faz parte de um outro mundo obscuro na programação: as siglas), Active Record, etc.


Mas afinal de contas, o que diabos é um framework?

Joãozinho: Hum, ham, é um conjunto de classes que resolvem cada uma um problema específico, evitando assim que o programador escreva muitos códigos?


Aeh Joãozinho, finalmente algo que presta hein!


Mas hoje em dia, um framework tornou-se mais do que uma série de classes que nos ajudam a resolver um problema específico. Um framework hoje, mais do que ajudar a resolver problemas, dita uma forma específica, padronizada de resolvê-los.


Assim o programador pode se desligar das decisões de como uma determinada tarefa será aplicada, como realizar o acesso aos dados, de que forma exibir estes dados, etc. Tudo o que o programador precisa saber é como resolver o seu problema. O resto, é por conta do framework.


Nos dias atuais, onde o tempo controla a vida das pessoas e das organizações, qualquer que seja a ajuda para poupar tempo será bem-vinda. Não poderia ser diferente com os frameworks. Desenvolvedores de todas as partes do mundo discutem diariamente sobre o uso de frameworks, qual usar, por quê usar, por quê não, quando usar, etc. E estas discussões estão muitas vezes pautadas nas reuniões para implementação de projetos dentro das empresas também.


As organizações precisam poupar o máximo de tempo, mesmo que para isso, as vezes, seja necessário se perder um pouco do desempenho dos sistemas que se desenvolve. E é essa a tarefa de um bom framework: poupar o máximo de tempo possível de um programador.



Mas nem sempre os frameworks irão realizar com sucesso a sua árdua tarefa, principalmente se forem mal escolhidos para determinado projeto. É necessário saber com precisão o que será necessário desenvolver para saber a quem/que recorrer. Além disso é necessário saber também as peculiaridades de cada framework disponível no mercado (ou pelo menos os mais famosos) para conseguir prever os problemas oriundos da adoção deste framework, conseguindo assim subsídios suficientes para a escolha do melhor.


Para nós, programadores PHP, há uma infinidade de frameworks. Eu, particularmente, recomendo os baseados no Ruby on Rails, framework para Ruby que “revolucionou” a forma como se programa para a web. O que mais me agrada é o CakePHP, mas temos ainda o Symphony, o Zend Framework, o PHP on TRAX, entre outros facilmente encontráveis pelo google.


Para você que precisa decidir qual deles escolher, este link pode ser de grande ajuda: http://www.phpit.net/article/ten-different-php-frameworks/.

Ele possui uma tabela comparativa com as características de alguns frameworks para PHP disponíveis no mercado.


Até a próxima!

Marcadores: ,

quarta-feira, julho 12, 2006

Transformando seu Ubuntu numa plataforma de desenvolvimento web em php

Muitos desenvolvedores que começam a programar em php trabalham sob a plataforma do tio Bill, e pelas ferramentas que eles têm nessa plataforma, como IDEs, editores, manipuladores de BD, entre outros, elem preferem não migrar para o GNU/Linux.

Não estou aqui para criticar essas pessoas, pois eu também comecei a programar no windows, já que não tinha acesso a internet com o linux, e nem tinha certeza de que conseguiria configurar as coisas no linux como eu conseguia no windows.

Mas uma vez que eu passei a programar no GNU/Linux, e tenho muito a agradecer por isso, eu mantive meu nível de produção muito mais elevado, isso devido, principalmente, à velocidade que eu tenho disponível no GNU/Linux, e à qualidade e infinidade das ferramentas de desenvolvimento disponíveis.

Vou tentar apresentar algumas dessas ferramentas, e espero com isso, mostrar que é possível sim migrar para o GNU/Linux e manter sua produtividade, e, com uns dias de experiência, atá dobrá-la, principalmente no que tange ao desenvolvimento em PHP. Para isso vou utilizar a distribuição Ubuntu (por estar "na moda" nesse momento), o php5, o apache2 e alguns editores.

**Como não é o escopo desse post, eu não vou descrever os passos para a instalação do Ubuntu, e vou considerar que você o tenha istalado e pronto pra conectar-se à internet.

Preparando o ambiente:
Para que possamos trabalhar e testar nossos scripts no GNU/Linux, teremos que instalar nossos velhos conhecidos: PHP, Apache e MySQL.
Para isso, edite o seu source-list, para poder baixar o trio infernal.
Você vai, basicamente, descomentar (retirar o símbolo # da frente) as linhas onde há algo como deb http:// ... e algo como deb-src http:// ...
feito isso, abra o synaptic (Sistema > Administração > Gerenciador de Pacotes Synaptic), digite sua senha, e clique no botão Recarregar.
Quando o processo tiver terminado, clique na área onde se vê vários pacotes e digite apache. O sistema de busca vai marcar o apache, então você marca a caixa de seleção para instalá-lo. Repita o mesmo para o PHP5, e o MySQL (para o mysql você deve marcar o mysql-server, e o mysql-client). Ao marcar esses pacotes, será aberta uma janela indicando que ele depende de outros programas e perguntando se você deseja que eles sejam instalados. Clique em marcar e eles serão instalados (se você clicar em cancelar, o pacote não será instalado).

Esses tres programas nós já conhecemos, mas precisamos de muitas outras coisas no windows para conseguir rodar nossos scripts, como as extensões do php. Para isso você deve procurar no synaptic pelas suas extensões, que seguem o padrão PHP{versão}-{nome da extensão} (ex.: php5-mysql)
Eu aconselho instalar, basicamente, as extensões php5-gd, php5-mysql, php5-cli, e php5-curl.

Como muitas vezes nós precisamos visualizar nossos dados no MySQL e nem sempre queremos fazê-lo no phpmyadmin, eu aconselho a instalação do mysql-query-browser.

Se você trabalha com o PEAR, você também pode instalá-lo pelo synaptic marcando o php-pear.

Bom, temos nosso servidor pronto para ser instalado. Mas nem só de servidor vive um programador. Precisamos também arrumar uns editores bons.

Eu aconselho instalar e testar os seguintes:

> Quanta
> Bluefish
> Scite
> gPHPEdit
> Eclipse (esse você terá que procurar a extensão php-eclipse e instalá-la na unha)
> Emacs (você pode utilizá-lo no modo texto, ou instalar o xemacs, para usar no modo gráfico)

Existem algumas extensões para o quanta que o deixam com cara de IDE, com direito a debugger e tudo mais, mas não me lembro onde achar essa extensão e eu nunca utilizei também, então não posso falar se é boa.

Para aqueles que utilizam diagramas, temos as melhores ferramentas no GNU/Linux:
> Dia (gera diagramas de tudo quanto é jeito. Tem uns tipos que eu nem sabia que existia)
> Umbrello (esse é só para UML, mas é ótimo também, e gera o código automaticamente para php, javascript, C++, JAVA, entre outras)
** Aconselho instalar os dois, pois são relativamente pequenos, e você pode testar e utilizar o que preferir

Àqueles que adoram ficar horas testando suas expressões regulares no browser, o visual-regexp não serve nem de perto, pois os testes ficam muito rápidos. Agora, quem acha esse tipo de teste no browser um saco (como eu) pode instalar. Ele é uma ótima ferramenta para teste de ER.

Quem precisa editar HTML/XHTML também, temos ferramentas ótimas para edição do código, e uma ferramenta muito boa para edição gráfica, mas que ainda deixa a desejar para os fanáticos por DremWeaver. Eu, particularmente, não vejo diferença, já que ambos geram um código embolado, a não ser que você trabalhe com tabelas, pois ai os dois geram um código incrivelemente limpo. Uso a edição gráfica só para agilizar o processo de criação de formulários, o resto, eu faço na mão. Mas vamos aos programas:

> Bluefish (denovo)
> Quanta (denovo) - também tem edição gráfica, mas não é tão boa quanto a do NVU
> Scite (denovo)
> NVU (nesse você pode editar graficamente suas páginas

Quem trabalha com php-GTK, pode usar o Glade para criar suas interfaces.

Quem precisa criar layouts para suas páginas, tem uma ótima opção no gimp, um ótimo prgrama de edição de fotos, mas que pode servir (e serve, com glória) para designers gráficos e para os web-devel-designers.

Bom, então vamos revisar o que temos marcado até agora:
Servidor:
> Apache2 + dependências
> PHP5 + dependências + extensões gd, mysql, cli e curl
> MySQL + dependências + mysql-query-browser
Edição:
> Bluefish
> Scite
> Quanta
> XEmacs
> gPHPEdit
> NVU
Diagramas:
> Umbrello
> Dia
Expressões Regulares:
> Visual-regexp
Edição Gráfica:
> Gimp
Criação de interfaces para GTK:
> Glade

Tendo todos eles marcados, você pode clicar Aplicar e esperar terminar de baixar e instalar.
Atenção: Na hora de instalar qualquer programa no Ubuntu, coloque o CD de instalação no driver, para instalar do cd os programas que estiverem neles, economizando o uso da internet (alguns programas estão no cd e na internet).

Após o processo ter se acabado, você pode abrir o firefox e acessar o localhost.

Para ter a certeza de que está tudo funcionando, crie um arquivo, de preferência com um dos editores que você instalou, com o seguinte:
phpinfo();
?>

e salve em /var/www com o nome de phpinfo.php

acesse esse documento pelo firefox, abrindo o endereço http://localhost/phpinfo.php
Se aparecer a página de configuração do php, está tudo instalado e funcionando perfeitamente. Agora é você testar seus editores e passar a utilizar o seu preferido.

Quem usava um IDE mais avançado no windows, e sentir falta, pode utilizar o ZendStudio (pago), o NuSphere PHPEd (pago) ou o PHPEclipse (plugin para o eclipse, de graça).
São todos muito bons (eu prefiro o ZendStudio) e possuem recursos avançados, como code-complete, debug, entre outras.

Chegamos ao fim do post, e você está com água na boca para experimentar essas delícias todas agora? O que está esperando? Ahh! Não tem o cd do Ubuntu? Você pode baixá-lo no seguinte endereço:
http://www.Ubuntu.com/download/
Sua internet é muito lenta? Você pode pedir o cd pelo site do Ubuntu, mas ele demora de 3 a 4 meses para chegar aqui no Brasil. O endereço é:
https://shipit.Ubuntu.com/
Não gosta do Ubuntu? Você pode baixar o cd do Debian-CDD-BR. É uma distro Debian regional, criada por uma galera de brasucas que têm a manha. O endereço é:
http://cdd.Debian-br.org/project/
Você pode baixar ou pedir o cd pelo telefone de um dos representantes do Debian-CDD-BR na sua cidade. Alguns deles podem cobrar o frete e o valor do cd virgem, mas vale a pena.
Você pode seguir os mesmos passos que eu descrevi para o Ubuntu. O único problema é que a lista de repositórios que vem por default no Debian é menor que a do Ubuntu, mas você vai conseguir baixar os programas acima do mesmo jeito.

Se você mora na grande BH (MG) pode me pedir os cds pelo e-mail charlesschaefer[em]gmail[ponto]com

Até a próxima.

Marcadores: ,