0Pricing
Scala for Backend Engineering & Functional Programming · Ders

ZIO Uygulamaları Çalıştırma

ZIOAppDefault

ZIO Uygulamaları Çalıştırma, CoddyKit'te ücretsiz bir Scala for Backend Engineering & Functional Programming dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Scala for Backend Engineering & Functional Programming öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Scala for Backend Engineering & Functional Programming kursu toplamda 4 dersten oluşur.

Açıklamadan Çalıştırmaya

Bir ZIO değeri yalnızca bir taslaktır. Onu çalıştırmak için ZIO çalışma zamanına vermeniz gerekir; genellikle çalışma zamanını elle çağırmak yerine ZIOAppDefault genişletilir.

ZIOAppDefault

ZIOAppDefault sınıfını genişletin ve run uygulamasını yazın. Çatı, varsayılan hizmetleri (Console, Clock, Random, System) sağlar ve başlatma ile kapatmayı yönetir.

import zio._

object Hello extends ZIOAppDefault {
  def run = Console.printLine("Hello, ZIO!")
}

run Değeri

run, ortamı varsayılan hizmetler tarafından karşılanan bir ZIO'dur. Hata ve başarı türleri esnektir; çalışma zamanı hataları bildirir ve çıkış kodunu ayarlar.

Çok Adımlı Bir Uygulama

Uygulama mantığını bir for ifadesiyle birleştirin. Her satır, çalışma zamanı tarafından sırayla çalıştırılan bir etkidir.

import zio._

object Greeter extends ZIOAppDefault {
  def run = for {
    _    <- Console.printLine("What is your name?")
    name <- Console.readLine
    _    <- Console.printLine(s"Hello, $name!")
  } yield ()
}

run İçinde Katman Sağlama

Uygulamanız özel hizmetlere bağlıysa, yürütmeden önce ortamın tamamen karşılanması için bu hizmetlerin katmanlarını run etkisi üzerinde provide ile sağlayın.

import zio._

object App extends ZIOAppDefault {
  // def run = program.provide(MyService.layer)
  def run = ZIO.unit
}

Çıkış Kodları

Varsayılan olarak başarılı bir run işlemi 0 koduyla, başarısız bir işlem ise sıfır olmayan bir kodla sonlanır. Ayrıca exitCode kullanarak açık bir ExitCode döndürebilirsiniz.

import zio._

object App extends ZIOAppDefault {
  def run = Console.printLine("done").exitCode
}

Komut Satırı Bağımsız Değişkenleri

Program bağımsız değişkenlerine ZIOAppArgs üzerinden ZIOApp.args veya getArgs ile erişilir; sonuç olarak bir Chunk[String] döner.

import zio._

object App extends ZIOAppDefault {
  def run = for {
    args <- getArgs
    _    <- Console.printLine(s"args: ${args.mkString(", ")}")
  } yield ()
}

Hataları Sınırda Ele Alma

Çalışma zamanının anlaşılır bir ileti yazdırması için hataları en üst düzeyde ele almak veya kayda geçirmek iyi bir uygulamadır. run içinde catchAll ya da tapError kullanın.

import zio._

object App extends ZIOAppDefault {
  val logic = ZIO.fail("oops")
  def run = logic.catchAll(e => Console.printLine(s"Failed: $e"))
}

Fiber'ları Çatallama

run içinde eşzamanlılık için etkileri fiber'lar üzerinde fork edebilir ve daha sonra bunlara join uygulayabilirsiniz. Çalışma zamanı tüm fiber'ları denetler ve kapanırken onları keser.

import zio._

val prog = for {
  fiber  <- ZIO.succeed(40).fork
  result <- fiber.join
  _      <- Console.printLine(s"got $result")
} yield ()

Elle Güvensiz Çalıştırma

ZIOAppDefault dışında bir etkiyi Unsafe.unsafe ve bir Runtime ile çalıştırabilirsiniz; ancak bu yöntem normal uygulama kodu için değil, tümleştirme sınırları için ayrılmıştır.

import zio._

// Unsafe.unsafe { implicit u =>
//   Runtime.default.unsafe.run(myEffect).getOrThrow()
// }

Basit Scala main

Karşılaştırma amacıyla, kendi kendine yeten bir Scala giriş noktası. ZIOAppDefault, main işlevini üstlenir; ayrıca hizmetleri, hata bildirimini ve fiber denetimini bağlar.

object Main {
  def main(args: Array[String]): Unit = {
    println("Hello, ZIO!")
  }
}

Hızlı Kontrol

Bir ZIO uygulamasını çalıştırmanın önerilen yolu nedir?

Özet

ZIO uygulamalarını çalıştırmayı öğrendiniz:

  • run etkisiyle ZIOAppDefault
  • varsayılan hizmetler ve katman provide
  • çıkış kodları, bağımsız değişkenler ve üst düzey hata yönetimi
  • fiber'ları çatallama ve güvensiz sınırlar

ZIO Temelleri kursunu tamamladınız.

Sıkça Sorulan Sorular

“ZIO Uygulamaları Çalıştırma” dersi ücretsiz mi?

Evet — “ZIO Uygulamaları Çalıştırma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Scala for Backend Engineering & Functional Programming kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Scala for Backend Engineering & Functional Programming kursu toplamda 4 dersten oluşur.

“ZIO Uygulamaları Çalıştırma” dersinde ne öğreneceğim?

ZIOAppDefault Scala for Backend Engineering & Functional Programming ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Scala for Backend Engineering & Functional Programming öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Scala for Backend Engineering & Functional Programming, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.

“ZIO Uygulamaları Çalıştırma” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Scala for Backend Engineering & Functional Programming dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Scala for Backend Engineering & Functional Programming dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. ZIO Etkisi
  2. ZIO Birleştirme
  3. Hata ve Bağımlılık Kanalları
  4. ZIO Uygulamaları Çalıştırma
← Scala for Backend Engineering & Functional Programming Sayfasına Dön