Publicado em: 20/4/2016
Um framework é um conjunto de códigos comuns abstraídos de vários projetos com o objetivo de prover funcionalidades genéricas em um projeto que utilize esse framework. Através de programação, ele permite a customização dessas funcionalidades para torná-las mais específicas de acordo com a exigência de cada aplicação.
Antes de ver se vale a pena ou não utilizar um framework é bastante válido distinguirmos outros conceitos que muitas vezes são confundidos com frameworks.
As APIs são interfaces programáveis, tendo em vista que você vai usar a API sem construir ela (a ideia nesse post é justamente usar um framework e não criar). Você tendo a API pronta, ela é um canal de acesso à informações e/ou rotinas de um outro sistema (pode ser o mesmo sistema) já predefinidas e você vai apenas acessar isso, podendo enviar parâmetros para essa API para ela lhe retornar dados.
Ex: um sistema de login que irá fazer login através de uma API, o sistema irá receber login e senha, irá enviar para a API e a API irá responder se o login e senha estão corretos.
Uma biblioteca é um arquivo que contém um conjunto de funções. Existem diversos tipos de bibliotecas e com diversas finalidades, mas no geral servem para facilitar a vida do desenvolvedor permitindo que o desenvolvimento seja focado na regra de negócio e não em algumas funcionalidades. Podemos ter bibliotecas de acesso à banco de dados, manipulação de imagens e etc. Exemplos de bibliotecas são JQuery para JavaScript e a ImageMagick de manipulação de imagens.
Do início de 2011 até 2012 eu não era adepto de frameworks, nunca gostei de nada que “limitasse” meu trabalho ou que me “obrigasse” a seguir um padrão, nessa época eu trabalhava basicamente com HTML, CSS, Javascript e PHP (não orientado a objeto). Nessa época sempre que iniciava um projeto novo era literalmente tudo do zero, o que eu conseguia aproveitar as vezes era o CSS, foi muito repetitivo nessa época porque perdi a conta o número de sistemas de login que tive que fazer por não conseguir reaproveitar o código, mas foi muito produtiva na questão aprendizado, pois acabei fixando bem.
A partir de 2013 comecei a trabalhar com classes, heranças e polimorfismo, nessa época comecei a conseguir reutilizar bem o código, inclusive tem uma classe de banco que fiz que me acompanhou em muitos projetos (veja ela aqui no PHPClasses). Nesse mesmo período foi a época que eu descobri que não tinha vocação para front, depois de insistir por muito tempo tentando criar uma estrutura de CSS que pudesse usar em qualquer projeto e o deixasse responsivo, desde então passei a usar o Bootstrap (framework) nos meus projetos.
De lá pra cá já trabalhei com alguns frameworks: Yii, Cake e Laravel (PHP), Rails (Ruby), AngularJS (Javascript), Bootstrap e Material Design (CSS).
Então vejamos quando usar ou não usar um framework, lembrando que os itens que irei apresentar abaixo são minhas opiniões pessoais.
É um dos itens que mais preocupam já que pode causar grande prejuízos dentro de um sistema, desde uma impressão de logs de erros até um formulário mal validado que aceita SQL injection. A maioria desses erros são evitados facilmente usando um framework, pois ele já traz traz configurações de segurança predefinidas e quando alguém encontra uma falha, um novo release é liberado para corrigir o erro sem precisar alterar sua aplicação, bastando apenas atualizar o core.
Se você tem um prazo apertado para entregar um projeto, utilizar um framework que você conheça irá ajudar muito, muita coisa que você teria que fazer já vem implementada no framework e não demora muito para implantar. Por exemplo, em frameworks como Zend e Laravel (PHP) o sistema de login já vem implantado, basta configurar, no Rails você pode optar por só instalar uma Gem e também já está pronto, mas se você fosse fazer do zero teria várias preocupações como montar o formulário, validar, aplicar segurança para evitar invasões, etc.
Optar por utilizar um framework depende muito do projeto e do seu nível de conhecimento. Normalmente é uma ótima ideia utilizar um framework, pois facilita e agiliza o desenvolvimento, porém nem sempre é a melhor escolha, devemos colocar os devidos pesos na balança para então tomar uma decisão se realmente vale a pena utilizar ou não.
Publicado originalmente no Blog Locaweb: blog.locaweb.com.br