O que é um framework: definição e benefícios de se usar frameworks
16 de fevereiro de 2009, em Passos Iniciais, por Tárcio Zemel
No web site oficial do CodeIgniter, vemos na definição que CodeIgniter is a powerful PHP framework. Quer dizer, presume-se que aquele que entrou no site do CodeIgniter já seja um programador PHP e saiba o que é um framework. Entretanto, algumas pessoas utilizam muito o termo “framework” e, inclusive, trabalham com frameworks, sem mesmo saber o que são, exatamente.
O que é um framework?
Existem muitas definições para “framework“, feitas por muitas pessoas diferentes; algumas muito estudadas e que desenvolveram seus próprios frameworks, outras nem tanto, mas que buscam uma definição precisa para o termo.
Segundo a Wikipédia, framework
é uma estrutura de suporte definida em que um outro projeto de software pode ser organizado e desenvolvido. Um framework pode incluir programas de suporte, bibliotecas de código, linguagens de script e outros softwares para auxiliar no desenvolvimento e unir diferentes componentes de um projeto de software.
Realmente é uma descrição bem feita e que demonstra, de forma bem satisfatória, o que é um framework. Se alguém perguntasse para mim, minha definição não seria muito diferente. Seria algo como:
Framework é um conjunto de scripts feitos por pessoas mais inteligentes que eu para eu programar de forma mais rápida, fácil e eficiente.
Falando francamente e sem muito “tecnicinismo”, um framework não passa disso mesmo: um monte de arquivos organizados, com um monte de funções, rotinas e variáveis inclusas, que servem para nos poupar o tempo de “reinventar a roda” diversas e diversas vezes, para cada novo projeto.
Quais as vantagens em usar frameworks?
Você já deve ter percebido que há muitas vantagens em se usar um framework. Mas, para ser mais explícito, algumas das vantagens em se usar frameworks são (a ordem não é por importância):
- Utilidade. O objetivo primeiro dos framworks é auxiliar no desenvolvimento de aplicações e softwares. Para tal, eles têm funcionalidades nativas das mais variadas, que ajudam você a resolver as questões sobre programação do dia-a-dia com muito mais qualidade e eficiência.
- Segurança. Os bons frameworks são projetados de modo a garantir a segurança de quem programa e, principalmente, de quem usa o que foi feito a partir dele. Não se preocupe mais com aquelas intermináveis linhas de código para evitar um SQL Injection, por exemplo; com frameworks, a parte de segurança já “vem de fábrica”.
- Extensibilidade. Os frame works permitem que você extenda suas funcionalidades nativas. Se aquela biblioteca de envio de e-mails por SMTP não contempla todas as possibilidades que você gostaria, simplesmente extenda suas funcionalidades e as use como se fossem parte do framework (na verdade, elas serão).
- Economia de tempo. O que você demoraria algumas horas ou alguns dias para fazer, você encontra pronto em um framework. Pense no quão trabalhosas aquelas funções de manipulação de imagens são; usando um framework que tenha isso, você só usa, e pronto.
- Ajuda fácil. Os que desenvolvem framworks geralmente disponibilizam material de qualidade nos web sites ou repositórios oficiais, com uma vasta documentação a respeito. Além disso, os bons frameworks sempre têm uma comunidade de desenvolvedores dispostos a se ajudarem entre si. É um prazer para os que já sabem mexer ajudar os que ainda não sabem (embora a falta de tempo também seja uma realidade).
Considerações sobre frameworks
Existem, literalmente, milhares de frameworks disponíveis para as diversas linguagens de programação existentes. É importante, antes esta imensidão de “oferta”, optar por um que atenda a suas necessidades e que seja consoante a seu método e estilo de trabalho.
Inicialmente, pode parecer que usar um frame work é pior do que fazer uma “programação pura”. Entretanto, tenha certeza: vale a pena dedicar seu tempo nisso! As vantagens vindouras de ter um projeto bem estruturado e rodando numa plataforma segura e estável, realmente compensam!
Existem dicas de como escolher um bom framework, mas, já adianto, em programação PHP, o melhor é CodeIgniter! ;-)