Система заказов: решаем проблему конкуренции без очередей
Система заказов: решаем проблему конкуренции без очередей
При разработке локального маркетплейса Django, и одна из задач, с которой пришлось поработать — это система бронирования товаров при создании заказа. Согласно требованиям, система должна уметь бронировать товары за покупателем, давать ему немного времени на оплату, а потом — если он не успел — освобождать эти товары для других.
Сначала стояла «заглушка»: при каждом новом заказе «на лету» агрегировали данные из базы — проверяли, хватает ли товара на складе с учетом уже оформленных заказов. Такой подход часто используют на старте, когда нужно быстро запустить MVP. Понимали, что при росте нагрузки он не масштабируется: возможны блокировки, гонки и overbooking. Пока писали другие части системы, держали это в голове и ждали, когда дойдут руки, чтобы заменить агрегацию на более устойчивое решение. Мы рассмотрели возможные варианты, и всё свелось к двум основным подходам. Дальше расскажем, как выбирали между ними и к чему в итоге пришли.
Открыть статью
Читать: https://habr.com/ru/articles/933542/
#ru
@django_prog | Другие наши каналы
Система заказов: решаем проблему конкуренции без очередей
При разработке локального маркетплейса Django, и одна из задач, с которой пришлось поработать — это система бронирования товаров при создании заказа. Согласно требованиям, система должна уметь бронировать товары за покупателем, давать ему немного времени на оплату, а потом — если он не успел — освобождать эти товары для других.
Сначала стояла «заглушка»: при каждом новом заказе «на лету» агрегировали данные из базы — проверяли, хватает ли товара на складе с учетом уже оформленных заказов. Такой подход часто используют на старте, когда нужно быстро запустить MVP. Понимали, что при росте нагрузки он не масштабируется: возможны блокировки, гонки и overbooking. Пока писали другие части системы, держали это в голове и ждали, когда дойдут руки, чтобы заменить агрегацию на более устойчивое решение. Мы рассмотрели возможные варианты, и всё свелось к двум основным подходам. Дальше расскажем, как выбирали между ними и к чему в итоге пришли.
Открыть статью
Читать: https://habr.com/ru/articles/933542/
#ru
@django_prog | Другие наши каналы
Как устроен пакет Django-Leaflet-Admin-List
Попросили рассказать про этот пакет, чем я и займусь.
Пакет Django-Leaflet-Admin-List позволяет добавить карту со всеми географическими объектами на странице в отображение списка в админке Django.
Читать: https://habr.com/ru/articles/933582/
#ru
@django_prog | Другие наши каналы
Попросили рассказать про этот пакет, чем я и займусь.
Пакет Django-Leaflet-Admin-List позволяет добавить карту со всеми географическими объектами на странице в отображение списка в админке Django.
Читать: https://habr.com/ru/articles/933582/
#ru
@django_prog | Другие наши каналы
5 VPS-хостингов в 2025, которые держат нагрузку: кейсы, стоимость, метрики
Сравниваем 5 VPS-провайдеров, которые стабильно работают под нагрузкой в 2025 году. Разбираем стоимость, примеры использования, производительность и uptime.
Читать: «5 VPS-хостингов в 2025, которые держат нагрузку: кейсы, стоимость, метрики»
#ru
@django_prog | Другие наши каналы
Сравниваем 5 VPS-провайдеров, которые стабильно работают под нагрузкой в 2025 году. Разбираем стоимость, примеры использования, производительность и uptime.
Читать: «5 VPS-хостингов в 2025, которые держат нагрузку: кейсы, стоимость, метрики»
#ru
@django_prog | Другие наши каналы
Куда двигаться после изучения Django: советы для Python-разработчиков
В статье разбираемся, почему Django — далеко не финиш в карьере, и в каких направлениях можно двигаться Python-разработчику.
Читать: «Куда двигаться после изучения Django: советы для Python-разработчиков»
#ru
@django_prog | Другие наши каналы
В статье разбираемся, почему Django — далеко не финиш в карьере, и в каких направлениях можно двигаться Python-разработчику.
Читать: «Куда двигаться после изучения Django: советы для Python-разработчиков»
#ru
@django_prog | Другие наши каналы
Tproger
Куда двигаться после изучения Django: советы для Python-разработчиков
В статье разбираемся, почему Django — далеко не финиш в карьере, и в каких направлениях можно двигаться Python-разработчику.
Как подключить проект Django к S3 от Yandex
Выбрал сервис Yandex Object Storage (S3) для медиа (фото) и статики. Потратил пару дней, чтобы подключить. Статью от Яндекса не нашел, использовал пару сторонних сайтов и информацию с Chat GPT. И вот решил написать свою статью.
Начнем с Django. По идее в settings.py у вас так...
Читать: https://habr.com/ru/articles/938040/
#ru
@django_prog | Другие наши каналы
Выбрал сервис Yandex Object Storage (S3) для медиа (фото) и статики. Потратил пару дней, чтобы подключить. Статью от Яндекса не нашел, использовал пару сторонних сайтов и информацию с Chat GPT. И вот решил написать свою статью.
Начнем с Django. По идее в settings.py у вас так...
Читать: https://habr.com/ru/articles/938040/
#ru
@django_prog | Другие наши каналы
❤1
Django 5: асинхронный бекенд и эффектный фронтенд с минимальными затратами времени
Приветствую, друзья!
Уже давно у меня возникала мысль подробно, как в случае с FastAPI и Aiogram 3, разобрать «суровый» Django 5. Однако, из-за большого дефицита свободного времени и масштабности Django, руки до этого не доходили. Сегодня, как вы уже поняли, момент настал.
В процессе написания кода мы затронем следующие темы: маршрутизация, работа со статическими файлами, асинхронное использование Django 5, работа с базой данных SQLite через встроенное ORM и многое другое.
Сегодня мы создадим простой сайт, который будет демонстрировать гороскоп на завтра для любого знака зодиака. Чтобы было интереснее, гороскоп будем парсить в момент обращения к знаку зодиака (об этом подробнее далее).
Читать: https://habr.com/ru/companies/amvera/articles/840612/
#ru
@django_prog | Другие наши каналы
Приветствую, друзья!
Уже давно у меня возникала мысль подробно, как в случае с FastAPI и Aiogram 3, разобрать «суровый» Django 5. Однако, из-за большого дефицита свободного времени и масштабности Django, руки до этого не доходили. Сегодня, как вы уже поняли, момент настал.
В процессе написания кода мы затронем следующие темы: маршрутизация, работа со статическими файлами, асинхронное использование Django 5, работа с базой данных SQLite через встроенное ORM и многое другое.
Сегодня мы создадим простой сайт, который будет демонстрировать гороскоп на завтра для любого знака зодиака. Чтобы было интереснее, гороскоп будем парсить в момент обращения к знаку зодиака (об этом подробнее далее).
Читать: https://habr.com/ru/companies/amvera/articles/840612/
#ru
@django_prog | Другие наши каналы
Оптимизация Django под высокие нагрузки: как мы ускорили ответы сервиса с помощью кэша, SIMD и настройки GC
За более чем 10 лет в разработке я не раз сталкивался с проблемой недостаточной производительности сервисов. Особенно это заметно на Python – отличном языке для быстрого старта, с множеством библиотек и фреймворков. Однако, когда проект растёт, его производительности начинает не хватать, и проблемы с задержками превращаются в угрозу стабильности и пользовательскому опыту. В этом руководстве я поделюсь практическими решениями, основанными на реальных кейсах, чтобы помочь вам оптимизировать Django-сервис и значительно сократить время ответа на запросы.
Читать: https://habr.com/ru/articles/941336/
#ru
@django_prog | Другие наши каналы
За более чем 10 лет в разработке я не раз сталкивался с проблемой недостаточной производительности сервисов. Особенно это заметно на Python – отличном языке для быстрого старта, с множеством библиотек и фреймворков. Однако, когда проект растёт, его производительности начинает не хватать, и проблемы с задержками превращаются в угрозу стабильности и пользовательскому опыту. В этом руководстве я поделюсь практическими решениями, основанными на реальных кейсах, чтобы помочь вам оптимизировать Django-сервис и значительно сократить время ответа на запросы.
Читать: https://habr.com/ru/articles/941336/
#ru
@django_prog | Другие наши каналы
Состояние Python в 2025 году
Команда Python, PyCharm и DevTools подготовила перевод статьи, основанной на 30 000 ответов разработчиков. TL;DR: 50% разработчиков пишут на Python меньше двух лет, Rust тихо становится «вторым пилотом», FastAPI вырывается вперёд, а агентный AI уже меняет то, как мы пишем код.
Читать: https://habr.com/ru/articles/941874/
#ru
@django_prog | Другие наши каналы
Команда Python, PyCharm и DevTools подготовила перевод статьи, основанной на 30 000 ответов разработчиков. TL;DR: 50% разработчиков пишут на Python меньше двух лет, Rust тихо становится «вторым пилотом», FastAPI вырывается вперёд, а агентный AI уже меняет то, как мы пишем код.
Читать: https://habr.com/ru/articles/941874/
#ru
@django_prog | Другие наши каналы
Эволюция ForeignKey в Django: от наивной модели до продакшена
Команда Python for Devs подготовила перевод статьи о том, как легко «сломать» внешние ключи в Django и что с этим делать. Если кратко, то
Читать: https://habr.com/ru/articles/942252/
#ru
@django_prog | Другие наши каналы
Команда Python for Devs подготовила перевод статьи о том, как легко «сломать» внешние ключи в Django и что с этим делать. Если кратко, то
unique_together
больше не нужен, индексы на ForeignKey работают не так, как вы думаете, миграции могут блокировать продакшен, а правильный порядок операций и частичные индексы экономят гигабайты и спасают нервы.Читать: https://habr.com/ru/articles/942252/
#ru
@django_prog | Другие наши каналы
🔥2