E o Java, hein?
Quem sou eu e por que estou aqui?
Antonio Lazaro Carvalho Borges
● antonio.lazaro@gmail.com
● @antonio_lazaro
● https://www.slideshare.net/antoniolazarobr
● https://www.linkedin.com/in/antonio-lazaro-
carvalho-borges-a78a1514/
Nosso grupo de Java
● https://pt-br.facebook.com/javabahia
● http://javabahia.blogspot.com.br/
● https://medium.com/javabahia
● https://twitter.com/javabahia
● https://www.youtube.com/soujava
Mas o Java não morreu?
Fonte: http://www.jb.com.br/internacional/noticias/2017/05/01/bbc-homem-mais-velho-do-
mundo-morre-na-indonesia-aos-146-anos/
Mas o Java não morreu?
https://www.tiobe.com/tiobe-index/
Mas o Java não morreu?
http://pypl.github.io/PYPL.html
Mas o Java não morreu? Vagas
https://medium.com/development-io/the-7-most-in-demand-programming-languages-of-2018-9c1b7fc0abc6
Mas o Java não morreu?
https://insights.stackoverflow.com/survey/2018/#most-popular-technologies
Mas o Java não morreu?
O que está rolando?
Java 9 -> Java 10 -> Java 11 -> Java 12
Mudança na forma de evoluir o Java - Tempo de release menor
● 7 - 28/07/2011
● 8 - 14/04/2015 (4 anos | 194 semanas | 45 meses | 1357 dias)
● 9 - 27/07/2017 (2 anos | 119 semanas | 27 meses | 836 dias)
● 10 - 20/03/2018 (8 meses | 34 semanas | 237 dias)
● 11 - 25/09/2018 (6 meses | 27 semanas | 190 dias)
● 12 - 19/03/2019 (6 meses | 25 semanas | 176 dias)
Java Release Train
● Java 8 - Lambda atrasou lançamento pelo menos 2x. Data inicial era 2013, foi
lançado em 2015.
● Java 9 - Project Digsaw atrasou lançamento em quase 1 ano
O que fazer para atender demanda de mercado?
1. Update-releases - A cada 3 meses
2. Feature-releases - A cada 6 meses
3. Long-term-support-release (LTS) - A cada 3 anos
Java Release Train
1. Update-releases (trimestrais)
a. Correção de bugs
b. Correção de aspectos de segurança
2. Feature-releases (semestrais)
a. Lançamento de novas funcionalidades
b. Atualizações de APIs
c. Melhorias na JVM
3. Long-term-support-release (LTS) (3 anos)
a. Maior estabilidade e garantia de continuidade de uma release
b. Oracle JDK 8 para atualizar a partir de Janeiro de 2019 deve ter licença
comercial
Java Release Train
1. Beneficios:
a. Oportunidade de melhorar a linguagem
b. Flexibilidade na evolução
c. Melhorias para a plataforma trazendo mais segurança e qualidade para o
projeto
1. Característica
a. Versionamento baseado em tempo (http://openjdk.java.net/jeps/322)
Então Java não é mais free?
1. Não! Java is still free.
(https://docs.google.com/document/d/1qKmU9Jfa3exLMYkgaERbzntGhmpYGf5
V7pPcgKj03ds/edit#heading=h.p3qt2oh5eczi)
Oracle JDK 8 está no processo de "Fim de Atualizações Públicas" o que significa que não haverá mais atualizações
gratuitas para fins comerciais ao final de Janeiro de 2019. Porém, desde o Java SE 9, a Oracle está disponibilizando
também o builds OpenJDK que são livres para uso comercial, e há também builds gratuitos do OpenJDK de outras
empresas como AdoptOpenJDK, Azul, IBM, Red Hat, Linux distros e outros.
Essas empresas provaram que suas implementações atendem a todos os requisitos da especificação Java SE ao
passarem pelos testes de Technology Compatibility Kit (TCK).
Então Java não é mais free?
Continuando com o Java SE 8
Algumas pessoas querem continuar utilizando o Java SE 8 por vários motivos.
1. Oracle proverá atualizações públicas do Oracle JDK 8 até, pelo menos, Dezembro de 2020, para uso
em computador pessoal e Janeiro de 2019 para uso comercial. Depois disso, os usuários podem ou
ir para o plano pago ou utilizar o binário de Java SE 8 / OpenJDK 8 de outra empresa.
a. Você pode também continuar utilizando o Oracle JDK 8 por tempo indefinido sem updates.
1. Caso você não esteja utilizando o Oracle JDK 8, então o seu atual provedor de Java SE 8 /
OpenJDK 8 proverá atualizações de maneira grátis e/ou planos de suportes pagos para você
escolher.
Então Java não é mais free?
Usando Java SE 11 (LTS)
Você tem várias opções. Leia com atenção, em especial dado que o Oracle JDK está mudando a partir do Java SE 11.
1. A partir do Java SE 11, a Oracle passa a fornecer seu próprio JDK (baseado no OpenJDK) através de:
a. Binários OpenJDK da Oracle - sob licença Open Source existente GPLv2+CE, e
b. Oracle JDK - Sob uma licença comercial paga (mas gratuita para desenvolvimento), para aqueles que
não desejem utilizar a GPLv2+CE, ou que estejam utilizando o Oracle JDK com um produto ou serviço
da Oracle.
NOTA: A Oracle planeja fornecer atualizações para seus Binários do OpenJDK por duas atualizações trimestrais e
posteriormente migrar os usuários para a próxima versão, a cada seis meses (incluindo a versão LTS)
2. Você também pode utilizar as distribuições binárias do Java SE / OpenJDK de diversos outros fornecedores,
incluindo distribuições Linux, AdoptOpenJDK, Azul, IBM, Oracle, Red Hat, e outros. . Isso inclui atualizações
por períodos variados, dependendo se é uma versão LTS ou não.
E a evolução técnica da linguagem?
● Java 8
○ Stream Collections
○ Default methods para interfaces
○ Lambda
○ Method reference
● Java 9
○ Java 9 REPL (JShell)
○ Private methods in Interfaces
○ Melhorias no gerenciamento de Strings (30-50% menos de consumo de memória)
○ Java 9 Module System (Jigsaw Project or JPMS - Java Platform Module System)
○ Reactive Streams (Publish-Subscribe Framework)
○ HTTP 2 Client
○ Process API
● Java 10
○ Local Variable Type Inference (https://slides.com/mateusmalaquias/contatos-imediatos-var-java10#/)
○ Time-Based Release Versioning
● Java 11
○ Remoção Java EE e Corba Modules
○ Release LTS
○ Local-Variable Syntax for Lambda Parameters
E a evolução técnica da linguagem?
● Próxima release?
○ https://openjdk.java.net/projects/jdk/12/
Microprofile
Microprofile
Microprofile
E o Java EE 8?
Fonte: https://vaadin.com/blog/-/blogs/vaadin-community-survey-learn-more-about-our-users-
E o Java EE 8?
● JSF 2.3 (JSR 372)
a. Websockets
b. Multi-field validation
c. Java time Support
d. UI Data e ui:repeat supports Map and Itarable
● Servlet 4.0 (JSR 369)
a. Support to HTTP 2
● Jax-RS 2.1 (JSR 370)
a. Reactive API
b. Support for SSE (Server Sent Events)
c. Improved CDI Integration
d. Support for Non-blocking IO in Providers
E o Java EE 8?
● CDI 2.0 (JSR 365)
a. Java SE BootStrap
b. Asynchronous Events
● Bean validation 2.0 (JSR 380)
a. Support for LocalTime, Optional
b. Customized constraint validations
● JSON-B (JSR 367)
a. Standardize means of converting Json to Java Objects and vice-versa
(Gson, Jackson, etc).
● Java EE Security API (JSR 375)
● JCache (JSR 107)
E o Java EE 8? - Disponível!
E o futuro do Java EE 8?
E o Java EE 9? EE4J? Jakarta?
E o spring? Para onde vai?
Fonte: https://www.udemy.com/spring-framework-video-tutorial/
E o spring? Para onde vai?
● JDK 8 minimum requirement
● Support for Java 9
● Http 2 on client and server
● Reactive streams based controllers
● Support for Kotlin language
● Support for running on a server programmatically
● Testing improvements with Junit 5 suport
● Mais informações: https://github.com/spring-projects/spring-framework/wiki/What%27s-
New-in-the-Spring-Framework
E esse tal de microserviços?
Fonte: http://comunytek.com/en/introduction-to-microservices/
E esse tal de microserviços?
Nosql
● Spring Data
● JNosql
Java é complicado para configurar...
Java é complicado para configurar…(Maven archetype)
Java é complicado para configurar...Spring Boot
Java é complicado para configurar...SdkMan
Java é complicado para configurar...JHipster
Java é complicado para configurar...Verboso? Spark
Java é complicado para configurar...Pronto, já
pode ser hipster
Ah, não gosto de Java (linguagem)
Ah, não gosto de Java (linguagem)
Ah, não gosto de Java (linguagem)
JVM é tão hipster que roda as linguagens
mais hipsters
● Javascript (nashhorn)
● http://j-php.net/
● http://www.jython.org/
● http://jruby.org/
Não gostei de nada disso. Tem outra opção?
Dúvidas?
Fim.
Referências
● Java 9:
○ http://hipsters.tech/e-o-futuro-do-java-hipsters-27/
○ https://www.linkedin.com/pulse/o-java-9-est%C3%A1-pronto-e-voc%C3%AA-fernando-almeida
○ http://www.java9countdown.xyz/
○ https://docs.oracle.com/javase/9/whatsnew/toc.htm#JSNEW-GUID-C23AFD78-C777-460B-8ACE-58BE5EA681F6
○ http://openjdk.java.net/projects/jdk9/
○ https://en.eventials.com/Globalcode/tdc-sp-2017-stadium-sabado-8/
○ https://dzone.com/articles/jdk-9-is-feature-complete
○ https://www.pluralsight.com/blog/software-development/java-9-new-features
○ https://www.slideshare.net/SimonRitter/55-new-features-in-jdk-9
○ http://blog.takipi.com/5-features-in-java-9-that-will-change-how-you-develop-software-and-2-that-wont/
○ Shell:
■ https://digaotutoriais.wordpress.com/2016/04/17/java-9-introducao-ao-jshell-projeto-kulla/
■ http://blog.caelum.com.br/java-9-na-pratica-repl
○ Private interfaces:
■ https://stackoverflow.com/questions/29040821/java-9-private-interface-methods-example-use-case
■ http://blog.joda.org/2016/09/private-methods-in-interfaces-in-java-9.html
■ http://www.journaldev.com/12850/java9-private-methods-in-interface
Referências
○ Strings:
■ https://blogs.oracle.com/java/strings-in-java-9
■ http://cr.openjdk.java.net/~shade/density/state-of-string-density-v1.txt
■ http://vojtechruzicka.com/java-9-compact-strings/
○ Módulos:
■ https://en.eventials.com/Globalcode/tdc-sp-2017-stadium-sabado-8/
■ http://www.devmedia.com.br/introducao-ao-java-9-conheca-os-novos-recursos/34481
■ http://www.argonavis.com.br/palestras/tdc2017/tdc_java9.pdf
■ https://www.pluralsight.com/blog/software-development/java-9-new-features
○ Outras novidades:
■ Reactive streams:
■ http://javasampleapproach.com/java/java-9/java-9-flow-api-reactive-streams
■ http://javasampleapproach.com/java/java-9/java-9-flow-api-example-publisher-and-subscriber
■ http://www.javaworld.com/article/3198904/learn-java/java-9s-other-new-enhancements-part-6-concurrency.html
■ Http 2 client:
■ https://www.infoq.com/articles/Java9-New-HTTP-2-and-REPL
■ https://blog.idrsolutions.com/2017/05/why-http2-client-in-java-9-is-important/
■ https://jaxenter.com/http-2-ready-for-java-9-130105.html
■ https://labs.consol.de/development/2017/03/14/getting-started-with-java9-httpclient.html
■ https://dzone.com/articles/java-9-http-20
Referências
■ Process API:
a. http://www.javaworld.com/article/3176874/java-language/java-9s-other-new-enhancements-part-3.html
b. https://blog.oio.de/2016/09/02/process-api-java-9/
c. http://www.baeldung.com/java-9-process-api
○ Java 10:
■ http://openjdk.java.net/projects/jdk10/
■ Valhalla
■ https://en.wikipedia.org/wiki/Project_Valhalla_(Java_language)
■ https://www.javacodegeeks.com/2016/10/value-project-valhalla.html
■ http://www.oracle.com/technetwork/java/jvmls2016-goetz-3126134.pdf
■ Money:
■ http://javamoney.github.io/
■ http://www.baeldung.com/java-money-and-currency
■ http://www.mscharhag.com/java/java-jsr-354-money-and-currency-api
Referências
■ Java EE 8:
a. https://www.slideshare.net/rcuprak/java-ee-8-update
b. http://blog.rahmannet.net/2017/03/vaadin-community-survey-confirms-java.html
c. https://javaee-guardians.io/java-ee-adoption-surveys/
d. Java EE Guardians:
i. https://javaee-guardians.io/
ii. http://eldermoraes.com/2017/06/07/top-20-java-ee-experts-to-follow-on-twitter/
e. JSRs:
i. JEE: https://www.jcp.org/en/jsr/detail?id=366
ii. Servlet 4.0: https://jcp.org/en/jsr/detail?id=369
iii. JSON-p 1.1: https://jcp.org/en/jsr/detail?id=374
iv. JSON-B 1.0: https://jcp.org/en/jsr/detail?id=367
v. CDI: 2.0: https://www.jcp.org/en/jsr/detail?id=365
1. https://medium.com/javabahia/finalmente-cdi-2-0-foi-lan%C3%A7ado-2911eec56ac8
2. https://otaviojava.wordpress.com/2016/04/28/cdi-2-0/
3. http://www.cdi-spec.org/news/2017/05/15/CDI_2_is_released/
4. http://www.cdi-spec.org/news/2017/02/01/CDI_2_is_in_public_review/
5. https://www.slideshare.net/ThorbenJanssen/cdi-20-deep-dive
6. http://www.mastertheboss.com/jboss-frameworks/cdi/introduction-to-cdi-2-0-api
Referências
i. Bean validation 2.0: https://www.jcp.org/en/jsr/detail?id=380
1. http://beanvalidation.org/news/2016/07/15/bean-validation-2-0-is-coming/
2. http://beanvalidation.org/news/2017/08/07/bean-validation-2-0-is-a-spec/
3. http://beanvalidation.org/
4. http://in.relation.to/2017/08/07/and-here-comes-hibernate-validator-60/
5. http://beanvalidation.org/specification/
6. http://in.relation.to/2017/08/07/and-here-comes-hibernate-validator-60/
ii. JEE Security: https://www.jcp.org/en/jsr/detail?id=375
■ Spring 5:
a. https://spring.io/blog/2016/09/22/new-in-spring-5-functional-web-framework
b. http://www.baeldung.com/spring-5-functional-web
c. https://dzone.com/articles/whats-new-in-spring-framework-5
d. https://dzone.com/articles/new-in-spring-5-functional-web-framework
e. https://www.slideshare.net/AliakseiZhynhiarousk/reactive-spring-framework-5
Referências
i. Microprofile:
1. https://microprofile.io/faq
2. https://microprofile.io/projects
a. http://tomee.apache.org/apache-tomee.html
b. https://www.payara.fish/
c. https://developer.ibm.com/wasdev/websphere-liberty/
d. http://wildfly-swarm.io/
ii. Microservices:
1. Lagom:
a. https://www.lagomframework.com/
b. https://github.com/lagom/lagom
c. http://www.baeldung.com/lagom-reactive-microservices
d. https://www.infoq.com/news/2016/03/lagom-microservices-framework
2. Vertx
a. http://vertx.io/
b. http://tutorials.jenkov.com/vert.x/index.html
c. https://www.infoq.com/br/news/2012/05/vertx
Referências
i. Nosql
1. Jnosql:
a. https://otaviojava.wordpress.com/tag/jnosql/
b. https://github.com/JNOSQL
c. http://jnosql.org/
2. Spring data:
a. http://projects.spring.io/spring-data/
ii. Spring boot:
1. https://projects.spring.io/spring-boot/
2. https://start.spring.io/
iii. JHipster:
1. https://jhipster.github.io/

Java pode ser_hipster

  • 1.
    E o Java,hein?
  • 2.
    Quem sou eue por que estou aqui? Antonio Lazaro Carvalho Borges ● antonio.lazaro@gmail.com ● @antonio_lazaro ● https://www.slideshare.net/antoniolazarobr ● https://www.linkedin.com/in/antonio-lazaro- carvalho-borges-a78a1514/
  • 3.
    Nosso grupo deJava ● https://pt-br.facebook.com/javabahia ● http://javabahia.blogspot.com.br/ ● https://medium.com/javabahia ● https://twitter.com/javabahia ● https://www.youtube.com/soujava
  • 4.
    Mas o Javanão morreu? Fonte: http://www.jb.com.br/internacional/noticias/2017/05/01/bbc-homem-mais-velho-do- mundo-morre-na-indonesia-aos-146-anos/
  • 5.
    Mas o Javanão morreu? https://www.tiobe.com/tiobe-index/
  • 6.
    Mas o Javanão morreu? http://pypl.github.io/PYPL.html
  • 7.
    Mas o Javanão morreu? Vagas https://medium.com/development-io/the-7-most-in-demand-programming-languages-of-2018-9c1b7fc0abc6
  • 8.
    Mas o Javanão morreu? https://insights.stackoverflow.com/survey/2018/#most-popular-technologies
  • 9.
    Mas o Javanão morreu?
  • 10.
    O que estárolando?
  • 11.
    Java 9 ->Java 10 -> Java 11 -> Java 12
  • 12.
    Mudança na formade evoluir o Java - Tempo de release menor ● 7 - 28/07/2011 ● 8 - 14/04/2015 (4 anos | 194 semanas | 45 meses | 1357 dias) ● 9 - 27/07/2017 (2 anos | 119 semanas | 27 meses | 836 dias) ● 10 - 20/03/2018 (8 meses | 34 semanas | 237 dias) ● 11 - 25/09/2018 (6 meses | 27 semanas | 190 dias) ● 12 - 19/03/2019 (6 meses | 25 semanas | 176 dias)
  • 13.
    Java Release Train ●Java 8 - Lambda atrasou lançamento pelo menos 2x. Data inicial era 2013, foi lançado em 2015. ● Java 9 - Project Digsaw atrasou lançamento em quase 1 ano O que fazer para atender demanda de mercado? 1. Update-releases - A cada 3 meses 2. Feature-releases - A cada 6 meses 3. Long-term-support-release (LTS) - A cada 3 anos
  • 14.
    Java Release Train 1.Update-releases (trimestrais) a. Correção de bugs b. Correção de aspectos de segurança 2. Feature-releases (semestrais) a. Lançamento de novas funcionalidades b. Atualizações de APIs c. Melhorias na JVM 3. Long-term-support-release (LTS) (3 anos) a. Maior estabilidade e garantia de continuidade de uma release b. Oracle JDK 8 para atualizar a partir de Janeiro de 2019 deve ter licença comercial
  • 15.
    Java Release Train 1.Beneficios: a. Oportunidade de melhorar a linguagem b. Flexibilidade na evolução c. Melhorias para a plataforma trazendo mais segurança e qualidade para o projeto 1. Característica a. Versionamento baseado em tempo (http://openjdk.java.net/jeps/322)
  • 16.
    Então Java nãoé mais free? 1. Não! Java is still free. (https://docs.google.com/document/d/1qKmU9Jfa3exLMYkgaERbzntGhmpYGf5 V7pPcgKj03ds/edit#heading=h.p3qt2oh5eczi) Oracle JDK 8 está no processo de "Fim de Atualizações Públicas" o que significa que não haverá mais atualizações gratuitas para fins comerciais ao final de Janeiro de 2019. Porém, desde o Java SE 9, a Oracle está disponibilizando também o builds OpenJDK que são livres para uso comercial, e há também builds gratuitos do OpenJDK de outras empresas como AdoptOpenJDK, Azul, IBM, Red Hat, Linux distros e outros. Essas empresas provaram que suas implementações atendem a todos os requisitos da especificação Java SE ao passarem pelos testes de Technology Compatibility Kit (TCK).
  • 17.
    Então Java nãoé mais free? Continuando com o Java SE 8 Algumas pessoas querem continuar utilizando o Java SE 8 por vários motivos. 1. Oracle proverá atualizações públicas do Oracle JDK 8 até, pelo menos, Dezembro de 2020, para uso em computador pessoal e Janeiro de 2019 para uso comercial. Depois disso, os usuários podem ou ir para o plano pago ou utilizar o binário de Java SE 8 / OpenJDK 8 de outra empresa. a. Você pode também continuar utilizando o Oracle JDK 8 por tempo indefinido sem updates. 1. Caso você não esteja utilizando o Oracle JDK 8, então o seu atual provedor de Java SE 8 / OpenJDK 8 proverá atualizações de maneira grátis e/ou planos de suportes pagos para você escolher.
  • 18.
    Então Java nãoé mais free? Usando Java SE 11 (LTS) Você tem várias opções. Leia com atenção, em especial dado que o Oracle JDK está mudando a partir do Java SE 11. 1. A partir do Java SE 11, a Oracle passa a fornecer seu próprio JDK (baseado no OpenJDK) através de: a. Binários OpenJDK da Oracle - sob licença Open Source existente GPLv2+CE, e b. Oracle JDK - Sob uma licença comercial paga (mas gratuita para desenvolvimento), para aqueles que não desejem utilizar a GPLv2+CE, ou que estejam utilizando o Oracle JDK com um produto ou serviço da Oracle. NOTA: A Oracle planeja fornecer atualizações para seus Binários do OpenJDK por duas atualizações trimestrais e posteriormente migrar os usuários para a próxima versão, a cada seis meses (incluindo a versão LTS) 2. Você também pode utilizar as distribuições binárias do Java SE / OpenJDK de diversos outros fornecedores, incluindo distribuições Linux, AdoptOpenJDK, Azul, IBM, Oracle, Red Hat, e outros. . Isso inclui atualizações por períodos variados, dependendo se é uma versão LTS ou não.
  • 19.
    E a evoluçãotécnica da linguagem? ● Java 8 ○ Stream Collections ○ Default methods para interfaces ○ Lambda ○ Method reference ● Java 9 ○ Java 9 REPL (JShell) ○ Private methods in Interfaces ○ Melhorias no gerenciamento de Strings (30-50% menos de consumo de memória) ○ Java 9 Module System (Jigsaw Project or JPMS - Java Platform Module System) ○ Reactive Streams (Publish-Subscribe Framework) ○ HTTP 2 Client ○ Process API ● Java 10 ○ Local Variable Type Inference (https://slides.com/mateusmalaquias/contatos-imediatos-var-java10#/) ○ Time-Based Release Versioning ● Java 11 ○ Remoção Java EE e Corba Modules ○ Release LTS ○ Local-Variable Syntax for Lambda Parameters
  • 20.
    E a evoluçãotécnica da linguagem? ● Próxima release? ○ https://openjdk.java.net/projects/jdk/12/
  • 21.
  • 22.
  • 23.
  • 24.
    E o JavaEE 8? Fonte: https://vaadin.com/blog/-/blogs/vaadin-community-survey-learn-more-about-our-users-
  • 25.
    E o JavaEE 8? ● JSF 2.3 (JSR 372) a. Websockets b. Multi-field validation c. Java time Support d. UI Data e ui:repeat supports Map and Itarable ● Servlet 4.0 (JSR 369) a. Support to HTTP 2 ● Jax-RS 2.1 (JSR 370) a. Reactive API b. Support for SSE (Server Sent Events) c. Improved CDI Integration d. Support for Non-blocking IO in Providers
  • 26.
    E o JavaEE 8? ● CDI 2.0 (JSR 365) a. Java SE BootStrap b. Asynchronous Events ● Bean validation 2.0 (JSR 380) a. Support for LocalTime, Optional b. Customized constraint validations ● JSON-B (JSR 367) a. Standardize means of converting Json to Java Objects and vice-versa (Gson, Jackson, etc). ● Java EE Security API (JSR 375) ● JCache (JSR 107)
  • 27.
    E o JavaEE 8? - Disponível!
  • 28.
    E o futurodo Java EE 8?
  • 29.
    E o JavaEE 9? EE4J? Jakarta?
  • 30.
    E o spring?Para onde vai? Fonte: https://www.udemy.com/spring-framework-video-tutorial/
  • 31.
    E o spring?Para onde vai? ● JDK 8 minimum requirement ● Support for Java 9 ● Http 2 on client and server ● Reactive streams based controllers ● Support for Kotlin language ● Support for running on a server programmatically ● Testing improvements with Junit 5 suport ● Mais informações: https://github.com/spring-projects/spring-framework/wiki/What%27s- New-in-the-Spring-Framework
  • 32.
    E esse talde microserviços? Fonte: http://comunytek.com/en/introduction-to-microservices/
  • 33.
    E esse talde microserviços?
  • 34.
  • 35.
    Java é complicadopara configurar...
  • 36.
    Java é complicadopara configurar…(Maven archetype)
  • 37.
    Java é complicadopara configurar...Spring Boot
  • 38.
    Java é complicadopara configurar...SdkMan
  • 39.
    Java é complicadopara configurar...JHipster
  • 40.
    Java é complicadopara configurar...Verboso? Spark
  • 41.
    Java é complicadopara configurar...Pronto, já pode ser hipster
  • 42.
    Ah, não gostode Java (linguagem)
  • 43.
    Ah, não gostode Java (linguagem)
  • 44.
    Ah, não gostode Java (linguagem)
  • 45.
    JVM é tãohipster que roda as linguagens mais hipsters ● Javascript (nashhorn) ● http://j-php.net/ ● http://www.jython.org/ ● http://jruby.org/
  • 46.
    Não gostei denada disso. Tem outra opção?
  • 47.
  • 48.
  • 49.
    Referências ● Java 9: ○http://hipsters.tech/e-o-futuro-do-java-hipsters-27/ ○ https://www.linkedin.com/pulse/o-java-9-est%C3%A1-pronto-e-voc%C3%AA-fernando-almeida ○ http://www.java9countdown.xyz/ ○ https://docs.oracle.com/javase/9/whatsnew/toc.htm#JSNEW-GUID-C23AFD78-C777-460B-8ACE-58BE5EA681F6 ○ http://openjdk.java.net/projects/jdk9/ ○ https://en.eventials.com/Globalcode/tdc-sp-2017-stadium-sabado-8/ ○ https://dzone.com/articles/jdk-9-is-feature-complete ○ https://www.pluralsight.com/blog/software-development/java-9-new-features ○ https://www.slideshare.net/SimonRitter/55-new-features-in-jdk-9 ○ http://blog.takipi.com/5-features-in-java-9-that-will-change-how-you-develop-software-and-2-that-wont/ ○ Shell: ■ https://digaotutoriais.wordpress.com/2016/04/17/java-9-introducao-ao-jshell-projeto-kulla/ ■ http://blog.caelum.com.br/java-9-na-pratica-repl ○ Private interfaces: ■ https://stackoverflow.com/questions/29040821/java-9-private-interface-methods-example-use-case ■ http://blog.joda.org/2016/09/private-methods-in-interfaces-in-java-9.html ■ http://www.journaldev.com/12850/java9-private-methods-in-interface
  • 50.
    Referências ○ Strings: ■ https://blogs.oracle.com/java/strings-in-java-9 ■http://cr.openjdk.java.net/~shade/density/state-of-string-density-v1.txt ■ http://vojtechruzicka.com/java-9-compact-strings/ ○ Módulos: ■ https://en.eventials.com/Globalcode/tdc-sp-2017-stadium-sabado-8/ ■ http://www.devmedia.com.br/introducao-ao-java-9-conheca-os-novos-recursos/34481 ■ http://www.argonavis.com.br/palestras/tdc2017/tdc_java9.pdf ■ https://www.pluralsight.com/blog/software-development/java-9-new-features ○ Outras novidades: ■ Reactive streams: ■ http://javasampleapproach.com/java/java-9/java-9-flow-api-reactive-streams ■ http://javasampleapproach.com/java/java-9/java-9-flow-api-example-publisher-and-subscriber ■ http://www.javaworld.com/article/3198904/learn-java/java-9s-other-new-enhancements-part-6-concurrency.html ■ Http 2 client: ■ https://www.infoq.com/articles/Java9-New-HTTP-2-and-REPL ■ https://blog.idrsolutions.com/2017/05/why-http2-client-in-java-9-is-important/ ■ https://jaxenter.com/http-2-ready-for-java-9-130105.html ■ https://labs.consol.de/development/2017/03/14/getting-started-with-java9-httpclient.html ■ https://dzone.com/articles/java-9-http-20
  • 51.
    Referências ■ Process API: a.http://www.javaworld.com/article/3176874/java-language/java-9s-other-new-enhancements-part-3.html b. https://blog.oio.de/2016/09/02/process-api-java-9/ c. http://www.baeldung.com/java-9-process-api ○ Java 10: ■ http://openjdk.java.net/projects/jdk10/ ■ Valhalla ■ https://en.wikipedia.org/wiki/Project_Valhalla_(Java_language) ■ https://www.javacodegeeks.com/2016/10/value-project-valhalla.html ■ http://www.oracle.com/technetwork/java/jvmls2016-goetz-3126134.pdf ■ Money: ■ http://javamoney.github.io/ ■ http://www.baeldung.com/java-money-and-currency ■ http://www.mscharhag.com/java/java-jsr-354-money-and-currency-api
  • 52.
    Referências ■ Java EE8: a. https://www.slideshare.net/rcuprak/java-ee-8-update b. http://blog.rahmannet.net/2017/03/vaadin-community-survey-confirms-java.html c. https://javaee-guardians.io/java-ee-adoption-surveys/ d. Java EE Guardians: i. https://javaee-guardians.io/ ii. http://eldermoraes.com/2017/06/07/top-20-java-ee-experts-to-follow-on-twitter/ e. JSRs: i. JEE: https://www.jcp.org/en/jsr/detail?id=366 ii. Servlet 4.0: https://jcp.org/en/jsr/detail?id=369 iii. JSON-p 1.1: https://jcp.org/en/jsr/detail?id=374 iv. JSON-B 1.0: https://jcp.org/en/jsr/detail?id=367 v. CDI: 2.0: https://www.jcp.org/en/jsr/detail?id=365 1. https://medium.com/javabahia/finalmente-cdi-2-0-foi-lan%C3%A7ado-2911eec56ac8 2. https://otaviojava.wordpress.com/2016/04/28/cdi-2-0/ 3. http://www.cdi-spec.org/news/2017/05/15/CDI_2_is_released/ 4. http://www.cdi-spec.org/news/2017/02/01/CDI_2_is_in_public_review/ 5. https://www.slideshare.net/ThorbenJanssen/cdi-20-deep-dive 6. http://www.mastertheboss.com/jboss-frameworks/cdi/introduction-to-cdi-2-0-api
  • 53.
    Referências i. Bean validation2.0: https://www.jcp.org/en/jsr/detail?id=380 1. http://beanvalidation.org/news/2016/07/15/bean-validation-2-0-is-coming/ 2. http://beanvalidation.org/news/2017/08/07/bean-validation-2-0-is-a-spec/ 3. http://beanvalidation.org/ 4. http://in.relation.to/2017/08/07/and-here-comes-hibernate-validator-60/ 5. http://beanvalidation.org/specification/ 6. http://in.relation.to/2017/08/07/and-here-comes-hibernate-validator-60/ ii. JEE Security: https://www.jcp.org/en/jsr/detail?id=375 ■ Spring 5: a. https://spring.io/blog/2016/09/22/new-in-spring-5-functional-web-framework b. http://www.baeldung.com/spring-5-functional-web c. https://dzone.com/articles/whats-new-in-spring-framework-5 d. https://dzone.com/articles/new-in-spring-5-functional-web-framework e. https://www.slideshare.net/AliakseiZhynhiarousk/reactive-spring-framework-5
  • 54.
    Referências i. Microprofile: 1. https://microprofile.io/faq 2.https://microprofile.io/projects a. http://tomee.apache.org/apache-tomee.html b. https://www.payara.fish/ c. https://developer.ibm.com/wasdev/websphere-liberty/ d. http://wildfly-swarm.io/ ii. Microservices: 1. Lagom: a. https://www.lagomframework.com/ b. https://github.com/lagom/lagom c. http://www.baeldung.com/lagom-reactive-microservices d. https://www.infoq.com/news/2016/03/lagom-microservices-framework 2. Vertx a. http://vertx.io/ b. http://tutorials.jenkov.com/vert.x/index.html c. https://www.infoq.com/br/news/2012/05/vertx
  • 55.
    Referências i. Nosql 1. Jnosql: a.https://otaviojava.wordpress.com/tag/jnosql/ b. https://github.com/JNOSQL c. http://jnosql.org/ 2. Spring data: a. http://projects.spring.io/spring-data/ ii. Spring boot: 1. https://projects.spring.io/spring-boot/ 2. https://start.spring.io/ iii. JHipster: 1. https://jhipster.github.io/