Olá a todos!

Esses últimos dias, eu estive(e vou continuar) mexendo com o CakePHP. Assim, como o Ruby on Rails(RoR), o Cake implementa um modelo baseado no design pattern MVC.

Na verdade, o cake, é, de certa forma, um porte do Ruby on Rails, para PHP. Digo "de certa forma", porque na verdade não foi um port oficial, mas usou o RoR como inspiração.

A estrutura do projeto é bem semelhante, ele possui muitas facilidades do RoR, tais como:

  • Helpers
  • Componentes
  • ACL
  • Plugins

Com isso, tem-se em mãos, elementos suficientes para fazer o que o Cake(assim como o RoR) se propõe: Desenvolvimento Rápido!

O que me chamou a atenção no RoR e nos seus primos em outras linguagens é o princípio DRY (Don't Repeat Yourself). Isso é uma coisa fantástica, que, a princípio, parece impossível, mas no fim você percebe que é muito real!

Estou bastante empolgado com esse framework, principalmente porque eu gostaria de poder usar o RoR em produção e com o Cake isso fica mais próximo da minha realidade(afinal, eu não tenho um servidor com Ruby para poder usar o RoR, infelizmente).

Enfim, esse foi um relato do meu primeiro contato com o framework. Ainda tou fazendo testes. Estou desenvolvendo uma aplicação com esse framework, e uma coisa eu posso dizer: é rápido fazer o que se precisa fazer!!!

Abraço a todos e até mais!

Olá a todos!

Como alguns já sabem, me casei no dia 05 de novembro, e por esse motivo, esse site ficou um bocado parado.
Um outro fator que fez com que esse site tivesse um bom tempo sem novas atualizações, foi o fato de eu ter começado a trabalhar no SERPRO. Isso tudo tomou bastante meu tempo, e aí o site ficou meio de lado(bem como o Drupal Brasil, sorry :-( )

A boa notícia(ao menos para mim), é que agora eu vou ter um tempinho a mais. Casado e já firmado no novo emprego, vou poder realizar alguns projetos.
Atualmente estou trabalhando em alguns projetos, que listo abaixo:

  • Tradução da documentação do Drupal para português do Brasil
  • Manutenção da comunidade Drupal Brasil
  • Desenvolvimento do sistema de fórum para o Seagull
  • Estudando Ruby on Rails
  • Estudando a implementação do modelo do RoR com o CakePHP

Esses projetos acima, estão andando a passos lentos, pois são muitas coisas pra fazer e pouco tempo, por isso mesmo, resolvi dar um tempo na mudança de blog. Então vou continuar com o b2evolution por um tempo ainda.

Nos meus estudos do CakePHP, acabei me deparando com um desafio: fazer um sistema de blog completo, e não apenas o pequeno exemplo da documentação. Eu sei que isso parece uma coisa ridícula, afinal existem outros sistemas de blog perfeitamente funcionais e consolidados... no entanto eu estou querendo aprender mais sobre o framework, e nada melhor do que uma aplicação real e funcional para aprender.

Na verdade, eu queria fazer essa nova aplicação com Ruby On Rails, mas como meu servidor não suporta, e não estou muito afim de ficar correndo atrás disso, só para satisfazer essa vontade, vou fazer com o CakePHP. Pretendo continuar estudando Rails, mas com mais calma e para projetos futuros.

Por fim, quero dizer que pretendo manter esse blog mais atualizado. Sempre digo isso e sempre acho que vou dar conta... espero dessa vez realmente atualizar.

Abraços

Olá a todos!

Finalmente, dois posts num mesmo mês hehe.

Recebi alguns comentários em um post antigo quando eu falava sobre Ruby On Rails e resolvi criar um novo post aqui para esclarecer minha posição sobre esse framework e sua linguagem.

Há mais ou menos a três meses atrás comecei a conhecer Ruby On Rails, e vi que esse framework tem bastante potêncial.
Como eu trabalho com Web e sou um aficcionado por novas tecnologias, eu não resisti em testar. Vi muita gente falando muita coisa diferente sobre o Rails e decidi eu mesmo tirar minhas conlusões.

No geral eu gostei muito do que vi. Tanto a linguagem quanto o framework são faceis de instalar, a linguagem é realmente muito gostosa e elegante(como o seu autor planejou) e o framework é bastante consistente.
O fato de todo o framework ser escrito fazendo uso de padrões de projeto(Design Patterns) facilita enormemente o desenvolvimento.

Talvez no meu outro post eu tenha deixado parecer que o PHP vai perder força porém quero dizer exatamente o contário, com Rails no mercado vem à tona uma coisa que é evidente para muitas pessoas há muito tempo: sem padrão de projeto, você vai bater cabeça e vai demorar muito mais para desenvolver seus projetos(profissionais).
O PHP é uma linguagem muito abrangente e que possibilita o uso de padrões de projeto. Porém até pouco tempo atrás, poucas pessoas, empresas e grupos faziam uso do PHP valendo-se desses padrões o que levou a projetos realmente lamentáveis(mais uma vez me refiro ao PHPNuke e afins).

Uma coisa que as pessoas às vezes não percebem, é que estamos comparando laranjas com maçãs. O Ruby On Rails é um framework, o PHP é uma linguagem. Não dá para comparar um com o outro. É possível se comparar e ver grandes diferenças entre o PHP e o Ruby(linguagem), mas não o Rails com PHP.

Na minha opinião o maior trunfo do Rails é a agilidade para o desenvolvedor. No entanto isso decorre do fato do uso extensivo de padrões e uma linguagem simples e concisa(Ruby). Se os desenvolvedores PHP começarem a atentar para esse fato(como de fato já vêem fazendo), veremos cada vez mais projetos bons e de rápido desenvolvimento escritos em PHP. Acredito que isso é uma questão de tempo.

Digo isso tudo pois um dos leitores desse site(Rildo Moraes), apontou dois frameworks feitos em PHP que talvez possam exemplificar bem essa situação.

Ainda não tive a oportunidade de testar nenhum dos dois, mas não tenho dúvidas que ambos são bons pontos de partida para começarmos a ver o avanço dos desenvolvedores PHP.

Enfim, acredito que o advento do Ruby On Rails só vem para botar lenha na fogueira e fazer com que a nova revolução da web aconteça de forma mais bem projetada(ao menos é o que eu espero).

Abraços!

Olá!

Outro dia eu estava navegando na Web procurando mais textos sobre acessibilidade e Ajax, e acabei indo parar no site do Ronaldo Ferraz. Ali encontrei um tutorial sobre Ruby on Rails. Como já havia ouvido falar sobre esse framework no site da Collaboraid, acabei dando uma fuçada e acho que já posso me considerar fã de Ruby e um possível usuário o Rails.

Ruby on Rails é um framework para desenvolvimento de aplicações baseado na Web que usa a linguagem de programação orientada a objetos Ruby. O Rails vem sendo desenvolvido pela comunidade há mais de dois anos com várias aplicações comerciais.

Fiz alguns testes portando alguns módulos de um sistema que estou desenvolvendo em PHP e pude constatar que a velocidade de desenvolvimento com o Rails é consideravelmente maior que com PHP. Para se ter uma ideia, eu gastei 15 minutos para fazer um módulo que eu havia gasto quase um dia para fazer em PHP. Obviamente o módulo que portei estava em PHP puro(já peguei o projeto no meio, e ainda não pude mudar a metodologia), sem nenhum framework, pois com o Seagull eu já havia experimentado algo parecido em termos de velocidade.

A despeito das diferenças das linguagens(PHP e Ruby), uma coisa que me deixou bastante impressionado com o Rails é a forma como ele implementa o MVC, e como o sistema de template dele é simples tanto para o desenvolvedor quanto para um possível designer.

Ainda quero gastar mais tempo estudando, mas quis comentar o quanto achei interessante o framework.

Abraços!

Olá!

O Drupal é o que se costuma chamar de CMS(Content Management System), que tem por objetivo servir de ferramente de publicação de conteúdo na Internet. Na verdade, o Drupal é muito mais que isso. Atualmente ele tem vários módulos que o torna bastante flexivel, e assim obtermos sites de comunidade, loja virtual online, portal de notícias, blog e muitas outras aplicações, que vão depender unicamente da sua imaginação e capacidade de adaptá-lo às suas necessidades.

Há alguns dias eu comecei a desenvolver o site do projeto Drupal Brasil. Começou meio sem forma, mas as coisas parecem estar começando a caminhar.

O projeto Drupal Brasil consiste em trazer para o público brasileiro algum modo de suporte e disponibilização do Drupal em língua portuguesa do Brasil(digo isso porque há um projeto semelhante para português de portugal).

Convido você a visitar o site do projeto Drupal Brasil e a se engajar nesse trabalho!

Abraços,

Rafael Ferreira Silva

Olá!

Dei uma sumida esses dias por força da faculdade e do trabalho, mas resolvi falar hoje de umas coisas que aprendi com um amigo (Orzenil) e depois aprendi na prática.

Um framework é, na minha concepção, a base de sustentação para o desenvolvimento de sistemas no contexto atual, segundo o paradigma de orientação a objeto.

É claro que no paradigma estruturado também é perfeitamente possível haver um framework, mas essa denominação é mais recente e veio junto com a força da Orientação a Objetos (já meio antiga, mas que hoje em dia tem muita força, graças ao Java).

Um bom framework, deve atender alguns requisitos básicos:

  • Deve ter uma API consistente e extensível
  • É importante que trabalhe em camadas
  • Deve, de preferência, ser estruturada sob Design Patterns(MVC, por exemplo)
  • Deve ter um bom tratamento de erros

Talvez você se pergunte: pra que eu preciso de um framework?
Acredito que a resposta mais comum para essa pergunta é: agilidade no desenvolvimento. Eu explico.

Com um framework, a maioria das rotinas básicas que você vai utilizar, já está prevista como por exemplo:

  • conexão com banco de dados
  • autenticação de usuário[em alguns frameworks]
  • formatação de exibição de campos

Isso diminui enormemente o seu trabalho de desenvolvimento uma vez que o básico já está previsto e você não irá precisar reprogramar tudo do zero.

Se o framework já usar, pelo menos, um Design Pattern, a produtividade aumenta, pois você já irá ter todo o suporte desse Pattern, que em casos como o do MVC, é fantástico!

A programação em camadas, é uma coisa fundamental para o desenvolvimento de softwares. Quando falamos de desenvolvimento para Web, isso pode ser multiplicado algumas vezes.

Hoje em dia, programar sem que haja essa divisão em camadas, dificulta muito o trabalho do desenvolvedor, que, além de trabalhar no que seria a camada de negócios, também vai ter que trabalhar na camada de apresentação, e isso toma muito tempo.

É importante dividir tudo em camadas, e deixar ao designer o que lhe compete, e ao desenvolvedor a sua parte. Se o projeto puder ter uma pessoa só para trabalhar com a camada de dados, é melhor, no entanto, esse trabalho para o desenvolvedor não se torna um jugo tão pesado (em alguns casos), é claro que há projetos que isso pode ser um fardo enorme!

Quando eu ainda trabalhava na Intertexto, tive uma experiência com um toolkit (segundo denominação do próprio projeto), que pode ser um bom exemplo do que eu considero um framework. Esse tookit é o OpenACS, uma ferramenta muito produtiva, escalável, extensível e robusta. Espero um dia poder falar melhor sobre ela aqui.

Em um dos freelance que estou fazendo no momento, acabei descobrindo um framework que promete muito, em PHP. O nome do projeto é Seagull, ainda está numa versão de desenvolvimento mas apresenta um excelente avanço. O framework é todo construído sob a PEAR, o que compatibiliza o projeto com a mais renomada biblioteca do PHP.

Em breve volto com mais notícias.

Abraços!

Essa semana estou trabalhando em mais um freelance (ainda não posso divulgar todos os detalhes), e para o desenvolvimento do projeto, resolvi trabalhar com as classes da PEAR.

Eu já havia usado usado a PEAR quando ainda ela era a PHPLib, e naquela época já era muito boa, mas faltavam algumas coisas, ou você tinha que fazer alguns "gatos" para que funcionasse corretamente. Agora, depois de algum tempo sem mexer com a PEAR, resolvi adotá-la e fiquei felizmente surpreso. As classes que estão no repositório oficial estão muito bem feitas e extremamente profissionais. Acredito que com essas classes você pode ter um rendimento muito maior, e é isso que estou sentindo na pele (felizmente).

Estou usando algumas classes fantásticas, como a LiveUser e a QuickForm. Essas duas e mais a Template_IT fazem da PEAR uma ferramenta muito poderosa para desenvolvimento de Websites com muitos formulários e que costumam (ou que precisam) mudar de aparência com relativa frequência.

Obviamente, como o projeto usa banco de dados, também estou fazendo uso da maravilhosa (e já bem conhecida) DB.
Em termos de abstração de banco de dados em PHP, a DB dá um show!

Depois dessa experiência me sinto motivado a escrever mais um artigo, e dessa vez será sobre a PEAR. Talvez nesse artigo também eu fale sobre um assunto muito interessante e que agora pra mim é lei: os WebStandards. Como eu escrevi em um artigo, padronização é fundamental, e nada melhor do que começar pelo lugar mais evidente: a estrutura do site. Esse assunto ainda vai dar muito pano para manga :-)

É isso, para quem estiver interessado, visite o site da PEAR e dêm uma olhada no que já tem pronto antes de começar a "reinventar a roda".