Menjalankan Aplikasi ZIO
ZIOAppDefault.
Menjalankan Aplikasi ZIO adalah pelajaran Scala for Backend Engineering & Functional Programming gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Scala for Backend Engineering & Functional Programming, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Scala for Backend Engineering & Functional Programming mencakup 4 pelajaran total.
Dari Deskripsi ke Eksekusi
Nilai ZIO hanyalah cetak biru. Untuk mengeksekusinya, serahkan nilai tersebut kepada runtime ZIO, biasanya dengan memperluas ZIOAppDefault, bukan dengan memanggil runtime secara manual.
ZIOAppDefault
Perluas ZIOAppDefault dan implementasikan run. Kerangka kerja menyediakan layanan bawaan (Console, Clock, Random, System) serta mengelola proses mulai dan berhenti.
import zio._
object Hello extends ZIOAppDefault {
def run = Console.printLine("Hello, ZIO!")
}Nilai run
run adalah ZIO yang lingkungannya dipenuhi oleh layanan bawaan. Tipe galat dan keberhasilannya fleksibel; runtime melaporkan kegagalan dan menetapkan kode keluar.
Aplikasi Multi-Langkah
Susun logika aplikasi dengan for-comprehension. Setiap baris merupakan efek yang dijalankan secara berurutan oleh runtime.
import zio._
object Greeter extends ZIOAppDefault {
def run = for {
_ <- Console.printLine("What is your name?")
name <- Console.readLine
_ <- Console.printLine(s"Hello, $name!")
} yield ()
}Menyediakan Layer dalam run
Jika aplikasi Anda bergantung pada layanan khusus, sediakan layer-nya dengan provide pada efek run agar lingkungan sepenuhnya terpenuhi sebelum eksekusi.
import zio._
object App extends ZIOAppDefault {
// def run = program.provide(MyService.layer)
def run = ZIO.unit
}Kode Keluar
Secara bawaan, run yang berhasil keluar dengan kode 0, sedangkan kegagalan menghasilkan kode bukan nol. Anda juga dapat mengembalikan ExitCode eksplisit menggunakan exitCode.
import zio._
object App extends ZIOAppDefault {
def run = Console.printLine("done").exitCode
}Argumen Baris Perintah
Akses argumen program dengan ZIOAppArgs melalui ZIOApp.args atau getArgs, yang mengembalikan Chunk[String].
import zio._
object App extends ZIOAppDefault {
def run = for {
args <- getArgs
_ <- Console.printLine(s"args: ${args.mkString(", ")}")
} yield ()
}Menangani Kegagalan di Tingkat Terluar
Sebaiknya tangani atau catat galat di tingkat teratas agar runtime mencetak pesan yang rapi. Gunakan catchAll atau tapError dalam run.
import zio._
object App extends ZIOAppDefault {
val logic = ZIO.fail("oops")
def run = logic.catchAll(e => Console.printLine(s"Failed: $e"))
}Membuat Fiber
Di dalam run, Anda dapat fork efek ke fiber untuk konkurensi lalu melakukan join terhadapnya. Runtime mengawasi semua fiber dan menghentikannya saat dimatikan.
import zio._
val prog = for {
fiber <- ZIO.succeed(40).fork
result <- fiber.join
_ <- Console.printLine(s"got $result")
} yield ()Menjalankan Secara Manual dengan Unsafe
Di luar ZIOAppDefault, Anda dapat menjalankan efek dengan Unsafe.unsafe dan Runtime, tetapi cara ini hanya diperuntukkan bagi batas integrasi, bukan kode aplikasi biasa.
import zio._
// Unsafe.unsafe { implicit u =>
// Runtime.default.unsafe.run(myEffect).getOrThrow()
// }main Scala Sederhana
Sebagai perbandingan, berikut titik masuk Scala yang mandiri. ZIOAppDefault berperan sebagai main, tetapi juga menghubungkan layanan, pelaporan galat, dan pengawasan fiber.
object Main {
def main(args: Array[String]): Unit = {
println("Hello, ZIO!")
}
}Pemeriksaan Singkat
Apa cara yang disarankan untuk menjalankan aplikasi ZIO?
Ringkasan
Anda telah mempelajari cara menjalankan aplikasi ZIO:
ZIOAppDefaultdengan efekrun- layanan bawaan dan
providelayer - kode keluar, argumen, dan penanganan galat tingkat teratas
- membuat fiber dan batas unsafe
Anda telah menyelesaikan kursus Dasar-Dasar ZIO.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Menjalankan Aplikasi ZIO” gratis?
Ya — teks lengkap “Menjalankan Aplikasi ZIO” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Scala for Backend Engineering & Functional Programming, upgrade ke CoddyKit PRO. Kursus Scala for Backend Engineering & Functional Programming mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Menjalankan Aplikasi ZIO”?
ZIOAppDefault. Kamu berlatih Scala for Backend Engineering & Functional Programming dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Scala for Backend Engineering & Functional Programming?
Tidak diperlukan pengalaman sebelumnya. Scala for Backend Engineering & Functional Programming di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.
Berapa lama pelajaran “Menjalankan Aplikasi ZIO” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Scala for Backend Engineering & Functional Programming ini?
Ya. Setiap pelajaran Scala for Backend Engineering & Functional Programming menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Efek ZIO
- Menyusun ZIO
- Kanal Error dan Dependensi
- Menjalankan Aplikasi ZIO