SlideShare uma empresa Scribd logo
JAVA: Por onde começar nos
dias de hoje?
FATEC DEV DAY
Sobre o palestrante
Por: Thiago Mazarão Maltempi
Github: http://github.com/maltempi
LinkedIn: https://br.linkedin.com/in/maltempi
--------------------
Formado em Análise e desenvolvimento de Sistemas
pela Fatec Mogi Mirim.
Trabalha com desenvolvimento desde 2011 e
atualmente trabalha no instituto Venturus (www.
venturus.org.br).
Nível 0 de aprendizado em Java.
Conceitos Básicos que você precisa saber antes de começar:
- Orientação a objetos (Classes, Objetos, classe abstrata,
interfaces, generics) e conceitos do Java Standard Edition.
- JDBC - Um overview apenas para saber como funciona
conexões com banco de dados, pool de conexões etc.
- Preciso ser um ninja Java SE para continuar? NÃO!
Áreas de atuação comuns para Java
JAVA SE
WEB
ANDROID
E o que basicamente preciso saber sobre WEB?
1. Aplicações Cliente - Servidor
2. Básico de HTTP para você criar RESTs.
3. Persistência de dados (banco de dados).
4. Inversão de controle e injeção de dependência
5. MVC
6. HTML + CSS + Javascript
7. Maven ou Gradle.
Leia sobre tudo isso, e a partir daí já comece a fazer NA
PRÁTICA!
OK, e por onde começar ou por onde NÃO começar?
Tente focar em coisas novas que estão rolando na comunidade
JAVA.
Tecnologias antigas exigem conhecimento de muitos detalhes.
Detalhes são importantes, mas eles devem ser aprendidos aos
poucos.
Tecnologias novas já tratam grandes problemas antigos,
causadores de longas curvas de aprendizado e calvices.
JAVA WEB, e os problemas de ontem (e as vezes de hj)
Muito código! E muito código significa:
- + Horas gastas desenvolvendo
- + Horas gastas testando
- + Bugs!
- + Horas gastas resolvendo bugs
- + E então quando encontra a causa do
bug...
Complexidade de configuração
… Você descobre que era uma configuração
errada em um XML.
Muitas coisas antes eram resolvidas com base
em configurações XML.
São rodadas em servidores de aplicação pesados
Tecnologias antigas são extremamente
dependentes de servidores de aplicação.
Dependendo do que é feito, é de difícil migração
entre servidores de aplicação
Ex: configurações de segurança, JMS (serviço
de mensageria)
Altíssimo custo para se criar testes unitários e
integração
E o frontend então...
● Backend e Frontend são fortemente acoplados
○ Mas era proposital, eles realmente pensavam que isso era uma boa
ideia.
○ Poderia até ser, mas hoje as interfaces WEB evoluíram.
● HTML, CSS e JS criados a partir do backend (JSP, JSF, GWT ...)
● Mistura de regras de negócio de frontend e backend, tornando-se uma
bagunça.
● Sem controle do frontend = gambiarras para suprir limitações.
Mas calma, esses problemas foram resolvidos!
E inclusive na plataforma Java!
Arquitetura de uma aplicação básica
BROWSER / MOBILE /
WHATEVER
Faz chamadas
HTTP
(GET, POST, PUT,
DELETE etc)
HTTP
REQUEST
SERVIDOR ( MVC / DATA PERSISTENCE / WHATEVER)
HTTP
RESPONSE
Base
de
Dados
REST
Podem ser
outras
interfaces
também.
Serviços
(Regras
de
negócio)
Persistência
(Forma de
acesso à base
de dados)
Framework MVC?
{
“name”: “Saul Goodman”,
“phone”: “505 503 4455”,
“email”: “saul@bettercallsaul.com”
}
Spring MVC!
Por exemplo, vamos cadastrar um usuário na base, então o client mandará um request
ao server na URL http://127.0.0.1:8080/usuario via método POST um dado em JSON ou
outro formato:
Framework MVC!
O que o framework MVC vai fazer? Criar uma interface entre o cliente e o servidor,
convertendo o dado enviado em objetos, para conseguirmos trabalhar:
@RestController(“/usuario”)
public class UsuarioController {
@Post
public void cadastrarUsuario(Usuario usuario) {
System.out.println(“Name: ” + usuario.getName());
System.out.println(“Phone: ” + usuario.getPhone());
System.out.println(“Email: ” + usuario.getEmail());
}
}
Framework MVC!!!!!
Note que a conversão de JSON para objeto Java foi totalmente transparente à nós,
programadores.
Foi o framework MVC (Spring MVC) quem fez toda essa parte para nós.
Esta foi a parte de controller da aplicação, onde interagimos com o o VIEW.
Spring MVC já não é novidade há um tempo, porém, é extremamente importante para
aplicações modernas.
Precisando de persistência de dados?
Spring data!
Sem mais necessidade de longas configurações
Sem mais criação de mais do mesmo (Connection Factories, classes generics de acesso
a dados etc).
Sem mais longos criterias ou HSQL.
Agora basta você fazer sua configuração em alto nível e depois criar suas entidades.
Precisando criar telas?
Misturar de código em backend com frontend não é mais uma boa ideia.
Perca o medo de Javascript, HTML e CSS, eles são seus amigos! :-)
Hoje em dia temos Bootstrap, SemanticUI, Angular JS, React JS, Ember JS e outros
123803812328102 frameworks para frontend!
Além de ferramentas que vão facilitar sua vida, por exemplo: Bower, Grunt, Gulp etc.
Configurações? Facilidade de deploy? SPRING BOOT!
Ele já tem uma configuração default para você começar a desenvolver
instantaneamente.
Altamente customizável.
Crie perfis de runtime para testes, desenvolvimento, homologação etc.
É prático: Ele cria um JAR que encapsula tudo para você: projetos, dependência,
servidor de aplicação etc.
Quer rodar seu projeto em produção?
java -jar meuProjetoEmProducao.jar
Sem mais desculpas para não fazer testes!
Crie um perfil de testes, tenha um ambiente
totalmente isolado e faça seus testes!
Isso é uma grande vantagens a outras tecnologias
antigas, que necessitavam de pesados servidores
de aplicação.
Por onde continuar?
Spring Security
Integração contínua (Jenkins, Sonar, Code review)
Arquiteturas micro services
Aplicações distribuídas
Spring Integration
Java: Por onde começar nos dias de hoje?

Mais conteúdo relacionado

Mais procurados

Vue.js - o framework progressivo
Vue.js - o framework progressivoVue.js - o framework progressivo
Vue.js - o framework progressivo
Vinicius Reis
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Alexandre Tarifa
 
Drupal 8 e ReactJS - DrupalCamp Campinas 2016
Drupal 8 e ReactJS -  DrupalCamp Campinas 2016Drupal 8 e ReactJS -  DrupalCamp Campinas 2016
Drupal 8 e ReactJS - DrupalCamp Campinas 2016
Taller Negócio Digitais
 
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Rodrigo Branas
 
JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010Eder Magalhães
 
Javaone2010
Javaone2010Javaone2010
Javaone2010
Wende Mendes
 
Introdução ao desenvolvimento de aplicações web
Introdução ao desenvolvimento de aplicações webIntrodução ao desenvolvimento de aplicações web
Introdução ao desenvolvimento de aplicações web
Rodrigo Branas
 
O futuro dos WebApps com AngularJS 2.0
O futuro dos WebApps com AngularJS 2.0O futuro dos WebApps com AngularJS 2.0
O futuro dos WebApps com AngularJS 2.0
Wilson Mendes
 
Navegando em um mar de siglas do mundo java
Navegando em um mar de siglas do mundo javaNavegando em um mar de siglas do mundo java
Navegando em um mar de siglas do mundo java
Andrei Tognolo
 
ASP .NET MVC - Você esta pronto para a pílula vermelha?
ASP .NET MVC - Você esta pronto para a pílula vermelha?ASP .NET MVC - Você esta pronto para a pílula vermelha?
ASP .NET MVC - Você esta pronto para a pílula vermelha?
Douglas Aguiar
 
Make Java fun again com Spring Boot
Make Java fun again com Spring BootMake Java fun again com Spring Boot
Make Java fun again com Spring Boot
Laís Neves
 
Java virtual machine quantas linguas fala a jvm2
Java virtual machine   quantas linguas fala a jvm2Java virtual machine   quantas linguas fala a jvm2
Java virtual machine quantas linguas fala a jvm2
Josenaldo de Oliveira Matos Filho
 
React - Biblioteca Javascript para criação de UI
React - Biblioteca Javascript para criação de UIReact - Biblioteca Javascript para criação de UI
React - Biblioteca Javascript para criação de UI
Cleiton Francisco
 
React - Introdução
React - IntroduçãoReact - Introdução
React - Introdução
Jefferson Mariano de Souza
 
Introdução ao AngularJS!
Introdução ao AngularJS!Introdução ao AngularJS!
Introdução ao AngularJS!
Diullian Casagrande
 
J boss seam
J boss seamJ boss seam
J boss seam
jornaljava
 
Performance com AngularJS
Performance com AngularJSPerformance com AngularJS
Performance com AngularJS
Wilson Mendes
 
genesis - Acelerando o desenvolvimento de aplicações desktop
genesis - Acelerando o desenvolvimento de aplicações desktopgenesis - Acelerando o desenvolvimento de aplicações desktop
genesis - Acelerando o desenvolvimento de aplicações desktop
Michel Graciano
 
Conheça o ASP.NET MVC 3
Conheça o ASP.NET MVC 3Conheça o ASP.NET MVC 3
Conheça o ASP.NET MVC 3
Victor Cavalcante
 

Mais procurados (20)

Vue.js - o framework progressivo
Vue.js - o framework progressivoVue.js - o framework progressivo
Vue.js - o framework progressivo
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
 
Drupal 8 e ReactJS - DrupalCamp Campinas 2016
Drupal 8 e ReactJS -  DrupalCamp Campinas 2016Drupal 8 e ReactJS -  DrupalCamp Campinas 2016
Drupal 8 e ReactJS - DrupalCamp Campinas 2016
 
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
 
JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010
 
Javaone2010
Javaone2010Javaone2010
Javaone2010
 
Introdução ao desenvolvimento de aplicações web
Introdução ao desenvolvimento de aplicações webIntrodução ao desenvolvimento de aplicações web
Introdução ao desenvolvimento de aplicações web
 
O futuro dos WebApps com AngularJS 2.0
O futuro dos WebApps com AngularJS 2.0O futuro dos WebApps com AngularJS 2.0
O futuro dos WebApps com AngularJS 2.0
 
Navegando em um mar de siglas do mundo java
Navegando em um mar de siglas do mundo javaNavegando em um mar de siglas do mundo java
Navegando em um mar de siglas do mundo java
 
ASP .NET MVC - Você esta pronto para a pílula vermelha?
ASP .NET MVC - Você esta pronto para a pílula vermelha?ASP .NET MVC - Você esta pronto para a pílula vermelha?
ASP .NET MVC - Você esta pronto para a pílula vermelha?
 
Make Java fun again com Spring Boot
Make Java fun again com Spring BootMake Java fun again com Spring Boot
Make Java fun again com Spring Boot
 
Java virtual machine quantas linguas fala a jvm2
Java virtual machine   quantas linguas fala a jvm2Java virtual machine   quantas linguas fala a jvm2
Java virtual machine quantas linguas fala a jvm2
 
React - Biblioteca Javascript para criação de UI
React - Biblioteca Javascript para criação de UIReact - Biblioteca Javascript para criação de UI
React - Biblioteca Javascript para criação de UI
 
React - Introdução
React - IntroduçãoReact - Introdução
React - Introdução
 
Introdução ao AngularJS!
Introdução ao AngularJS!Introdução ao AngularJS!
Introdução ao AngularJS!
 
J boss seam
J boss seamJ boss seam
J boss seam
 
Domain-Driven Design
Domain-Driven DesignDomain-Driven Design
Domain-Driven Design
 
Performance com AngularJS
Performance com AngularJSPerformance com AngularJS
Performance com AngularJS
 
genesis - Acelerando o desenvolvimento de aplicações desktop
genesis - Acelerando o desenvolvimento de aplicações desktopgenesis - Acelerando o desenvolvimento de aplicações desktop
genesis - Acelerando o desenvolvimento de aplicações desktop
 
Conheça o ASP.NET MVC 3
Conheça o ASP.NET MVC 3Conheça o ASP.NET MVC 3
Conheça o ASP.NET MVC 3
 

Semelhante a Java: Por onde começar nos dias de hoje?

Curso jsf
Curso jsfCurso jsf
Curso jsf
jornaljava
 
Jsf com hibernate, spring security e maven
Jsf com hibernate, spring security e mavenJsf com hibernate, spring security e maven
Jsf com hibernate, spring security e mavenLeandro Costa
 
ASP.NET Web Forms X ASP.NET MVC
ASP.NET Web Forms X ASP.NET MVCASP.NET Web Forms X ASP.NET MVC
ASP.NET Web Forms X ASP.NET MVC
guest489a65e
 
Apresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemApresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvem
Rodrigo Valerio
 
JSP - Java Serves Pages
JSP - Java Serves PagesJSP - Java Serves Pages
JSP - Java Serves Pages
Amanda Luz
 
ASP.NET MVC para desenvolvedores Web Forms (TechEd)
ASP.NET MVC para desenvolvedores Web Forms (TechEd)ASP.NET MVC para desenvolvedores Web Forms (TechEd)
ASP.NET MVC para desenvolvedores Web Forms (TechEd)
Giovanni Bassi
 
1409243945064
14092439450641409243945064
1409243945064
Fábio Junior
 
Introdução - Java WEB
Introdução - Java WEBIntrodução - Java WEB
Introdução - Java WEB
CodesHouse Treinamentos
 
Spring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em JavaSpring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em Java
Mariana de Azevedo Santos
 
Pangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud PlatformPangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud Platform
André Paulovich
 
Anatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer FacesAnatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer Faces
Rafael Ponte
 
XPT Framework
XPT FrameworkXPT Framework
XPT Framework
Alexsandro Pereira
 
Spring roo produtividade no java
Spring roo produtividade no javaSpring roo produtividade no java
Spring roo produtividade no java
Pedro Cavalero
 
Palestra Demoiselle V1.x no 11 FISL
Palestra Demoiselle V1.x no 11 FISL Palestra Demoiselle V1.x no 11 FISL
Palestra Demoiselle V1.x no 11 FISL
Emerson Saito
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.
Valmir Justo
 
Lab
LabLab
Desenvolvimento Ria com Java
Desenvolvimento Ria com JavaDesenvolvimento Ria com Java
Desenvolvimento Ria com Java
TI Infnet
 
Conceitos de Ajax
Conceitos de AjaxConceitos de Ajax
Conceitos de Ajax
Handerson Frota
 
Criando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindCriando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMind
Jaydson Gomes
 

Semelhante a Java: Por onde começar nos dias de hoje? (20)

Curso jsf
Curso jsfCurso jsf
Curso jsf
 
Jsf com hibernate, spring security e maven
Jsf com hibernate, spring security e mavenJsf com hibernate, spring security e maven
Jsf com hibernate, spring security e maven
 
ASP.NET Web Forms X ASP.NET MVC
ASP.NET Web Forms X ASP.NET MVCASP.NET Web Forms X ASP.NET MVC
ASP.NET Web Forms X ASP.NET MVC
 
Apresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemApresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvem
 
JSP - Java Serves Pages
JSP - Java Serves PagesJSP - Java Serves Pages
JSP - Java Serves Pages
 
ASP.NET MVC para desenvolvedores Web Forms (TechEd)
ASP.NET MVC para desenvolvedores Web Forms (TechEd)ASP.NET MVC para desenvolvedores Web Forms (TechEd)
ASP.NET MVC para desenvolvedores Web Forms (TechEd)
 
Jsf
JsfJsf
Jsf
 
1409243945064
14092439450641409243945064
1409243945064
 
Introdução - Java WEB
Introdução - Java WEBIntrodução - Java WEB
Introdução - Java WEB
 
Spring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em JavaSpring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em Java
 
Pangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud PlatformPangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud Platform
 
Anatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer FacesAnatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer Faces
 
XPT Framework
XPT FrameworkXPT Framework
XPT Framework
 
Spring roo produtividade no java
Spring roo produtividade no javaSpring roo produtividade no java
Spring roo produtividade no java
 
Palestra Demoiselle V1.x no 11 FISL
Palestra Demoiselle V1.x no 11 FISL Palestra Demoiselle V1.x no 11 FISL
Palestra Demoiselle V1.x no 11 FISL
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.
 
Lab
LabLab
Lab
 
Desenvolvimento Ria com Java
Desenvolvimento Ria com JavaDesenvolvimento Ria com Java
Desenvolvimento Ria com Java
 
Conceitos de Ajax
Conceitos de AjaxConceitos de Ajax
Conceitos de Ajax
 
Criando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindCriando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMind
 

Java: Por onde começar nos dias de hoje?

  • 1. JAVA: Por onde começar nos dias de hoje? FATEC DEV DAY
  • 2. Sobre o palestrante Por: Thiago Mazarão Maltempi Github: http://github.com/maltempi LinkedIn: https://br.linkedin.com/in/maltempi -------------------- Formado em Análise e desenvolvimento de Sistemas pela Fatec Mogi Mirim. Trabalha com desenvolvimento desde 2011 e atualmente trabalha no instituto Venturus (www. venturus.org.br).
  • 3. Nível 0 de aprendizado em Java. Conceitos Básicos que você precisa saber antes de começar: - Orientação a objetos (Classes, Objetos, classe abstrata, interfaces, generics) e conceitos do Java Standard Edition. - JDBC - Um overview apenas para saber como funciona conexões com banco de dados, pool de conexões etc. - Preciso ser um ninja Java SE para continuar? NÃO!
  • 4. Áreas de atuação comuns para Java JAVA SE WEB ANDROID
  • 5. E o que basicamente preciso saber sobre WEB? 1. Aplicações Cliente - Servidor 2. Básico de HTTP para você criar RESTs. 3. Persistência de dados (banco de dados). 4. Inversão de controle e injeção de dependência 5. MVC 6. HTML + CSS + Javascript 7. Maven ou Gradle. Leia sobre tudo isso, e a partir daí já comece a fazer NA PRÁTICA!
  • 6. OK, e por onde começar ou por onde NÃO começar? Tente focar em coisas novas que estão rolando na comunidade JAVA. Tecnologias antigas exigem conhecimento de muitos detalhes. Detalhes são importantes, mas eles devem ser aprendidos aos poucos. Tecnologias novas já tratam grandes problemas antigos, causadores de longas curvas de aprendizado e calvices.
  • 7. JAVA WEB, e os problemas de ontem (e as vezes de hj) Muito código! E muito código significa: - + Horas gastas desenvolvendo - + Horas gastas testando - + Bugs! - + Horas gastas resolvendo bugs - + E então quando encontra a causa do bug...
  • 8. Complexidade de configuração … Você descobre que era uma configuração errada em um XML. Muitas coisas antes eram resolvidas com base em configurações XML.
  • 9. São rodadas em servidores de aplicação pesados Tecnologias antigas são extremamente dependentes de servidores de aplicação. Dependendo do que é feito, é de difícil migração entre servidores de aplicação Ex: configurações de segurança, JMS (serviço de mensageria) Altíssimo custo para se criar testes unitários e integração
  • 10. E o frontend então... ● Backend e Frontend são fortemente acoplados ○ Mas era proposital, eles realmente pensavam que isso era uma boa ideia. ○ Poderia até ser, mas hoje as interfaces WEB evoluíram. ● HTML, CSS e JS criados a partir do backend (JSP, JSF, GWT ...) ● Mistura de regras de negócio de frontend e backend, tornando-se uma bagunça. ● Sem controle do frontend = gambiarras para suprir limitações.
  • 11. Mas calma, esses problemas foram resolvidos!
  • 12. E inclusive na plataforma Java!
  • 13. Arquitetura de uma aplicação básica BROWSER / MOBILE / WHATEVER Faz chamadas HTTP (GET, POST, PUT, DELETE etc) HTTP REQUEST SERVIDOR ( MVC / DATA PERSISTENCE / WHATEVER) HTTP RESPONSE Base de Dados REST Podem ser outras interfaces também. Serviços (Regras de negócio) Persistência (Forma de acesso à base de dados)
  • 14. Framework MVC? { “name”: “Saul Goodman”, “phone”: “505 503 4455”, “email”: “saul@bettercallsaul.com” } Spring MVC! Por exemplo, vamos cadastrar um usuário na base, então o client mandará um request ao server na URL http://127.0.0.1:8080/usuario via método POST um dado em JSON ou outro formato:
  • 15. Framework MVC! O que o framework MVC vai fazer? Criar uma interface entre o cliente e o servidor, convertendo o dado enviado em objetos, para conseguirmos trabalhar: @RestController(“/usuario”) public class UsuarioController { @Post public void cadastrarUsuario(Usuario usuario) { System.out.println(“Name: ” + usuario.getName()); System.out.println(“Phone: ” + usuario.getPhone()); System.out.println(“Email: ” + usuario.getEmail()); } }
  • 16. Framework MVC!!!!! Note que a conversão de JSON para objeto Java foi totalmente transparente à nós, programadores. Foi o framework MVC (Spring MVC) quem fez toda essa parte para nós. Esta foi a parte de controller da aplicação, onde interagimos com o o VIEW. Spring MVC já não é novidade há um tempo, porém, é extremamente importante para aplicações modernas.
  • 17. Precisando de persistência de dados? Spring data! Sem mais necessidade de longas configurações Sem mais criação de mais do mesmo (Connection Factories, classes generics de acesso a dados etc). Sem mais longos criterias ou HSQL. Agora basta você fazer sua configuração em alto nível e depois criar suas entidades.
  • 18. Precisando criar telas? Misturar de código em backend com frontend não é mais uma boa ideia. Perca o medo de Javascript, HTML e CSS, eles são seus amigos! :-) Hoje em dia temos Bootstrap, SemanticUI, Angular JS, React JS, Ember JS e outros 123803812328102 frameworks para frontend! Além de ferramentas que vão facilitar sua vida, por exemplo: Bower, Grunt, Gulp etc.
  • 19. Configurações? Facilidade de deploy? SPRING BOOT! Ele já tem uma configuração default para você começar a desenvolver instantaneamente. Altamente customizável. Crie perfis de runtime para testes, desenvolvimento, homologação etc. É prático: Ele cria um JAR que encapsula tudo para você: projetos, dependência, servidor de aplicação etc. Quer rodar seu projeto em produção? java -jar meuProjetoEmProducao.jar
  • 20. Sem mais desculpas para não fazer testes! Crie um perfil de testes, tenha um ambiente totalmente isolado e faça seus testes! Isso é uma grande vantagens a outras tecnologias antigas, que necessitavam de pesados servidores de aplicação.
  • 21.
  • 22. Por onde continuar? Spring Security Integração contínua (Jenkins, Sonar, Code review) Arquiteturas micro services Aplicações distribuídas Spring Integration