Pular para o conteúdo principal

Como escolher um Framework para o meu projeto ?

Olá pessoal, hoje iremos abordar um assunto muito interessante, que é a escolha de um Framework, com certeza muitos desenvolvedores e arquitetos já ficaram com dúvidas na hora de tomar esta decisão tão importante, e que pode influenciar no sucesso do projeto.

Vou listar algumas práticas e experiências que adquiri nesses últimos anos, onde fui responsável por estas escolhas, iremos focar na plataforma Java, mas o processo de definição e escolha de APIs e Frameworks, pode ser adotado em qualquer outra linguagem, pois são passos que independente de tecnologia, ajudam a tomar as melhores decisões.

Devemos Usar um Framework ?

A necessidade do mercado por softwares evoluiu muito com o passar dos anos, hoje temos sistemas operando em quase todas as áreas: Financeira, Médica, Jurídica, entre outras, com toda essa demanda, o setor de desenvolvimento teve que evoluir para acompanhar a alta procura por sistemas em um curto prazo.

Os Frameworks entram nesse ponto, eles ajudam propondo soluções para problemas recorrentes que aparecem ao desenvolver sistemas diversos, exemplos:
Quando adotamos algum framework para desenvolver algumas camadas do nosso software, conseguimos muito benefícios, tais como: reduzir o tempo de desenvolvimento, aumentar a qualidade, reuso de funcionalidades, entre outros.

Como Escolher um Framework ?

Com certeza esse é um tópico que irá reunir muita discussão, pois a escolha de um framework, é algo que depende de vários fatores, vou citar alguns que podem ajudar na hora da escolha:
  • Suporte do Mantenedor
    • É importante que o desenvolvedor/empresa que desenvolveu o framework, dê suporte e seja ativo na comunidade.
  • Suporte da Comunidade
    • É muito bom quando o framework escolhido é bem aceito pela comunidade, seja em fóruns de discussão, em blogs, entre outros meios, assim podemos tirar dúvidas e esclarecer tópicos que aparecem no decorrer do desenvolvimento.
  • Conhecimento da Equipe / Curva de Aprendizado
    • É importante que a equipe tenha conhecimento sobre o framework escolhido;
    • Na escolha do framework, pode acontecer de que membros da equipe não o conheça, com este cenário, qual tempo um desenvolvedor vai levar para aprender detalhes funcionais do framework ?
  •  Protótipo
    • Antes de homologar um framework é muito importante desenvolver um Protótipo, assim podemos realizar testes funcionais e analisar se o mesmo irá atender aos requisitos do software
  • Atende aos Requisitos ?
    •  Para responder a esta pergunta, é fundamental os itens anteriores, pois com todos eles documentados conseguimos de forma clara e objetiva a resposta.

Não Existe Bala de Prata ?

É muito comum as empresas adotarem um framework como padrão, mas até onde isso é uma vantagem ou desvantagem ?

Vou listar abaixo alguns pontos dessa abordagem:

  • Vantagens
    • Melhor reuso de funcionalidades;
    • Membros da equipe podem focar seus estudos no framework, assim temos uma equipe mais preparada tecnicamente;
  • Desvantagens
    • Utilização de um framework X onde o Y seria mais adequado;
      •  Exemplo: Em uma aplicação Web que usa serviços REST, usar um framework Component Based onde um Action Based seria mais adequado.
    • Criar funcionalidades externas as propostas pelo framework, devido ao mesmo não atender aos requisitos de um novo software da empresa.

Conclusão

Como mencionei anteriormente, este é um assunto muito complexo em arquitetura de aplicações, porque pode trazer muitas consequências ao projeto, então é importante que a decisão final seja baseada em vários itens que comprovem que o framework escolhido, irá realmente atender aos requisitos do software que será desenvolvido.

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…