O que é um framework: definição e benefícios de se usar frameworks

16 de fevereiro de 2009, em Passos Iniciais, por

Framework: exemplos de estruturas de frameworks.

No web site oficial do CodeIgniter, vemos na definição queCodeIgniter 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!  ;-)

45 comentários em "O que é um framework: definição e benefícios de se usar frameworks"

gravatar

Vanderlei  em 7 de junho de 2009

Parabéns pela postagem, e de como apresenta a definição de framework.
Faço uma pergunta o que acha do framework JSF e JAVA FX?
Tem informações de JAVA FX?

Obrigado e parabens..

Vanderlei – Foz do Iguaçu – Paraná.

gravatar

Tárcio Zemel  em 26 de junho de 2009

@ Vanderlei

Obrigado pela força, Vanderlei! No caso, este blog é focado principalmente no framework PHP CodeIgniter; certamente com uma pequena busca na internet você vai encontrar material mais focado em JAVA FX.

Abraços!

gravatar

Thiago Quinteiro  em 3 de novembro de 2009

Cara, ótimo post. Eu até ler isso, me perguntava qual sería a real definição de um framework.
Parabens/Valeu

gravatar

Tárcio Zemel  em 15 de novembro de 2009

@Thiago Quinteiro
Que bom que o artigo sobre frameworks lhe foi útil, Thiago! Fique ligado no CodeIgniter Brasil para acompanhar muito mais definições, tutoriais e dicas sobre CodeIgniter! ;-)

gravatar

Nei  em 14 de dezembro de 2009

Adorei esta parte hehehehehe

"Existem dicas de como escolher um bom framework, mas, já adianto, em programação PHP, o melhor é CodeIgniter! ;-)"

Ótimo post.

gravatar

Marcelo Diniz  em 29 de janeiro de 2010

Muito bom o post. Vou continuar lendo os outros posts na parte de passos iniciais e ver o que eu consigo aprender com isso, mas vamos ver o quanto antes eu já quero colocar a mão na massa, mas claro, tudo no seu tempo.

gravatar

Tárcio Zemel  em 1 de fevereiro de 2010

@ Nei

Obrigado, Nei! Aguardamos sua presença e participação nos próximos artigos. Abraços!

@ Marcelo Diniz

COntinue acompanhand o CodeIgniter Brasil para aprender a mexer no melhor framework PHP da atualidade! Obrigado por comentar!

gravatar

rafael  em 15 de abril de 2010

Frameworks são para os que pensam que são programadores, mas na verdade são juntadores de códigos prontos dos outros…
Se o cara foi atrás de uma framework, certamente ele vai procurar scripts completamente prontos para o que ele quer, afinal ele prefece economizar 1 dia de programação na concepção do projeto do que economizar recursos do servidor por todo tempo de vida do script.
Quer algo bem feito, faça você mesmo…

gravatar

Tárcio Zemel  em 5 de maio de 2010

Concordo em partes, mas não vejo de forma tão negativa usar códigos prontos de qualidade que alguém mais inteligente que eu fez e disponibilizou de graça para eu usar e ganhar dinheiro com isso mais rapidamente do que se eu "reinventasse a roda"…

Obrigado pela contribuição!

gravatar

Henrique  em 25 de maio de 2010

achei esse comentario do @rafael pura loucura

entao esse cara deve ser um programador muito bom

e para programar usar o bloco notas

sou totalmente a favor do uso de um framework , debug de codigo
editores modernos

ele deve esta pensando que e um framerwork e um enlatado fechado
que nao ser poder criar componentes e help deve ser isso eu acho :)

muito bom seu artigo meu velho

sobre a escolha do framerwork eu prefiro o cake :)

gravatar

Tárcio Zemel  em 27 de maio de 2010

Legal o ponto que você tocou. Vai ver o @rafael ainda não teve a oportunidade de usar um framework ou, se usou, parece que teve uma experiência desagradável.

Tomara que ele se dê bem com seu método de programação old school…

gravatar

MEL  em 15 de setembro de 2010

ola tudo bem,gostei da postagem,mas algem pode ajudar-me a encontrar framework para arquitetura de sistemas de informação?

gravatar

Tárcio Zemel  em 20 de setembro de 2010

O que seria um “framework para arquitetura de sistemas de informação”? Eu nunca ouvi falar, mas, vai ver, conheço por outro nome… =P

gravatar

Madalena silvestre  em 6 de novembro de 2010

O Framework e um conjunto de scrips feitos por pessoas mais inteligentes.
Mais eu diria que devemos desempenhar para programar melhor sem depender de framewor.

gravatar

Vinicius  em 24 de novembro de 2010

rafael deve programar em assembly…..

gravatar

Tárcio Zemel  em 3 de dezembro de 2010

Mais ou menos, Madalena… Afinal, já estamos "dependendo" das pessoas que criaram a linguagem de programação que trabalhamos, não é verdade? Além disso, uma coisa não exclui a outra.

É possível se esforçar para programar melhor com a ajuda de frameworks! ;-)

gravatar

Marco Polo  em 27 de dezembro de 2010

Rafael você disse tudo!!
E vou mais além… O nome dado aos "programadores de framework" principalmente na Europa é "codificadores". Desenvolver projetos grandes com framework é como um Titanic pronto para afundar.. Eu desenvolvo aplicações Web com qooxdoo e java com a mesma velocidade que "programadores framework" o fazem. A diferença está no resultado. 90% a menos de requisições no servidor e fonte sem dependência de ferramentas. Outro fator é o tamanho do fonte, chega a ficar 200x menor em relação aos desenvolvidos no netbeans. Infelizmente hoje quase ninguém sabe programar e não percebem que quando se adquiri uma certa experiência, soluções que parecem monstruosas são simples de resolver.
Fiquem atentos pessoal, procurem saber o que está rolando fora do país, pois no Brasil os codificadores seguem muito modismo.

um abraço para todos e desculpem-me pelo mal português.

gravatar

Marco Polo  em 27 de dezembro de 2010

Opinião pessoal sobre JSF:
É a maior gambiarra que eu já vi na minha vida!! Se os caras que desenvolveram aquilo são seres mais inteligentes que nós, eu não sei qual a definição de inteligência.
Opinião sobre Debug:
Debugadores são legais!!! Adoro Firebug!!

gravatar

Júlia  em 15 de março de 2011

Muito legal o post!
E concordo com Henrique!

Abraços! =)

gravatar

Marcos  em 23 de março de 2011

é importante dizer que o framework modelo de projeto de software. Não é simplesmente não escrever linhas de código, mas a idéia está também no reuso de modelos mais abstratos de design de software.O que poupa ainda mais trabalho. Não é fato de depender ou não do framework, é fazer uma análise bem feita e saber que aquele modelo usado naquele framework atende às necessidades do meu projeto de software e assim lançar mão de algo que vai trazer robustez ao meu software sem bugs e outros problemas maiores. Assim caminha a humanidade.

gravatar

Marcos  em 23 de março de 2011

Rafael, você usa programação orientada a objetos?

gravatar

Marcio  em 18 de maio de 2011

Isso! ou vai ver ele seja fã das linguagens de primeira geração. rsss

gravatar

Cálcio  em 1 de março de 2012

Eu tenho outro ponto de vista. Vc msm programando na unha, vc com certeza em um FW, afinal vc ñ quer reinventar a roda. Então com certeza vc tem um conjunto de scripts (vamos chamar aqui de componentes).

Então se cria um componente para paginação, seja uma simples funcion (estruturada) ou seja um método (function em OOP), terá outra para envio de e-mail, uma outra para divulgação em rede sossial etc. Querendo ou não vc tem um framework (cj. de código para evitar reinventar a roda)

A diferença é que seu FW vai ter somente oq vc quer, como foi falado 200x menor.

Esse tb é um ponto meu de pesquisa futura com os FW, mnts chegam pegam o FW configura e hospeda, mas ñ tentam descobrir oq pode ser removido do core sem impactar no código geral.

Será q existe algum debate sobre esse ponto. Oq pode ser retirado do FW já q ñ vais er usado sem impactar no funcionamento?

gravatar

Nanana  em 29 de março de 2012

"rafael deve programar em assembly….."
Povo usa framework e se acha o cara ._.
Decerto usam java pra programar em baixo nível com framework

gravatar

monica  em 18 de março de 2013

não entendi o que vc quis dizer

gravatar

monica  em 18 de março de 2013

não entendi nada eu só queria saber o que é um framework mas não entendi nada

gravatar

webes  em 22 de março de 2013

Bom afirmar "em programação PHP, o melhor é CodeIgniter! ;-)" concordo por defender a ideia do site, mas errado por ter o Zend e o Yii que são tão bons quanto ( acho até que o Yii se tornará o melhor de todos, mas o Codeigniter tem seu potencial ). Bom para resumir cada caso é um caso, dependendo do uso até o PHP se torna inviável, sendo melhor usar Java, Ruby ou C, até o Facebook ( maior referencia PHP Zend da internet ) usa o C para melhorar a performance do PHP e criou um projeto chamado HipHop (https://developers.facebook.com/blog/post/2010/02/02/hiphop-for-php–move-fast/ ). O melhor é o que vai resolver o seu problema naquele momento :D. Que o CI é bom pacas não há duvidas, que é o melhor é questionável, mas vale muito a pena ser estudado, aprendido e utilizado e parabéns ao Tárcio pelo trabalho.

gravatar

Tárcio Zemel  em 22 de março de 2013

Opa, webes! É, na verdade foi mais uma brincadeira, tem que "puxar a sardinha" num site sobre CI, né… rsrs…

Genericamente falando, eu considero o CI o melhor, sim, mas, claro, existem casos em que os recursos disponibilizados (nativamente ou pela comunidade) de um outro framework são melhores!

Vlwww

gravatar

Gabriel  em 16 de maio de 2013

kkkkkkkkkk sua definição de framework é muito melhor do que a do wiquipédia, na linguaguem popular e sem enrolação : D

gravatar

Osvaldo  em 17 de maio de 2013

O post é antigo, mas me parece que ainda pode ser valioso para muitos estudantes e trabalhadores. Recentemente voltei a estudar php (e mais um mone de tecnologias para websites) e no meio das várias leituras que fiz e das dificuldades que tive para lidar com "php puro" e descobrir códigos melhores (e piores rs) me lembrei da questão framework. Daí vim parar neste site e confesso que senti que isto foi uma luz para mim, pois pude confirmar o que estava pensando.

Enxergo que, hoje em dia, quem trabalha com tecnologia e atende o consumidor final não tem praticamente nenhum motivo para construir sistemas ou websites do jeito mais difícil, achando que deve partir do zero para saber tudo o que se passa no código-fonte… Não compensa, não vale o esforço. Mas acredito também que é importante ter boa noção sobre como se programa para saber como as coisas funcionam. E acho que é por isso que estudamos aquela programação básica e pura.

gravatar

Osvaldo  em 17 de maio de 2013

Não concordei muito não, mas houve uma época que concordava rsrs e foi antes de trabalhar, porque depois… o mercado cobra umas coisas malucas…

Já a observação sobre o que pode ser tirado do core em um FW sem causar dano (mas sim para melhorar a EFICIÊNCIA do sistema, penso) também é interessante para mim. E acho que este ponto seria mais um diferencial em FW. Este nosso palpite no entanto só vale se realmente existir um ganho de eficiência no resultado final de um website ou sistema online.

gravatar

Jr Net  em 17 de maio de 2013

Mais: Às vezes me faço questões deste tipo: Será que não há segundas intenções (do tipo perturbadoras) nos códigos que não foi eu quem desenvolveu (ou leu e compreendeu rs)?
Acho que tem que confiar mesmo… assim como em todo mercado precisa-se de estabelecer confiança com o fornecedor ou fabricante. A diferença no mundo digital da computação é que todo programador atento tem noção de como as coisas funcionam e às vezes acha que deveria saber o que se passa na "fabricação" do seu fornecedor… Mas hoje penso que querer ser a fábrica sozinho é pior porque gera mais tensão (comigo foi assim, até porque o serviço não é devidamente valorizado).

gravatar

Tárcio Zemel  em 19 de maio de 2013

Realmente, Osvaldo, atualmente existem soluções das mais diversas para nos ajudar a ajudar, mas é importante conhecer a "base" para ser um programador melhor.

gravatar

Tárcio Zemel  em 19 de maio de 2013

Realmente, existe essa preocupação. Mas, no caso de projetos mais conhecidos e populares, muitas e muitas pessoas ficam de olho no código e, surgindo "código suspeito", rapidamente este é apontado pela comunidade!

Fora o fato de que a reputação de uma pessoa/empresa que disponibiliza código assim vai por água abaixo, então, quando em são consciência, ninguém vai querer arriscar.

Comente!