बैकएंड इंजीनियरिंग और कार्यात्मक प्रोग्रामिंग के लिए Scala · पाठ

ZIO Apps चलाना

ZIOAppDefault

पाठ 4, कुल 4 में से13 चरण

ZIO Apps चलाना, CoddyKit पर बैकएंड इंजीनियरिंग और कार्यात्मक प्रोग्रामिंग के लिए Scala का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह बैकएंड इंजीनियरिंग और कार्यात्मक प्रोग्रामिंग के लिए Scala सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। बैकएंड इंजीनियरिंग और कार्यात्मक प्रोग्रामिंग के लिए Scala पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

विवरण से निष्पादन तक

ZIO मान केवल एक खाका होता है। इसे निष्पादित करने के लिए उसे ZIO रनटाइम को सौंपें। आम तौर पर रनटाइम को हाथ से कॉल करने के बजाय ZIOAppDefault का विस्तार किया जाता है।

ZIOAppDefault

ZIOAppDefault का विस्तार करें और run लागू करें। फ्रेमवर्क डिफ़ॉल्ट सेवाएँ (Console, Clock, Random, System) प्रदान करता है और प्रारंभ तथा बंद होने की प्रक्रिया संभालता है।

import zio._

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

run मान

run एक ZIO है जिसका परिवेश डिफ़ॉल्ट सेवाओं द्वारा पूरा किया जाता है। इसकी त्रुटि और सफलता के प्रकार लचीले होते हैं; रनटाइम विफलताओं की सूचना देता है और निकास कोड निर्धारित करता है।

बहु-चरणीय अनुप्रयोग

for-comprehension से अनुप्रयोग के तर्क को संयोजित करें। प्रत्येक पंक्ति एक प्रभाव है जिसे रनटाइम क्रम से चलाता है।

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 में लेयर प्रदान करना

यदि आपका अनुप्रयोग कस्टम सेवाओं पर निर्भर करता है, तो run प्रभाव पर provide के माध्यम से उनकी लेयर दें, ताकि निष्पादन से पहले परिवेश पूरी तरह पूरा हो जाए।

import zio._

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

निकास कोड

डिफ़ॉल्ट रूप से सफल run कोड 0 के साथ और विफलता गैर-शून्य कोड के साथ समाप्त होती है। आप exitCode का उपयोग करके स्पष्ट ExitCode भी लौटा सकते हैं।

import zio._

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

कमांड-लाइन तर्क

ZIOApp.args या getArgs के माध्यम से ZIOAppArgs का उपयोग करके प्रोग्राम के तर्क प्राप्त करें। यह Chunk[String] लौटाता है।

import zio._

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

सीमा पर विफलताओं को संभालना

ऊपरी स्तर पर त्रुटियों को संभालना या उनका लॉग रखना अच्छा अभ्यास है, ताकि रनटाइम साफ़ संदेश प्रिंट करे। run में catchAll या tapError का उपयोग करें।

import zio._

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

फाइबर शुरू करना

run के भीतर आप समवर्ती निष्पादन के लिए प्रभावों को फाइबर पर fork कर सकते हैं और बाद में उन्हें join कर सकते हैं। रनटाइम सभी फाइबर की निगरानी करता है और बंद होने पर उन्हें बाधित कर देता है।

import zio._

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

मैन्युअल असुरक्षित निष्पादन

ZIOAppDefault के बाहर आप Unsafe.unsafe और Runtime से कोई प्रभाव चला सकते हैं, लेकिन यह सामान्य अनुप्रयोग कोड के लिए नहीं, बल्कि एकीकरण सीमाओं के लिए आरक्षित है।

import zio._

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

सादा Scala main

तुलना के लिए, एक स्व-निहित Scala प्रवेश-बिंदु। ZIOAppDefault main की भूमिका निभाता है, लेकिन सेवाओं, त्रुटि रिपोर्टिंग और फाइबर निगरानी को भी जोड़ता है।

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

त्वरित जाँच

ZIO अनुप्रयोग चलाने का अनुशंसित तरीका क्या है?

पुनरावलोकन

आपने ZIO अनुप्रयोग चलाना सीखा:

  • run प्रभाव के साथ ZIOAppDefault
  • डिफ़ॉल्ट सेवाएँ और लेयर provide
  • निकास कोड, तर्क, ऊपरी-स्तरीय त्रुटि प्रबंधन
  • फाइबर शुरू करना और असुरक्षित सीमाएँ

आपने ZIO Fundamentals पाठ्यक्रम पूरा कर लिया है।

शुरुआत निःशुल्क

एआई शिक्षक के साथ Scala सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
39
पाठ
143

अक्सर पूछे जाने वाले प्रश्न

क्या “ZIO Apps चलाना” पाठ निःशुल्क है?

हाँ—“ZIO Apps चलाना” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और बैकएंड इंजीनियरिंग और कार्यात्मक प्रोग्रामिंग के लिए Scala पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। बैकएंड इंजीनियरिंग और कार्यात्मक प्रोग्रामिंग के लिए Scala पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“ZIO Apps चलाना” में मैं क्या सीखूँगा?

ZIOAppDefault आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ बैकएंड इंजीनियरिंग और कार्यात्मक प्रोग्रामिंग के लिए Scala का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या बैकएंड इंजीनियरिंग और कार्यात्मक प्रोग्रामिंग के लिए Scala शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर बैकएंड इंजीनियरिंग और कार्यात्मक प्रोग्रामिंग के लिए Scala शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।

“ZIO Apps चलाना” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस बैकएंड इंजीनियरिंग और कार्यात्मक प्रोग्रामिंग के लिए Scala पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर बैकएंड इंजीनियरिंग और कार्यात्मक प्रोग्रामिंग के लिए Scala पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. ZIO Effect
  2. ZIO की Composition
  3. Error और Dependency Channels
  4. ZIO Apps चलाना
← बैकएंड इंजीनियरिंग और कार्यात्मक प्रोग्रामिंग के लिए Scala पर वापस जाएँ