Framework: usar ou não usar? Eis a questão!

Framework: usar ou não usar? Eis a questão!

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.

API

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.

Biblioteca

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.

Não recomendo:

– Desenvolvedor iniciante: 

Eu não recomendo de maneira alguma, alguém que está iniciando na programação começar logo de cara com um framework, por quê? Porque seu conhecimento acaba por ser limitado e restrito a ele e você acaba por não conseguir pensar fora da caixinha. Seu nível de conhecimento nunca deve ser restrito a uma linguagem e nem a uma ferramenta, e quando não puder usar o framework, como fica?

– Projetos pequenos: 

Um projetos pequeno requer o mínimo de esforço, imagine um site institucional de uma dedetizadora, nesse site haverá umas 7 páginas estatísticas sendo que uma delas é um formulário de contato para que um possível cliente entre em contato através do site. Você até pode usar um framework pra fazer esse site, mas é aquela famosa frase, “matar uma barata com um tiro de canhão”, um “detalhe” importante com relação a isso é que framework possui tantos recursos que fatalmente o site iria demorar mais tempo para carregar do que se fosse feito usando uma linguagem pura, possivelmente o tempo de desenvolvimento seria maior também devido todas as regras que os frameworks impõem.

Recomendo:

– Qualidade e Padrão: 

Os frameworks nos trazem as melhores práticas de desenvolvimento, sendo que seus padrões normalmente usam as melhores práticas da linguagem. Isso é mais notável quando você trabalha em equipe, pois sempre há algum atrito devido a padrões tanto de boas práticas como de projetos, mas com o uso de um framework esses atritos diminuem consideravelmente já que ele possui um padrão a ser seguido, isso facilita para o entendimento futuro do código em futuras manutenções e melhorias.

– Segurança:

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

– Produtividade:

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