kotlin - evolua seu código java (tdc-2016) alex magalhaes

44
1.0 Evolua seu código Java!

Upload: alex-magalhaes

Post on 20-Mar-2017

469 views

Category:

Technology


0 download

TRANSCRIPT

1.0Evolua seu código Java!

O PalestranteAlex 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 Onlinehttp://try.kotlinlang.org/

IntelliJ IDEAhttps://www.jetbrains.com/idea/

Exemplos e Referênciashttps://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 eLambdas

“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