kotlin-coroutines-expert
Освойте Kotlin Coroutines и Flow
Kotlin Coroutines и Flow могут быть сложными для освоения. Этот навык предоставляет экспертные паттерны для структурированной конкурентности, обработки ошибок и тестирования асинхронного кода.
Скачать ZIP навыка
Загрузить в Claude
Перейдите в Settings → Capabilities → Skills → Upload skill
Включите и начните использовать
Протестировать
Использование «kotlin-coroutines-expert». Как выполнить два вызова API параллельно и обрабатывать ошибки независимо?
Ожидаемый результат:
Используйте supervisorScope для запуска async-задач, где сбой одной не отменяет другие. Пример: val task1 = async { api.fetchA() }; val task2 = async { api.fetchB() }; Оба могут завершиться с ошибкой независимо, не влияя друг на друга.
Использование «kotlin-coroutines-expert». Когда следует использовать StateFlow вместо SharedFlow?
Ожидаемый результат:
Используйте StateFlow для состояния UI, которое нужно сохранять и которое всегда имеет текущее значение. Используйте SharedFlow для одноразовых событий, таких как навигация или отображение toast-сообщений.
Аудит безопасности
Безопасно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.
Оценка качества
Что вы можете построить
Backend-разработчик
Реализация асинхронных вызовов API и параллельного получения данных в Kotlin-микросервисах
Android-разработчик
Обработка асинхронных обновлений UI и реактивных потоков данных в Android-приложениях
Ревьюер кода
Проверка кода корутин на правильную обработку ошибок и паттерны структурированной конкурентности
Попробуйте эти промпты
Покажите, как настроить CoroutineScope для параллельных вызовов API в Kotlin
Как обрабатывать ошибки в конвейере Kotlin Flow?
Напишите модульный тест для suspending-функции с использованием TestScope
Объясните, как правильно обрабатывать отмену корутины без перехвата CancellationException
Лучшие практики
- Всегда используйте Dispatchers.IO для блокирующих I/O-операций, чтобы не блокировать основной поток
- Отменяйте области корутин, когда они больше не нужны (например, в ViewModel.onCleared)
- Используйте TestScope и runTest для детерминированного тестирования корутин с виртуальным временем
Избегать
- Избегайте GlobalScope — он нарушает структурированную конкурентность и может привести к утечкам памяти
- Не перехватывайте CancellationException, если вы не выбрасываете его повторно — это нарушает кооперативную отмену
- Избегайте использования suspendCoroutine или suspendCancellableCoroutine, когда достаточно API более высокого уровня
Часто задаваемые вопросы
Что такое структурированная конкурентность в Kotlin?
Когда следует использовать supervisorScope вместо coroutineScope?
Как тестировать корутины?
В чём разница между Flow и StateFlow?
Как обрабатывать исключения в Flow?
Каковы распространённые причины утечек памяти в корутинах?
Сведения для разработчиков
Автор
sickn33Лицензия
MIT
Репозиторий
https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/kotlin-coroutines-expertСсылка
main
Структура файлов
📄 SKILL.md