Sobes.tech
Junior — Middle

Môžeš vymenovať a opísať vzory zostavovania reťazcov v korutínach?

sobes.tech AI

Odpoveď od AI

V korutinách Android (Kotlin) sa často používajú nasledujúce vzory na budovanie reťazcov:

  • Sekvenčné vykonávanie (Sekvenčné reťazenie): korutiny sa volajú jedna po druhej, kde výsledok predchádzajúcej sa používa v nasledujúcej.

  • Paralelné vykonávanie s agregáciou výsledkov (Paralelné s agregáciou): niekoľko korutín sa spúšťa paralelne pomocou async a výsledky sa následne zbierajú cez await.

  • Spracovanie chýb v reťazci (Spracovanie chýb): použitie try/catch vo vnútri korutín na spracovanie výnimiek na každom kroku.

  • Transformácia dátových tokov (Reťazenie Flow): použitie Flow na vytváranie reaktívnych reťazcov s operátormi ako map, filter, flatMap a pod.

Príklad sekvenčného reťazca:

suspend fun fetchData(): Data = ...
suspend fun processData(data: Data): ProcessedData = ...
suspend fun saveData(processedData: ProcessedData) = ...

suspend fun chain() {
    val data = fetchData()
    val processed = processData(data)
    saveData(processed)
}

Príklad paralelného reťazca:

coroutineScope {
    val deferred1 = async { fetchData1() }
    val deferred2 = async { fetchData2() }
    val result1 = deferred1.await()
    val result2 = deferred2.await()
    // spojenie výsledkov
}