Промпт для написания асинхронного кода на Kotlin

×

Асинхронный код на Kotlin

Промпт для генерации асинхронного кода на Kotlin с использованием корутин. Запрос структурирован по входным параметрам: цель, операции, параллелизм, ошибки, выходные данные. Инструкция детализирует этапы анализа, выбора подхода, структуры кода, обработки ошибок и вывода результата, включает критерии успеха и предупреждения о типичных ошибках для написания эффективного и корректного кода.

Иконка глаза 1
Категория: Написание кода
Модели: ChatGPT Claude Grok DeepSeek
Промпт на русском языке:
Входные параметры:
1. Цель/задача кода: [Цель]
2. Основные операции или вызовы API: [Операции]
3. Требования к параллелизму/конкурентности: [Параллелизм]
4. Требования к обработке ошибок: [Ошибки]
5. Желаемая структура или выходные данные: [Выходные данные]

Ты эксперт по Kotlin и асинхронному программированию. Создай код корутин Kotlin для цели: [Цель].

Процесс:
1.  Анализ: Определи, какие операции являются долгими (I/O, сетевые вызовы, вычисления) и должны быть асинхронными. Основные операции: [Операции].
2.  Выбор подходов: Используй корутины Kotlin (async/await, coroutineScope, withContext). Учти требования к параллелизму: [Параллелизм] (например, параллельное или последовательное выполнение операций).
3.  Структура: Напиши функцию, инкапсулирующую логику. Используй подходящий диспетчер (Dispatchers.IO для I/O, Dispatchers.Default для вычислений). Для параллельного выполнения используй `coroutineScope` и `async` для запуска задач. Для последовательного использования `await()` на предыдущей задачи перед запуском следующей.
4.  Обработка ошибок: Реализуй обработку ошибок в соответствии с требованиями: [Ошибки] (например, возврат null, проброс исключения, использование Result-класса). Используй блоки try-catch для обработки исключений внутри корутин или пробрасывай их выше.
5.  Результат: Верни данные в структуре, соответствующей требованиям: [Выходные данные].

Критерии успеха:
- Код компилируется и работает без блокировок.
- Эффективно используются корутины для указанной цели.
- Реализована указанная обработка ошибок.
- Соблюдены требования к параллельному/последовательному выполнению.
- Код читаем и следует best practices Kotlin.

Предупреждения:
- Избегай использования `runBlocking` в продакшен-коде, только для тестов или точки входа.
- Не забывай отменять корутины в случае необходимости через CoroutineScope.
- Для зависимых асинхронных операций, которые должны выполняться последовательно, используй `await()` внутри `coroutineScope` или последовательные вызовы suspend-функций.
- Правильно выбирай диспетчеры (Dispatchers) для разных типов операций.
Промпт на английском языке:
Input parameters:
1. Code goal/task: [Goal]
2. Main operations or API calls: [Operations]
3. Concurrency/parallelism requirements: [Concurrency]
4. Error handling requirements: [Errors]
5. Desired output structure or data: [Output]

You are an expert in Kotlin and asynchronous programming. Create Kotlin coroutines code for the goal: [Goal].

Process:
1.  Analysis: Identify which operations are long-running (I/O, network calls, computations) and should be asynchronous. Main operations: [Operations].
2.  Approach selection: Use Kotlin coroutines (async/await, coroutineScope, withContext). Consider concurrency requirements: [Concurrency] (e.g., parallel or sequential execution of operations).
3.  Structure: Write a function encapsulating the logic. Use appropriate dispatchers (Dispatchers.IO for I/O, Dispatchers.Default for computations). For parallel execution, use `coroutineScope` and `async` to launch tasks. For sequential execution, use `await()` on the previous task before starting the next one.
4.  Error Handling: Implement error handling according to the requirements: [Errors] (e.g., return null, throw exception, use Result class). Use try-catch blocks to handle exceptions inside coroutines or rethrow them.
5.  Result: Return data in a structure that meets the requirements: [Output].

Success Criteria:
- The code compiles and runs without blocking.
- Coroutines are used efficiently for the stated goal.
- The specified error handling is implemented.
- Requirements for parallel/sequential execution are met.
- The code is readable and follows Kotlin best practices.

Warnings:
- Avoid using `runBlocking` in production code, only for tests or the entry point.
- Remember to cancel coroutines if necessary via CoroutineScope.
- For dependent async operations that must run sequentially, use `await()` inside `coroutineScope` or sequential calls to suspend functions.
- Choose the correct dispatchers (Dispatchers) for different types of operations.