Рубрика «async»

Полгода я использовал Claude, GPT и Cursor как основной инструмент для написания Rust-кода в проде. Не как «помощник для бойлерплейта», а как полноценного второго разработчика на монолите примерно в 80 тысяч строк (бэкенд обработки потоковых данных, tokio, sqlx, немного unsafe в hot path). Доля сгенерированного кода в коммитах последних шести месяцев около 40%, остальное это правки, рефакторинг и места, куда модель я не пускаю.

Читать полностью »

Конечный автомат и его внутреннее устройство

Примечание переводчика:

  • State Machine, конечный автомат это преобразованный async метод. Компилятор преобразует метод в тип, реализующий конечный автомат (наследуется от IAsyncStateMachine). Благодаря такому механизму, при достижении первого оператора await поток, начавший метод, может возвращаться без «физического» оператора return метода, тем самым, продолжая выполнение основной программы.

    В математике, конечный автомат это некоторая система, которая может находится только в одном состоянии.

    (Возможные) состояния конечного автомата:

Laravel + TrueAsync: настоящая конкурентность без Swoole - 1

Всё началось с отклонённого RFC.

Читать полностью »

Как родился async-background

Лёгкий cron, интервалы и очередь фоновых задач для Ruby-приложений на Async — без Redis, без Postgres, без отдельного процесса.


Откуда взялась идея

История началась с прозаичного: у меня было Falcon-приложение на Async, и в нём накопились задачи, которые надо было выполнять где-то рядом. Раз в минуту синхронизировать каталог. В 3:00 — отчёт. На действие пользователя — отправить письмо «через 5 минут после регистрации, если он не подтвердил почту».

Классический набор. Классический ответ — Sidekiq. Я открыл Gemfile, набрал gem "sidekiq"Читать полностью »

Действующие лица:

МП (Молодой Пол) — год в индустрии, глаза горят, в голове свежий Clean Architecture. Верит, что облако бесконечно, а new — почти как комментарий: написал и забыл.

ДП (Дядя Паша) — 47 лет, седая борода, архитектор. Первый продакшен — в 12: школьная программа по астрономии, которая мерила знания и ломала нервы отличникам. Сейчас — терраса в Палермо, бокал холодного Мальбек, на экране — метрики и паузы GC.


Диалог:

МП:
Читать полностью »

Привет! Хочу рассказать о своей новой библиотеке context-async-sqlalchemy, которая помогает очень просто работать с sqlalchemy в async python приложениях. Минимум кода для простых сценариев, но и максимум свободы для сложных.

Сначала кратко пройдемся по теории из чего состоит sqlalchemy и как ее происходит интеграция в python приложение. Посмотрим какие есть нюансы и как context-async-sqlalchemy помогает вам удобно работать. Важно что речь идет только об async python.

Краткая сводка по sqlalchemy

sqlalchemy предоставляет EngineЧитать полностью »

Представь, что ты строишь огромный замок из LEGO. Это твоя игра в Unity! Ты хочешь, чтобы в замке двигались рыцари, летали драконы, а еще играла музыка – и всё это одновременно!

Что такое "задачи" в программировании?

Когда ты говоришь компьютеру, что делать, ты даешь ему "задачи". Например:

  • "Нарисуй рыцаря!"

  • "Подожди 1 секунду."

  • "Запусти музыку!"

Что если задачи долгие?

Читать полностью »

0. Кто такая асинхронность?

Асинхронность — это способ не блокировать поток, пока ты ждешь завершения операции. Она позволяет программе продолжать работать, даже если одна из операций (например, запрос к серверу) занимает время.

Какие преимущества дает?

Асинхронность

Асинхронность

Читать полностью »

Предисловие

Понадобилось мне создать панель категорий размещаемых предметов в UI. Как в градостроительных симуляторах. В наследие мне достался уже готовый UENUM, который в будущем будет изменен.

Естественно, очень не хотелось вручную перемещать и настраивать каждый отдельный виджет. Так еще и заниматься этим в будущем с изменениями категорий. Хотелось чего-то простого и универсального. Чтобы вот вызвал условный For Each Loop и сгенерировал все как надо, еще и не обязательно только для этого енама.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js