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!