0Pricing
Scala for Backend Engineering & Functional Programming · Aula

O efeito ZIO

ZIO[R,E,A].

O efeito ZIO é uma aula grátis de Scala for Backend Engineering & Functional Programming no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Scala for Backend Engineering & Functional Programming, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Scala for Backend Engineering & Functional Programming inclui 4 aulas no total.

O que é ZIO?

ZIO é uma biblioteca para efeitos funcionais assíncronos, concorrentes e seguros quanto a recursos. O tipo central é ZIO[R, E, A] — uma descrição de um fluxo de trabalho que, dado um ambiente R, pode falhar com E ou ter sucesso com A.

Os três parâmetros de tipo

Leia ZIO[R, E, A] como uma função R => Either[E, A] (de forma assíncrona e com efeitos):

  • R — ambiente ou dependências necessárias
  • E — tipo da falha, caso ocorra
  • A — tipo do valor, caso haja sucesso

Apelidos de tipos

ZIO fornece apelidos práticos:

  • UIO[A] = ZIO[Any, Nothing, A] — não pode falhar
  • Task[A] = ZIO[Any, Throwable, A]
  • IO[E, A] = ZIO[Any, E, A]
  • RIO[R, A] = ZIO[R, Throwable, A]

Criando efeitos bem-sucedidos

ZIO.succeed eleva um valor puro. O efeito não pode falhar, portanto seu tipo de falha é Nothing.

import zio._

val meaning: UIO[Int] = ZIO.succeed(42)

Criando falhas

ZIO.fail cria um efeito com falha e uma falha tipada. O tipo de sucesso é Nothing, pois ele nunca tem sucesso.

import zio._

val failed: IO[String, Nothing] = ZIO.fail("Something went wrong")

Envolvendo efeitos colaterais

ZIO.attempt envolve um bloco que produz efeitos colaterais e pode lançar uma exceção; o tipo de falha se torna Throwable (um Task).

import zio._

val parsed: Task[Int] = ZIO.attempt("123".toInt)

Imprimindo no console

O serviço Console do ZIO fornece impressão com efeitos. Console.printLine retorna um ZIO cujo tipo de falha é IOException.

import zio._

val hello = Console.printLine("Hello, ZIO!")

map

map transforma o valor de sucesso, mantendo inalterados os canais de falha e de ambiente.

import zio._

val doubled: UIO[Int] = ZIO.succeed(21).map(_ * 2)

mapError

mapError transforma o canal de falha — útil para converter falhas de baixo nível em falhas específicas do domínio.

import zio._

val e: IO[String, Int] =
  ZIO.fail(404).mapError(code => s"HTTP $code")

Preguiça e pureza

Assim como o IO do Cats Effect, um valor ZIO é uma descrição pura e preguiçosa. Construí-lo não executa efeitos; isso só acontece quando ele é executado no ambiente de execução do ZIO.

Referência de Scala simples

Para fins de contraste, este é um programa Scala imediato e autocontido. O ZIO adiaria a execução e rastrearia as falhas no tipo, mas a saída seria a mesma.

object Main {
  def main(args: Array[String]): Unit = {
    val x = 42
    println(s"value: $x")
  }
}

Verificação rápida

Em ZIO[R, E, A], o que representa o parâmetro E?

Recapitulação

Você aprendeu o tipo de efeito ZIO:

  • ZIO[R, E, A] — ambiente, falha e sucesso
  • Apelidos UIO, Task, IO, RIO
  • succeed, fail, attempt
  • map e mapError

A seguir: composição de efeitos ZIO.

Perguntas Frequentes

A aula “O efeito ZIO” é grátis?

Sim — o texto completo de “O efeito ZIO” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Scala for Backend Engineering & Functional Programming, atualize para CoddyKit PRO. O curso de Scala for Backend Engineering & Functional Programming inclui 4 aulas no total.

O que vou aprender em “O efeito ZIO”?

ZIO[R,E,A]. Você pratica Scala for Backend Engineering & Functional Programming com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Scala for Backend Engineering & Functional Programming?

Nenhuma experiência prévia é necessária. Scala for Backend Engineering & Functional Programming no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “O efeito ZIO”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Scala for Backend Engineering & Functional Programming?

Sim. Cada aula de Scala for Backend Engineering & Functional Programming inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. O efeito ZIO
  2. Compondo ZIO
  3. Canais de erros e dependências
  4. Executando aplicações ZIO
← Voltar para Scala for Backend Engineering & Functional Programming