domingo, 15 de fevereiro de 2009

Apresentando o SeptoFramework

PHP é uma linguagem de script orientada a objetos simples e poderosa que tem o poder de atrair tanto desenvolvedores iniciantes quanto desenvolvedores experientes. Construir aplicações com o paradigma OO permite que você crie um código com uma divisão mais lógica, mais fácil de manter e possível de reaproveitar.

Com o lançamento do PHP5, o suporte que esta linguagem oferece à programação OO ficou mais completo e vários frameworks sugiram para facilitar a resolução dos problemas mais comuns dos desenvolvedores web, como: controle de acesso, layout das páginas, acesso ao banco de dados e etc.

O Zend Framework e o Doctrine são dois exemplos. O Zend Framework é bastante completo e permite que aplicações sejam desenvolvidas implementando um padrão de projeto conhecido como MVC. O MVC contribui para tornar o código orientado a objetos ainda mais organizado separando aquilo que é lógica do negócio da apresentação e centralizando as solicitações dos clientes nos controllers.

O Zend Framework é muito legal. Mas existe algo fundamental que ele não possui: uma ferramenta de ORM. ORM significa Mapeamento Objeto-Relacional e uma ferramenta de ORM é importante quando se desenvolve aplicações OO porque, no final das contas, alguns dos objetos criados precisam ser gravados e recuperados de uma base de dados que, na maioria das vezes, utiliza o MER - Modelo Entidade-Relacionamento -, algo diferente do paradigma OO.

O paradigma OO funciona muito bem para a lógica do negócio, mas quando o assunto é banco de dados, o modelo mais interessante continua sendo o bom, velho e consagrado MER. Por isso, o mais inteligente a fazer quando se desenvolve aplicações complexas é usar tanto o paradigma OO quanto o MER. Ou seja, ambos precisam trabalhar juntos para construir uma aplicação que usa o melhor dos dois mundos.

Isso significa que em algum momento dentro da arquitetura da sua aplicação alguém deve fazer esta integração entre o paradigma OO e o MER. E acredite: fazer esta integração é uma tarefa complexa, chata, cansativa e desnecessária! Sim! Desnecessária! Isso porque alguém já fez esse trabalho para você construindo a tal ferramenta ORM.

A ferramenta ORM é responsável por unir os dois paradigmas, OO e ER. No mundo JAVA, existe uma ferramenta ORM muito popular conhecida como Hibernate. No mundo PHP, depois de muito pesquisar, escolhemos o Doctrine como ferramenta de ORM.

Ou seja, PHP possui aquilo que é necessário para desenvolver aplicações complexas sem ter que sair reinventando a roda. Agora, é só juntar tudo isso para facilitar a construção de aplicações complexas! Mas só?

Na verdade, essa tarefa não é assim tão fácil. Mesmo depois de dominar ambos os frameworks (ZendFramework e Doctrine) muito deverá ser feito até você poder dizer, no final das contas, que tem uma Arquitetura que integra ambas as ferramentas e dá suporte para construção de sites complexos.

Ou seja, embora as ferramentas existam para download, ainda há um grande degrau que dificulta a sua utilização. E esse degrau é o degrau da integração e especialização dessas ferramentas com o objetivo de construir TODA uma ARQUITETURA que dê suporte ao DESENVOLVIMENTO de sites COMPLEXOS utilizando PHP.

É aí que entra o SeptoFramework. O SeptoFramework além de integrar o ZendFramework com o Doctrine é também a materialização de toda uma Arquitetura e um Processo Produtivo, pois também propõe um ciclo de desenvolvimento que pode ser especializado de acordo com a necessidade da sua organização.

Com o SeptoFramework, seu time se beneficia com as vantagens da utilização do MVC e do ORM através do Zend Framework e do Doctrine evitando que você seja obrigado a desenvolver frameworks internos para resolver os problemas mais comuns.

O SeptoFramework também foi desenvolvido pensando em permitir um gerenciamento de projeto mais afiado. Ele utiliza uma arquitetura de três camadas: uma responsável pela apresentação, outra pela lógica e a última pelos dados.

Com uma arquitetura assim, é possível que times diferentes desenvolvam e mantenham partes específicas da aplicação, permitindo uma divisão de esforços mais racional e impedindo que o upgrade ou substituição de uma camada exija alterações em todo o sistema.

0 comentários:

Postar um comentário