Frameworks e Microframeworks para Java e Kotlin

Olá pessoal, hoje iremos ver alguns frameworks e microframeworks que ajudam no desenvolvimento ágil com Java e Kotlin.

A Evolução do Desenvolvimento para JVM


O desenvolvimento de software evoluiu muito nos últimos anos, e com isso a exigência por agilidade no desenvolvimento e na entrega aumentaram.

A Oracle esta desenvolvendo um trabalho interessante com a plataforma Java, tendo a cada 6 meses um novo release do Java SE (atualmente na versão 13), onde atualizações e novas features estão sendo adicionadas a plataforma.

O Java EE que agora é mantido pela Eclipse com o nome de Jakarta EE, também terá uma evolução muito mais ágil, voltados para arquiteturas modernas e com a evolução de várias especificações que são muito famosas no mundo Java Enterprise.

Temos também o Kotlin, que vem ganhando um espaço muito interessante no mercado, sendo uma linguagem com muitos recursos interessantes e fácil aprendizado, e além de possuir uma total interoperabilidade com Java, permitindo usar a linguagem em qualquer lugar onde rodamos Java.

A forma de desenvolver aplicações Enterprise mudou, as linguagens e as arquiteturas evoluíram, com isso os frameworks que utilizamos precisaram seguir o mesmo caminho, vamos ver uma lista de frameworks que trazem agilidade na criação de projetos para a JVM.


Os Frameworks e Microframeworks


O conceito de Microframeworks esta em alta, e isso se deve a adoção de modelos de arquiteturas onde os softwares são divididos em pequenas partes (Microservices), onde cada artefato é responsável por uma regra especifica, com isso não precisamos de grandes frameworks com muitos recursos para atender a esta demanda, podemos utilizar algo simples e que atenda aos requisitos daquela parte em questão.

Existem outros pontos que favorecem a adoção de frameworks considerados "micro", tais como:

  • Consumo de recursos
    • Por serem menores consumem menos recursos do ambiente (Memória, Processamento, etc);
  • Deployment
    • Os artefatos gerados são menores, pois os frameworks não possuem muitas dependências;
  • Curva de Aprendizado
    • Geralmente são simples de entender, pois a quantidade de código é reduzida, e eles resolvem um problema especifico.

Exemplos de Frameworks 


São tantos Fameworks e Microframeworks que temos disponíveis para JVM que a escolha acaba sendo complexa, onde temos que analisar prós e contras para conseguir tomar uma decisão adequada para a equipe e projeto.

Vamos listar abaixo alguns que são muito adotados pelo mercado, e são utilizados com Java ou Kotlin:


Como faço para escolher o framework correto?


A escolha de um framework para um projeto não á uma tarefa simples, pois envolve diversas situações, vamos criar uma lista de critérios para poder ajudar nessa decisão:

  • Necessidades do Projeto
    • Qual problema o projeto precisa resolver?
    • Quais são os requisitos funcionais e não funcionais que devo atender ?
  • Arquitetura utilizada
    • Utilizo uma arquitetura monolítica ou microservices ?
  • Recursos do Framework
    • O framework consegue atender a minha necessidade ? Por exemplo, irei utilizar programação reativa, websockets, etc.
  • Adoção pela comunidade e mercado
    • Analisar se o framework esta sendo adotado por outras empresas, quais cases já estão sendo resolvidos com a tecnologia, etc.
  • Evolução do framework
    • O framework tem uma evolução consistente, com novos releases, correção de bugs, etc.
  • Conhecimento da Equipe
    • Minha equipe possui conhecimento sobre o framework ?
  • Curva de aprendizado
    • Qual a curva de aprendizado para minha equipe ?

Estas são algumas das análises que podemos fazer para tomar uma decisão, mas vale lembra que cada empresa pode ter necessidades diferentes de acordo com os requisitos ou equipe.

Até a próxima.