Pular para o conteúdo principal

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.

Comentários

Postagens mais visitadas deste blog

Utilizando LocalDate, LocalDateTime e LocalTime na Prática

Tudo bem pessoal, hoje iremos avaliar e analisar operações de manipulação de Datas envolvendo a JavaTime API introduzida no Java 8.

Exemplos da java.time API
Já se passaram alguns anos desde o lançamento do Java 8 e mesmo após este período, há empresas que desconhecem o poder da java.time API, esta foi uma nova API de datas introduzida no Java 8 visando resolver problemas que tínhamos com as velhas classes Date e Calendar.

Vamos mostrar vários exemplos práticos do uso da API:
Criação de objetos No exemplo abaixo, estamos criando os objetos para manipulação de datas, perceba que temos 3 tipos, sendo LocalDate para manipular datas, LocalDateTime para manipular data/hora e LocalTime para horas:
LocalDate localDate = LocalDate.now(); LocalDateTime localDateTime = LocalDateTime.now(); LocalTime localTime = LocalTime.now();
Utilizando formatação Aqui realizamos a operação de formatação, perceba que não foi necessário utilizar a classe SimpleDateFormat, que usaríamos em conjunto com D…

Lendo e Manipulando arquivos CSV com Java

Olá hoje veremos como realizar a leitura e manipulação de arquivos CSV com Java, mostrando que as novas versões da plataforma Java deixaram algumas tarefas simples de serem realizadas.

Exemplo de Arquivo Hoje em dia é comum ao realizar integrações ou carga de dados o uso de arquivos CSV, isto porque, este arquivo possui uma estrutura de fácil entendimento e simples de manipular na maioria das plataformas de desenvolvimento.

Para realizar a leitura dos dados vamos manipular um arquivo com as seguintes colunas: namecpfagephone address:

name;cpf;age;phone;address caio;123456789;20;1145223643;AvenidaPaulista vinicius;147852369;18;1125253625;AvenidaManoel sandra;963258741;30;1174587858;RuaTeixeira regina;125478522;40;1145254536;RuaFernando fernando;785245563;42;1145253669;RuaPereira augusto;456123014;50;1125363633;AvenidaPaulinia maria;456123789;10;1125455525;AvenidaNossaSenhora
Para representar os dados em objetos Java iremos utilizar a seguinte classe:

importlombok.AllArgsConstruc…

Versionamento de Banco Dados com Flyway

Olá pessoal, hoje iremos analisar e aprender como realizar o versionamento e gerenciamento das bases de dados relacionais utilizando o framework Flyway.

Versionamento de Banco Dados Ao trabalhar com desenvolvimento de sistemas é comum realizarmos o versionamento, isso porque uma aplicação pode necessitar de correções, novas funcionalidades e evoluções, onde para garantir a compatibilidade e cuidar do seu ciclo de vida, geramos versões onde é especificado quais itens estão presentes em cada release.
Vamos imaginar seguinte cenário: Sistema ERP1.0.0: Entrega dos módulos Financeiro e RH;1.1.0: Entrega do módulo Contas a Receber. Perceba que a ideia é controlar o que cada versão possui de diferente, e para controlar essas mudanças no lado da aplicação existem várias técnicas e ferramentas, mas e para controlar as mudanças no lado do Banco de dados ? 
Para isso podemos utilizar ferramentas de versionamento que ajudam a realizar este controle, a ferramenta que iremos utilizar é o Flyway.
Con…