Tecnologia

Microframeworks ou Framework Full Stack, qual a melhor opção?

Criado em 25 de nov. de 2016

(Atualizado em 14 de mai. de 2024)

Desde que comecei a programar venho acompanhando o mercado de frameworks, suas aplicações e o quanto elas evoluíram rapidamente. Especialmente quando falamos de desenvolvimento em plataforma web.

Em menos de oito anos vi tantas tecnologias entrarem em desuso, como Flex e Flash (ActionScript), Silverlight, WebForms. Porém, em contrapartida, presenciei o surgimento de novas tendências, como o HTML5, NoSQL, Ionic, MVC. Por isso, saber se adequar a essas inovações acabou se tornando uma necessidade para nos mantermos no mercado de trabalho.

Além do surgimento de diversas novas tecnologias, o mercado de frameworks trouxe inúmeras novidades e novos conceitos. Isso veio juntamente com as boas práticas de desenvolvimento e padrões de projeto.

Para nós, desenvolvedores, entender um framework é muito importante, pois ele é a nossa caixa de ferramentas. Nele podemos encontrar mil e uma utilidades que nos ajudam no dia a dia. Isso sem falar na praticidade que ele proporciona para o desenvolvimento em um contexto geral.

Para quem ainda não teve contato com algum Framework Full Stack ou Microframeworks, vou explanar um pouco sobre o que é cada um e indicar algumas excelentes alternativas que utilizamos inclusive em alguns projetos dentro da Efí.

O termo framework significa biblioteca. Ou seja, são coleções de recursos que abstraem desde um Active Record a um recurso de Pagination, bem como outras opções que aprimoram, agilizam e auxiliam em um desenvolvimento mais maduro e nos moldes das boas práticas de desenvolvimento de sistemas.

Agora que você entende o conceito de framework, iremos fazer um comparativo entre duas formas mais comuns de aplicações, são eles: Framework Full Stack e os Microframeworks.

Framework Full Stack

O Framework Full Stack contempla uma biblioteca mais completa de recursos onde temos praticamente todas as opções para agilizar o desenvolvimento de sistemas. Desde uma abstração de banco de dados a uma camada de visualização utilizando controladores e suas views, proporcionando uma estrutura de MVC (Model View Controller) bem distribuída e arquitetada.

São exemplos de Frameworks Full Stack:

– Laravel: Framework em PHP. Possui uma comunidade recente, mas que vem crescendo muito em pouco tempo. Com uma proposta bem parecida com a do Ruby on Rails em relação a parte de mapeamento de objetos relacionais (ORM). Mas ele possui o toque do PHP e toda a praticidade das Migrations, além de uma estrutura MVC bem amadurecida.

Zend Framework: Framework em PHP. Podemos falar que hoje é um dos mais difundidos e possui uma comunidade bem articulada e empenhada. Sua mantenedora, a Zend, aplica testes de certificação PHP em diversas modalidades. Vale a pena conferir.

O Zend tem uma API compatível com sua versão mais recente chamado APIGility. O intuito dele é facilitar o desenvolvimento de aplicações híbridas, como no caso do framework Ionic.

– Ruby on Rails:  Framework em Rails, que traz ideias bem interessantes e se destaca com seu recurso de mapeamento de objetos relacionais (ORM). Talvez este seja o grande diferencial deste framework, bem como toda a praticidade das Migrations. O Rails sabe aproveitar bem as funcionalidades da linguagem Ruby, se diferenciando de muitos concorrentes do mercado.

Com o Ruby on Rails é possível desenvolver um código simples e elegante. Tudo isso devido ao seu mapeamento relacional de objeto pelo Active Record, proporcionando uma interação com seu banco de dados de uma forma surpreendente, sem precisar gastar muitas horas em queries gigantescas como em uma estrutura orientada a objetos sem ORM.

O Ruby on Rails é bem mais complexo, e a curva de aprendizado é bem maior quando o comparamos com o Laravel, que é desenvolvido em PHP. Além disso, sua estrutura de codificação se destaca pela excelente otimização de codificação.

Microframeworks

Os Microframeworks são frameworks modularizados, em que você detém geralmente de uma função específica que proporcionará um ou mais recursos. Ressalvo que alguns frameworks, como por exemplo o Zend, possibilita que você utilize recursos separadamente como o paginator. Tudo isso é feito de forma separada sem precisar utilizar todo o framework em sua forma Full Stack.

São exemplos de microframeworks:

– Slim: É um microframework em PHP que facilita sua vida na hora de desenvolver estruturas RESTful. Ou seja, com ele a criação de rotas fica muito fácil e não perde em nada para um Framework Full Stack com estruturas RESTful.

Ao instalar o slim via composer, você verá que outros Microframeworks poderão estar agregados, como o Symphony. Sugiro que baixe apenas o conteúdo que irá utilizar do Slim, caso não precise utilizar o composer para realizar a instalação.

– Twig: É um microframework em PHP, utilizado para recursos de exibição de templates na camada de visualização de sua aplicação. Para se ter uma ideia, existem alguns frameworks do mercado que utilizam o Twig como seu mecanismo de view e template padrão embutido em seu pacote, como o Phalcon por exemplo.

– PHP ActiveRecord: É um microframework em PHP que persiste objetos em um mapeamento objeto-relacional, abstraindo sua camada de modelo em sua estrutura MVC. Facilita na elaboração de queries em SQL e traz simplicidade para o seu código.

Algumas aplicações

Neste momento você deve estar se perguntando, afinal qual a melhor opção? Framework Full Stack ou Microframeworks?

Isto irá depender muito do projeto que você está desenvolvendo e do domínio de sua linguagem de programação.

Em um Framework Full Stack você encontrará uma estrutura MVC geralmente pronta, com fácil interpretação e utilização, porém poderá ter recursos que não serão utilizados por completo devido a gama de possibilidades que ele proporciona. E mesmo com toda esta gama, ainda esbarramos em incompatibilidades que exigirão alguns esforços para integrar com algum um outro Microframework.

Uma outra desvantagem impactante em um Framework Full Stack são as atualizações de versões. Dependendo do framework, o processo acaba ficando inviável, e o desenvolvedor fica sempre adiando a atualização de versão do framework em sua aplicação com medo de acontecer alguma falha devido a incompatibilidades. Desta forma, seu projeto acaba caindo em uma desatualização sem necessidade. Com um Microframework, isto já é mais tranquilo, pois ele tem uma independência em relação a estrutura de pastas.

Já os Microframeworks geralmente são utilizados em projetos que exigem mais simplicidade, pois não precisam de estrutura de projeto bem definida, possuem fácil implementação e um custo mais reduzido. Mas isso não quer dizer que se aplicam apenas a um projeto de menor complexidade. Não existe uma receita de bolo para definir isto. Por isso, orienta-se que faça uma análise de requisitos do seu projeto antes para identificar a melhor escolha.

Uma desvantagem na utilização de um Microframework é que você pode ter dificuldades para encontrar um determinado recurso separado para o desenvolvimento de projetos mais robustos. Isso acontece porque em um Framework Full Stack estas opções geralmente estarão inclusas dentro da sua library.

Na hora de escolher qual utilizar, observe bem cada característica que diferencia um de outro:

  • Performance e peso
  • Requisitos e dependências do sistema
  • Curva de aprendizado
  • Facilidade de uso
  • Suporte da comunidade
  • Qualidade da documentação
  • Qualidade do código
  • Cobertura de testes
  • Compatibilidade

 

Conclusão

Apesar do Microframework ser mais fácil de implementar e sua curva de aprendizado ser menor, recomendo a quem está começando a desenvolver que entenda primeiro um Framework Full Stack, pois com ele é possível mergulhar em toda a gama de possibilidades que um Framework de mercado é capaz de oferecer.

Sem falar no quão robusto e prático eles são. Além de toda a estrutura e amadurecimento em nível de lógica que você irá absorver de todo este complexo de recursos.  Mas isto é só no início, não se prenda a ele!

Se estiver pensando em desenvolver sua startup ou projeto de forma ágil e organizada, aconselho a implementar um projeto do zero. Dessa forma, procure sempre trabalhar as boas práticas e, quem sabe, utilizando alguns Microframeworks. Assim você cria sua própria estrutura MVC sem componentes desnecessários, apenas com o que realmente será utilizado.

Mas não se esqueça de analisar e pesar sempre três pilares importantes quando for desenvolver algum projeto que envolva tecnologias recentes:

1º – Requisitos gerais do seu projeto e análise de risco

2º – Tempo de aprendizado e de desenvolvimento em relação a estrutura em si

3º – Prazo de entrega do projeto

Eu espero que este tema tenha aberto um leque de opções para aguçar ainda mais a busca pela renovação do seu conhecimento em qualquer nova tecnologia ou linguagem.

Acompanhe-nos e mantenha-se atualizado! Siga no Facebook, Twitter, Instagram e Linkendin!

Compartilhe nas redes:

Gostou do que viu por aqui?

Cadastre-se para receber os melhores conteúdos exclusivos sobre tecnologia de pagamentos e gestão, para alavancar de vez os seus negócios.