Три способа выполнить множество задач с asyncio
Функция для примера:
async def do_it(n):
await asyncio.sleep(random.uniform(0.5, 1))
return n
1. Последовательный вызов
async def main():
for i in range(100):
result = await do_it(i)
Такой вызов имеет смысл только тогда, когда результат одной задачи требуется для вызова следующей.
Если они независимы, то это антипаттерн, так как аналогичен простому синхронному вызову по очереди.
2. Упорядоченный результат
async def main():
tasks = [do_it(i) for i in range(100)]
results = await asyncio.gather(*tasks)
Выполняет корутины конкурентно и возвращает результат в виде списка.
Полезен когда требуется получить результаты в том же порядке в котором задачи отправлены.
3. Результат по мере готовности
tasks = [asyncio.create_task(do_it(i)) for i in range(100)]
for cor in asyncio.as_completed(tasks):
result = await cor
Так же выполняет корутины конкурентно, но не гарантирует порядок. Результат возвращается по мере готовности, каждый отдельно.
Полезен когда нужно обработать любой ответ как можно скорее.
#async
🔨Вышла Android Studio Panda 3
В новом стабильном релизе Android Studio два изменения, которые напрямую влияют на работу с Agent Mode.
Первое — собственные Agent Skills. Создаёшь папку .skills/ в корне проекта, кладёшь туда SKILL.md с описанием нужного воркфлоу, и агент начинает использовать его автоматически. Можно вызвать вручную через @имя. Скилл может содержать инструкции по код-ревью под ваши стандарты, информацию о внутренних библиотеках, любые кастомные практики команды. Концепция ровно та же, что в Claude Code с CLAUDE.md, только встроена прямо в Studio.
Второе — гранулярные разрешения для AI. Агент явно запрашивает разрешение перед чтением файлов, запуском shell-команд и веб-запросами. Можно настроить постоянные исключения для доверенных операций, SSH-ключи всегда требуют явного OK. Плюс опциональный sandbox для полной изоляции.
#AndroidStudio#AgentMode#AIdev
🤖Google выложила официальный репозиторий Android Skills — набор инструкций для ИИ-агентов, заточенных под Android-разработку.
Идея простая: вместо того чтобы объяснять агенту контекст каждый раз руками, ты даёшь ему готовый SKILL.md — файл со структурированными инструкциями, шагами и справочными материалами по конкретной задаче. Агент читает его как спецификацию и работает точнее.
Это следует открытому стандарту agentskills.io, то есть формат не завязан на один инструмент — подходит для Claude Code, Cursor и любого другого агента, который умеет читать файлы из контекста.
Что уже есть в репозитории:
👉Миграция с XML-вёрстки на Jetpack Compose
👉Установка и миграция на Navigation 3 (deep links, multiple backstacks)
👉Анализ R8-правил и оптимизация размера APK
👉Обновление до последней версии Play Billing Library
Как использовать: скачиваешь нужный SKILL.md из репозитория, добавляешь в контекст агента (в Claude Code — через команду /add-file или как часть промпта), говоришь что нужно сделать. Агент уже знает, как это делается по правилам Google.
Набор пока небольшой, но сама идея правильная: вместо того чтобы учить агента с нуля на каждом проекте, ты даёшь ему готовую базу знаний от самой команды Android.
🐱GitHub Android Skills
#AndroidDev#AIDev#ClaudeCode