Qual minha opinião sobre spring-boot?
24/05/2017 10:40
3
Ola pessoal e Kiko.
Entrei hoje no grupo e que bom que temos! Obrigado kiko por mais esse...vc é cara!

Estes dias me perguntaram qual era minha opinião sobre Spring Boot. Hoje gostaria de postar minha resposta:
Todo almoço de família ao domingos, minha sobrinha de 3 anos começa aquela novela de chororo dizendo:
"Não quelu comer tomate, não quelu come alface, queluuuuu carrrninha :) "Isso me lembra alguns desenvolvedores de software por ai....
"Eu não quelu configurar Spring...eu não gosto de XML, XML é xatuuuu :( é bicho papão, não da pla fazer um app sem fazer isso? Eu não quelu....."Esse á minha opinião de spring boot, uma frescura para as crianças brincarem! Não posso negar que ficou legal, a configuração 100% automática de vários "cartuchos" de serviços diferenciados, mas isso faz o spring perder sua essência que é justamente ter a liberdade de um plano arquitetural em escolher vários produtos diferentes, intercambia-los e configura-los de a gosto, ao longo da evolução da solução.
Se engana quem acha que vai construir aplicações profissionais, com servidores customizadas e tunados com spring boot! Para soluções simples, sendo 1 banquinho de dados, transação local, 1 restzinho crud e meia duzia de telas, pode até ser que vai, mas para solução grandes porte, as configurações padrões não irão funcionar e você acaba tendo que aprender a desconfigurar o padrão boot. Eu já vi por ia um pessoal desfazendo, e tem uns códigos monstruosos. Ou seja, não faz sentido isso.

Tenho 10 anos de spring e aprendi configurar cada serviço na unha com xml mesmo...podendo otimizar isso com java ou até groovy ...não troco por nada! 
Spring é uma plataforma de serviços q vc liga botões para ativar os serviços ..a questão é que vc tem que aprender a fazer. Demora no começo mas depois vira rotina e normalidade. 
Tags: Spring


0
Alguém concorda? Discorda?
25/05/2017 08:46


3
Olha,
basicamente esta não é uma crítica ao Spring Boot, mas sim ao conceito de convenção sobre configuração, que não é uma coisa ruim, pelo contrário. O objetivo do Spring Boot não é dar uma configuração que sirva para qualquer ambiente, mas sim oferecer, tal como o próprio projeto se descreve, "an opinionated view of building production ready systems". Neste sentido, ele é uma visão pré-pronta que pode ou não atender os objetivos do seu projeto e, dado que é convenção sobre configuração, em nada tira a sua descrição a respeito do que seria a essência do Spring: "a liberdade de um plano arquitetural em escolher vários produtos diferentes, intercambia-los e configura-los de a gosto, ao longo da evolução da solução". 

Na realidade você pode mudar o que quiser no Spring Boot, que não te obriga a nada (tal como disse antes, é apenas uma sugestão de configuração).  Basta ler a documentação da ferramenta. Como todo framework baseado no princípio da convenção sobre configuração, a modificação das configurações não é algo tão complicado como você deixa transparecer (na realidade é bem simples): basta ler a documentação. Se os padrões fornecidos pelo Boot estão sendo vistos como algo que não sirva para o seu projeto, é só alterar, o que, como já disse, é trivial. 

Talvez o que você devesse discutir portanto é: as configurações padrão do Boot atendem meu projeto? Se não atendem e você continua as usar sem as alterar, ignora o fato de que é na realidade o mesmo Spring com o qual estamos acostumados a trabalhar por anos, só que com algumas facilidades a mais, e não lê a documentação do projeto. Bom: a limitação não está no framework, mas em quem o está usando.

Outro ponto da sua visão que está errado é este aqui: "Se engana quem acha que vai construir aplicações profissionais, com servidores customizadas e tunados com spring boot!". Se o que diz é verdade minha equipe inteira está sofrendo alucinações aqui. Temos aplicações profissionais, que atendem milhares de usuários, customizadas, com excelente desempenho, de altíssima qualidade e que são baseadas no boot e que movimentam milhões de Reais. Novamente, é questão de ler o manual. Você está se baseando no "preceito do idiota", isto é, de que algum imbecil iria pegar o framework (e isto se aplica a qualquer um) "as is" e não aplicar customização alguma na sua configuração. 

Sobre o tal "xororô" que você menciona, este não é um problema técnico, mas sim de RH. 


0
Valeu a resposta...como eu pensei, são ponto de visão sim.
Trocar configurações vc disse que é facil, mas para coisas simples é para pontos de produtos não são.
Problema de RH? Se fosse o não teriamos o spring-boot kkkkk
25/05/2017 09:41


2
Mas aí que tá Fernando, o ponto é justamente o que menciono na resposta. Se você tem necessidades muito específicas, nenhuma pré-configuração irá te atender. E logicamente a complexidade varia de projeto para projeto. Ignorar isto seria tolice.

E com relação à questão do RH, pra clarificar: se foi contratado alguém que faz este xororô todo que você diz para configurar um projeto, então não foi contratada a pessoa correta para o cargo. O Spring Boot ou qualquer outro framework nada tem a ver com isto.


0
"Spring Boot makes it easy to create Spring-powered, production-grade applications and services with absolute minimum fuss. It takes an opinionated view of the Spring platform so that new and existing users can quickly get to the bits they need."
25/05/2017 09:49


1
Sim, exatamente o que lhe disse ali em cima: é a questão da convenção sobre configuração, e não "ao invés da configuração".


2
@All,
Spring Boot RE-inventou praticamente o mercado de aplicações empresariais. É muito saudosismo achar que só configurando XML (E até masoquismo) se resolve problemas... Além perder horas para descobrir um erro de typo.

Hoje existem diversas empresas que estão Java e Spring por causa do Spring Boot. Que se tornou uma ferramenta altamente produtiva, e inserida em ambientes BEM complexos.

Outra coisa que vejo cada vez mais as pessoas usando, é o Gradle. Justamente pelo fato do maven (vanila), usar XML.
25/05/2017 10:01


0
Valeu pelas respostas.
Eu achou legal....to usando tb....mas ainda acho "muleta"!
Abraços!
25/05/2017 10:04


0
Na minha opinião a melhor coisa que poderia ocorrer para o Spring foi justamente o Boot. Em grande parte por causa das convenções sobre configuração, auto configurações, deploy no formato fat jar,  isto sem mencionar que tornou o desenvolvimento muito mais ágil na plataforma. E tudo isto sem perder um milímetro sequer da flexibilidade que já tínhamos antes.

Vejo o Boot como uma espécie de "Grails pro Java" hoje em dia e, sinceramente, dificilmente voltaria para o Spring puro.


3
Bom Fernando eu estava gostando do seu questionamento até ler o seguinte "Para soluções simples, sendo 1 banquinho de dados, transação local, 1 restzinho crud e meia duzia de telas" cara o spring boot não é pra isso e nem nunca foi o foco dele e eu sei que ainda tem empresas que precisam tunar seu servidor de aplicação, mas hoje em dia tudo está partindo para um principio de aplicações menores cada uma com o seu banco de dados e você escala tudo na horizontal não mais na vertical como era antes um Hexalogic com 20 cpus, o spring boot nasceu em um novo cenário onde as pessoas querem colocar coisas em produção o mais rapido possivel para que seus clientes usem e não aplicações que levam 3 anos para serem desenvolvidas. Temos exemplos como a Auto1 o maior ecommerce automotivo todo com spring boot eu tenho 70 maquinas na amazon rodando spring boot e por vezes configurados da maneira que eu preciso e não só com o "starter" e sim o starter ajuda e facilita muito agora entender o que o framework faz e qual é a melhor maneira de configurar vai de pessoa pra pessoa e isso vai acontecer com todos os frameworks, quantas pessoas aqui usam hibernate e só sabem q é anotar com @Entity e @Id e o resto parece magica?
25/05/2017 10:11


1
Oi Fernando,
talvez não como "muleta", mas sim como "ponte", especialmente para os que estão começando. Você começa com as configurações padrão, as testa empiricamente, aprende com elas e, com o tempo, vai descobrindo novos caminhos a partir daquele ponto, se aprofundando mais nas tecnologias envolvidas.

E por falar em iniciantes, este é outro ponto que o Boot trouxe de muito positivo: muita gente começou a conhecer, usar e valorizar o Spring graças ao Boot, que forneceu esta porta de entrada muito mais acessível pra quem estava dando os primeiros passos. Vou até um pouco além viu: assim como o Spring valorizou o Java EE, e com o tempo o próprio Spring foi perdendo popularidade, o Boot acabou alavancando a popularidade da plataforma como um todo (Java EE e o próprio ecossistema Spring). É interessantíssimo observar, por exemplo, que muitos projetos que as pessoas ouviam falar mas não conseguiam sequer configurar direito (como o Spring Cloud, Batch ou mesmo o Spring Data) tiveram um salto de popularidade graças à convenção sobre configuração.

Neste sentido, pensando o Boot um pouco além, ele tem outro papel vital na nossa comunidade: o de aumentar o alcance para aqueles que tinham muita dificuldade em entrar.


0
Puxa Felipe vc falo tudo cara! Parabéns! É exatamente isso.....Eu to nesse contexto ai....
Imagina vc perder a força de tunnar um server e ficar fazendo código proprietário boot para tunning? kkk Sem chance, sem sentido e  nunca vai dar! Tenho dezenas de produtos em décadas "spring base" tunnados aqui, que ao longo dos anos tive que intercambiar de provider de services....datasources, pooling, mensagerias, web services e etc...se não fosse a liberdade da configuração manual via xml/java , eu tinha morrido! Assim, justificando meu ponto de vista do post inicial.
Mas vendo pelo seu ponto de vista, do futuro, de microservices....até q muda minha opinião......enfim...mas pra frente veremos.
25/05/2017 10:21


0
Então Fernando, é basicamente isso que eu falei, mas com o boot você tbm tem toda essa liberdade que tem com xml/java e fica ainda muito mais facil do tipo você precisar colocar uma propriedade nova no seu .properties e a aplicação já sai funcionando da maneira que você quer, não é muito melhor colcar propriedade na sua app pra configurar o Hibernante do que ter que escrever um xml ou uma classe java? E oq o Kiko falou acho q foi o boot que deu uma força para a comunidade e varias empresas começaram a adotar, como o Elio falou, por ser facil e por vc conseguir ir pra produção muito mais rapido. Vale a pena testar em um projeto seu e garanto que você não vai se arrepender e vai mudar sua opnião hehe.
Em 2014 logo no começo do spring boot eu testei ele, mas só por curiosidade e comecei um projeto novo com spring com xml/java e cara até hoje me arrependo por não ter feito com spring boot xD
25/05/2017 10:39


0
Acho que o boot foi fundamental para o adesão de novos usuários para a plataforma java, até então, java sempre foi um parto para configurar, claro que apos quebrar a cabeça algumas dezenas de vezes você pega o jeito, mas a cada novo projeto era necessário ver as configurações de projetos passados para ver por que meu datasouce não está funfando kkkk... Bem, o boot ajuda e como dito por Weissman e Adorno, não impede você de configurar coisas mais especificas e "Tunnar" sua aplicação. E um projeto vencedor e disruptivo para a plataforma java, eu diria
26/05/2017 10:57


0
O Spring Boot se tornou uma verdadeira alavanca para novos projetos, e acredito que facilitou muito a parte chata do Spring : a configuração.

Perceba que agora muitos projetos novos são feitos sempre com Spring Boot pela sua facilidade de uso, mas também é possível fazer coisa robusta com ele.

Além disso estão aparecendo projetos bem interessantes, como por exemplo o JHipster .
30/05/2017 11:50



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails, Spring e mais com a Formação itexto!

Livro de Spring


/dev/All

Os melhores blogs de TI
em um único lugar!

 
Spring Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.