Fähigkeiten kotlin-coroutines-expert
📦

kotlin-coroutines-expert

Sicher

Meistern Sie Kotlin Coroutines & Flow

Kotlin Coroutines und Flow können komplex zu meistern sein. Diese Skill bietet Expertenwissen für strukturierte Concurrency, Fehlerbehandlung und das Testen von asynchronem Code.

Unterstützt: Claude Codex Code(CC)
🥉 73 Bronze
1

Die Skill-ZIP herunterladen

2

In Claude hochladen

Gehe zu Einstellungen → Fähigkeiten → Skills → Skill hochladen

3

Einschalten und loslegen

Teste es

Verwendung von "kotlin-coroutines-expert". Wie führe ich zwei API-Aufrufe parallel aus und behandle Fehler unabhängig?

Erwartetes Ergebnis:

Verwenden Sie supervisorScope, um asynchrone Tasks auszuführen, bei denen ein Fehler eines nicht die anderen abbricht. Beispiel: val task1 = async { api.fetchA() }; val task2 = async { api.fetchB() }; Beide können unabhängig voneinander fehlschlagen, ohne sich gegenseitig zu beeinflussen.

Verwendung von "kotlin-coroutines-expert". Wann sollte ich StateFlow vs SharedFlow verwenden?

Erwartetes Ergebnis:

Verwenden Sie StateFlow für UI-Zustände, die beibehalten werden müssen und immer einen aktuellen Wert haben. Verwenden Sie SharedFlow für einmalige Ereignisse wie Navigation oder das Anzeigen von Toast-Nachrichten.

Sicherheitsaudit

Sicher
v1 • 2/25/2026

Static analysis flagged 26 potential issues (24 external_commands, 2 weak cryptographic). Manual review confirms all are FALSE POSITIVES. The 'external_commands' detections are markdown backtick formatting (e.g., `coroutineScope`) not shell execution. The 'weak cryptographic' detections are misidentified content. This is a legitimate Kotlin Coroutines documentation skill with no security risks.

1
Gescannte Dateien
101
Analysierte Zeilen
0
befunde
1
Gesamtzahl Audits
Keine Sicherheitsprobleme gefunden
Auditiert von: claude

Qualitätsbewertung

38
Architektur
100
Wartbarkeit
85
Inhalt
50
Community
100
Sicherheit
83
Spezifikationskonformität

Was du bauen kannst

Backend-Entwickler

Asynchrone API-Aufrufe und paralleles Datenfetching in Kotlin-Microservices implementieren

Android-Entwickler

Asynchrone UI-Updates und reaktive Datenströme in Android-Apps handhaben

Code-Reviewer

Coroutine-Code auf korrekte Fehlerbehandlung und strukturierte Concurrency-Patterns prüfen

Probiere diese Prompts

Grundlegendes Coroutine-Setup
Zeigen Sie mir, wie ich ein CoroutineScope für parallele API-Aufrufe in Kotlin einrichte
Flow-Fehlerbehandlung
Wie behandle ich Fehler in einer Kotlin Flow-Pipeline?
Coroutine-Testing
Schreiben Sie einen Unit-Test für eine suspendierende Funktion mit TestScope
Cancellation-Behandlung
Erklären Sie, wie man Coroutine-Cancellation richtig handhabt, ohne CancellationException zu fangen

Bewährte Verfahren

  • Verwenden Sie immer Dispatchers.IO für blockierende I/O-Operationen, um den Main-Thread nicht zu blockieren
  • Brechen Sie Coroutine-Scopes ab, wenn sie nicht mehr benötigt werden (z. B. in ViewModel.onCleared)
  • Verwenden Sie TestScope und runTest für deterministisches Coroutine-Testing mit virtueller Zeit

Vermeiden

  • Vermeiden Sie GlobalScope - es bricht strukturierte Concurrency und kann zu Memory Leaks führen
  • Fangen Sie CancellationException nicht ab, es sei denn, Sie werfen sie erneut - dies bricht kooperative Cancellation
  • Vermeiden Sie die Verwendung von suspendCoroutine oder suspendCancellableCoroutine, wenn Higher-Level-APIs ausreichen

Häufig gestellte Fragen

Was ist strukturierte Concurrency in Kotlin?
Strukturierte Concurrency stellt sicher, dass Coroutines an einen Lifecycle-Scope gebunden sind. Wenn der Scope abbricht, werden alle Kind-Coroutines abgebrochen, was Leaks verhindert.
Wann sollte ich supervisorScope vs coroutineScope verwenden?
Verwenden Sie coroutineScope, wenn Sie möchten, dass jeder Fehler alle Kinder abbricht. Verwenden Sie supervisorScope, wenn Sie möchten, dass Kinder unabhängig voneinander fehlschlagen können, ohne Geschwister zu beeinflussen.
Wie teste ich Coroutines?
Verwenden Sie TestScope und runTest aus kotlinx.coroutines.test. Injizieren Sie TestDispatcher, um virtuelle Zeit für deterministisches Testing zu steuern.
Was ist der Unterschied zwischen Flow und StateFlow?
Flow ist cold - es produziert Werte nur beim Collecten. StateFlow ist hot - es behält einen aktuellen Wert und emittiert an alle Collector.
Wie behandle ich Exceptions in Flow?
Verwenden Sie den catch-Operator am Ende der Pipeline oder try-catch im Flow-Builder. Für Wiederholungen verwenden Sie retry oder retryWhen-Operatoren.
Was sind häufige Ursachen für Coroutine-Memory-Leaks?
Verwendung von GlobalScope, Nicht-Abbrechen von Scopes nach Fertigstellung, falsches Capturing von Context oder Halten von Referenzen auf Actors, die nie abgeschlossen werden.

Entwicklerdetails

Dateistruktur

📄 SKILL.md