SlideShare uma empresa Scribd logo
1.0
Evolua seu código Java!
O Palestrante
Alex Magalhães
◇ Mestre em Sistemas Distribuídos
◇ Profissional JavaEE há 15 anos
◇ Pesquisador das áreas de
Algoritmos e Sistemas Distribuídos
Contato em @PensatoAgile
O Ecossistema
Java:
Um mundo de
linguagens
A Origem de Kotlin1
Objetivos originais do
Projeto Kotlin
◇ Total interoperabilidade com Java
◇ Tão rápida quanto Java
◇ Mais expressiva e enxuta que Java
◇ Mais simples que Scala
◇ Independente do IntelliJ
Apoio da
Comunidade
◇ Projeto iniciado em 2012
◇ Linguagem Open Source
◇ Mais de 100 colaboradores externos
◇ Suportada pelo projeto Spring
Pronta para
Produção
◇ Suporte à JVM, JavaScript e Android
◇ Plugins para Eclipse e Android Studio
◇ Conversor de Java para Kotlin
◇ Compatibilidade reversa a partir do 1.0
◇ Há 2 anos rodando em produção
Adoção de Kotlin
Kotlin in Action
Kotlin for Android Developers
Livros Disponíveis
Experimentando a
Linguagem
2
Experimente Online
http://try.kotlinlang.org/
IntelliJ IDEA
https://www.jetbrains.com/idea/
Exemplos e Referências
https://kotlinlang.org/docs/reference/basic-syntax.html
Básico de
Kotlin
◇ Não é necessário ponto-e-vírgula
◇ Classe e arquivo podem ter nomes
diferentes
◇ Funções fora das classes
◇ String Templates: "$nome"
Tipos e Declarações
◇ Declaração com val e var
◇ Tipo depois do nome
◇ Todos os tipos são classes
◇ Tipos:
Double, Float, Long, Int, Short,
Byte, Char, String, Boolean.
O Fim do
NullPointerException
◇ Kotlin não aceita valores nulos
◇ Mas se você quiser muito, muito, muito,
use o operador ‘?‘
Classes
◇ Filhas de Any
◇ 3 funções:
equals(), hashCode(), toString()
◇ Fim do new
◇ Construtores na declaração
Hierarquia
◇ Classes e funções são finais
◇ Extensão com open
Generics
◇ Modificados em relação à Java
◇ Variância dos tipos
Versão em Java
Memória Estática
◇ Não há funções estáticas
◇ Mas se você quiser muito, muito, muito,
use a anotação @JvmStatic
◇ E como criar Singletons?
Funções de
Alta Ordem,
Funções
Anônimas e
Lambdas
“
Função de Alta Ordem é uma função
que aceita uma ou mais funções
como parâmetros de entrada, ou
retorna outra função na saída.
“
Lambda ou função anônima é uma
função que não é declarada, mas
passada como uma expressão.
Data Classes
◇ Value Objects
◇ Modificador data
◇ Derivação das propriedades:
■ equals() / hashCode() / toString()
■ getters e setters implícitos
■ copy()
Criando uma API3
Motivação
Manter o principal produto da
empresa sempre moderno e
com o menor custo de
manutenção possível.
http://www.fashioncommerce.com.br/
Evolução do Produto
2003 2005 / 2006 2008 2010 2012 / 2013 2016
3
Spring Boot
◇ Aplicações stand-alone
◇ Microsserviços
◇ Suporte à Kotlin
Obrigado!
Perguntas?
Você pode me contactar em:
◇ @PensatoAgile

Mais conteúdo relacionado

Semelhante a Kotlin - Evolua seu código Java (TDC-2016) Alex Magalhaes

Programacao de macros_com_libre_office_basic_slideshare
Programacao de macros_com_libre_office_basic_slideshareProgramacao de macros_com_libre_office_basic_slideshare
Programacao de macros_com_libre_office_basic_slideshareMarcio Junior Vieira
 
Programação de Macros com LibreOffice Basic
Programação de Macros com LibreOffice BasicProgramação de Macros com LibreOffice Basic
Programação de Macros com LibreOffice BasicMarcio Junior Vieira
 
Programação de Macros com LibreOffice Basic
Programação de Macros com LibreOffice BasicProgramação de Macros com LibreOffice Basic
Programação de Macros com LibreOffice BasicAmbiente Livre
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAThiago Cifani
 
Criando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & DockerCriando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & DockerGiovanni Kenji Shiroma
 
Java Fundamentos
Java FundamentosJava Fundamentos
Java FundamentosWilson Lima
 
Javascript para CSharpers 4 - POO
Javascript para CSharpers 4 - POOJavascript para CSharpers 4 - POO
Javascript para CSharpers 4 - POOWesley Lemos
 
Twitter, Apache Camel e Enterprise Integration Patterns
Twitter, Apache Camel e Enterprise Integration PatternsTwitter, Apache Camel e Enterprise Integration Patterns
Twitter, Apache Camel e Enterprise Integration PatternsBruno Borges
 
C# 6.0 - DotNetBaixada - Novembro/2015
C# 6.0 - DotNetBaixada - Novembro/2015C# 6.0 - DotNetBaixada - Novembro/2015
C# 6.0 - DotNetBaixada - Novembro/2015Renato Groff
 
Aula 1 - Java - Prof.ª Cristiane Fidelix
Aula 1 - Java - Prof.ª Cristiane FidelixAula 1 - Java - Prof.ª Cristiane Fidelix
Aula 1 - Java - Prof.ª Cristiane FidelixCris Fidelix
 
Aula1- Java PRof.ª Cristiane Fidelix
Aula1- Java PRof.ª Cristiane FidelixAula1- Java PRof.ª Cristiane Fidelix
Aula1- Java PRof.ª Cristiane FidelixCris Fidelix
 
Três anos de Scala no NewsMonitor
Três anos de Scala no NewsMonitorTrês anos de Scala no NewsMonitor
Três anos de Scala no NewsMonitorFelipe Hummel
 
C# 6.0 - Interopmix 2015
C# 6.0 - Interopmix 2015C# 6.0 - Interopmix 2015
C# 6.0 - Interopmix 2015Renato Groff
 
Plataforma de compiladores .NET, C# 6 e Visual Studio 2015
Plataforma de compiladores .NET, C# 6 e Visual Studio 2015Plataforma de compiladores .NET, C# 6 e Visual Studio 2015
Plataforma de compiladores .NET, C# 6 e Visual Studio 2015Rogério Moraes de Carvalho
 
Plataforma de compiladores .NET, Visual Studio 2015, C# 6 e futuro C# 7
Plataforma de compiladores .NET,Visual Studio 2015, C# 6 e futuro C# 7Plataforma de compiladores .NET,Visual Studio 2015, C# 6 e futuro C# 7
Plataforma de compiladores .NET, Visual Studio 2015, C# 6 e futuro C# 7Rogério Moraes de Carvalho
 

Semelhante a Kotlin - Evolua seu código Java (TDC-2016) Alex Magalhaes (20)

Programacao de macros_com_libre_office_basic_slideshare
Programacao de macros_com_libre_office_basic_slideshareProgramacao de macros_com_libre_office_basic_slideshare
Programacao de macros_com_libre_office_basic_slideshare
 
Programação de Macros com LibreOffice Basic
Programação de Macros com LibreOffice BasicProgramação de Macros com LibreOffice Basic
Programação de Macros com LibreOffice Basic
 
Programação de Macros com LibreOffice Basic
Programação de Macros com LibreOffice BasicProgramação de Macros com LibreOffice Basic
Programação de Macros com LibreOffice Basic
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
 
Java VS Kotlin
Java VS KotlinJava VS Kotlin
Java VS Kotlin
 
Linguagem Java, fundamentos da linguagem Java
Linguagem Java, fundamentos da linguagem JavaLinguagem Java, fundamentos da linguagem Java
Linguagem Java, fundamentos da linguagem Java
 
Introdução ao Java 5
Introdução ao Java 5Introdução ao Java 5
Introdução ao Java 5
 
Criando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & DockerCriando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & Docker
 
Java Fundamentos
Java FundamentosJava Fundamentos
Java Fundamentos
 
Javascript para CSharpers 4 - POO
Javascript para CSharpers 4 - POOJavascript para CSharpers 4 - POO
Javascript para CSharpers 4 - POO
 
Programando em Go
Programando em GoProgramando em Go
Programando em Go
 
Twitter, Apache Camel e Enterprise Integration Patterns
Twitter, Apache Camel e Enterprise Integration PatternsTwitter, Apache Camel e Enterprise Integration Patterns
Twitter, Apache Camel e Enterprise Integration Patterns
 
C# 6.0 - DotNetBaixada - Novembro/2015
C# 6.0 - DotNetBaixada - Novembro/2015C# 6.0 - DotNetBaixada - Novembro/2015
C# 6.0 - DotNetBaixada - Novembro/2015
 
Aula 1 - Java - Prof.ª Cristiane Fidelix
Aula 1 - Java - Prof.ª Cristiane FidelixAula 1 - Java - Prof.ª Cristiane Fidelix
Aula 1 - Java - Prof.ª Cristiane Fidelix
 
Aula1- Java PRof.ª Cristiane Fidelix
Aula1- Java PRof.ª Cristiane FidelixAula1- Java PRof.ª Cristiane Fidelix
Aula1- Java PRof.ª Cristiane Fidelix
 
Três anos de Scala no NewsMonitor
Três anos de Scala no NewsMonitorTrês anos de Scala no NewsMonitor
Três anos de Scala no NewsMonitor
 
C# 6.0 - Interopmix 2015
C# 6.0 - Interopmix 2015C# 6.0 - Interopmix 2015
C# 6.0 - Interopmix 2015
 
Entity framework
Entity frameworkEntity framework
Entity framework
 
Plataforma de compiladores .NET, C# 6 e Visual Studio 2015
Plataforma de compiladores .NET, C# 6 e Visual Studio 2015Plataforma de compiladores .NET, C# 6 e Visual Studio 2015
Plataforma de compiladores .NET, C# 6 e Visual Studio 2015
 
Plataforma de compiladores .NET, Visual Studio 2015, C# 6 e futuro C# 7
Plataforma de compiladores .NET,Visual Studio 2015, C# 6 e futuro C# 7Plataforma de compiladores .NET,Visual Studio 2015, C# 6 e futuro C# 7
Plataforma de compiladores .NET, Visual Studio 2015, C# 6 e futuro C# 7
 

Kotlin - Evolua seu código Java (TDC-2016) Alex Magalhaes