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 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"
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!
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
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! ;-)
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.
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.
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!
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…
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!
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 :)
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…
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?
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
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.
Vinicius em 24 de novembro de 2010
rafael deve programar em assembly…..
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! ;-)
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.
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!!
Júlia em 15 de março de 2011
Muito legal o post!
E concordo com Henrique!
Abraços! =)
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.
Marcos em 23 de março de 2011
Rafael, você usa programação orientada a objetos?
Marcio em 18 de maio de 2011
Isso! ou vai ver ele seja fã das linguagens de primeira geração. rsss
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?
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
monica em 18 de março de 2013
não entendi o que vc quis dizer
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
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.
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
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
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.
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.
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).
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.
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.
- CodeIgniter: framework PHP ágil, robusto e de alta performance | CodeIgniter Brasil em 2 de março de 2009
- 10 razões de porque CodeIgniter arrasa | CodeIgniter Brasil em 27 de abril de 2009
- CodeIgniter: Requisitos de Servidor e Licença de Uso | CodeIgniter Brasil em 20 de maio de 2009
- Classes do CodeIgniter | CodeIgniter Brasil em 10 de fevereiro de 2011
- Models no CodeIgniter | CodeIgniter Brasil em 16 de março de 2011
- Controllers no CodeIgniter | CodeIgniter Brasil em 16 de março de 2011
- Controllers no CodeIgniter | Power Php em 19 de abril de 2011
- Classes do CodeIgniter | Power Php em 19 de abril de 2011
- Como criar bibliotecas (libraries) no CodeIgniter | CodeIgniter Brasil em 19 de dezembro de 2011
- Padrões de Projeto (ou Design Patterns): o que são, para que servem e qual sua implicação de uso | Edivan Camargo | Edivan Camargo em 13 de julho de 2012
- Twitter Bootstrap | desenvolvimento para web em 31 de outubro de 2012


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á.