SlideShare uma empresa Scribd logo
1 de 30
Baixar para ler offline
Livre-se do Callback Hell
com o Kotlin Coroutines
@viniciusdepaula
@felpsat
Sabemos como é vantajoso e performático
trabalhar de forma assíncrona
Inevitavelmente, implementamos diversas
funções assíncronas em nosso código
Que serão encadeadas uma na outra
através das suas funções callback
Callback hell é um fenômeno que ocorre
quando tentamos executar múltiplas
operações assíncronas uma após a outra
Este fenômeno também é conhecido
como pyramid of doom
Como escapar do callback hell?
Coroutines = Co + Routines
Coroutines = Co + Routines
Co vem de cooperação
Routines vem de funções
Coroutines podem ser implementadas em
diversas linguagens
Coroutines são em sua essência
threads mais leves que consomem menos
recursos computacionais…
e que são destinadas a execução de
tarefas paralelas e não bloqueantes
Blocking Functions
vs
Suspending Functions
Kotlin Coroutines: light-weight threads
Coroutines podem ser implementadas no
padrão Stackless ou Stackful
Kotlin implementa o padrão Stackless
Coroutines é um framework para
gerenciar threads.
Operações de I/O, processamento que
envolve CPU ou manipulação de eventos
de UI podem ser tratados com Coroutines
Anatomia do Kotlin Coroutines
CoroutineScope
Interface que deve ser implementada para restringir o escopo do Coroutine.
CoroutineContext
Define o contexto que a Coroutine será executada (similar ao Context de
uma Activity ou Fragment).
CoroutineDispatcher
Classe abstrata responsável por iniciar o Coroutine.
Coroutine Builder
Responsável por gerenciar a execução do Coroutine (launch e async).
Anatomia do Kotlin Coroutines
Referências
https://www.amazon.com/Kotlin-Coroutines-Tutorials-First-coroutines/dp/1942878680
Documentação Oficial
https://kotlinlang.org/docs/reference/coroutines/basics.html

https://kotlin.github.io/kotlinx.coroutines/

Código fonte 

https://github.com/felipe-at/demo-coroutines
Livre-se do Callback Hell com o Kotlin Coroutines

Mais conteúdo relacionado

Semelhante a Livre-se do Callback Hell com o Kotlin Coroutines

Beers & Bytes - O Futuro da virtualização
Beers & Bytes - O Futuro da virtualizaçãoBeers & Bytes - O Futuro da virtualização
Beers & Bytes - O Futuro da virtualizaçãoCarlos Smaniotto
 
Microservices - Quebrando gigantes em pequenos
Microservices - Quebrando gigantes em pequenosMicroservices - Quebrando gigantes em pequenos
Microservices - Quebrando gigantes em pequenosVinícius Krolow
 
Modularização via BPL - Abordagem Prática para DataSnap & Front-end
Modularização via BPL - Abordagem Prática para DataSnap & Front-endModularização via BPL - Abordagem Prática para DataSnap & Front-end
Modularização via BPL - Abordagem Prática para DataSnap & Front-endMario Guedes
 
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu DevelopersDesenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu DevelopersDextra Sistemas / Etec Itu
 
Usp codelabs (docker)
Usp codelabs (docker)Usp codelabs (docker)
Usp codelabs (docker)TechCobli
 

Semelhante a Livre-se do Callback Hell com o Kotlin Coroutines (7)

Beers & Bytes - O Futuro da virtualização
Beers & Bytes - O Futuro da virtualizaçãoBeers & Bytes - O Futuro da virtualização
Beers & Bytes - O Futuro da virtualização
 
Microservices - Quebrando gigantes em pequenos
Microservices - Quebrando gigantes em pequenosMicroservices - Quebrando gigantes em pequenos
Microservices - Quebrando gigantes em pequenos
 
Modularização via BPL - Abordagem Prática para DataSnap & Front-end
Modularização via BPL - Abordagem Prática para DataSnap & Front-endModularização via BPL - Abordagem Prática para DataSnap & Front-end
Modularização via BPL - Abordagem Prática para DataSnap & Front-end
 
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu DevelopersDesenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
 
Docker
DockerDocker
Docker
 
Usp codelabs (docker)
Usp codelabs (docker)Usp codelabs (docker)
Usp codelabs (docker)
 
Usando Docker no desenvolvimento .NET
Usando Docker no desenvolvimento .NETUsando Docker no desenvolvimento .NET
Usando Docker no desenvolvimento .NET
 

Livre-se do Callback Hell com o Kotlin Coroutines