Pandora ResearchPandora
Research
RUEN
Блог

Статьи и заметки

Рассказываем о разработке, искусственном интеллекте и о том, что нас вдохновляет. Делимся опытом команды Pandora Research.

Backend
Рекомендуем

Подключение S3-хранилища к проекту Django

Пошагово настраиваем раздачу статических и медиафайлов через S3-совместимое хранилище Yandex.Cloud в Django с помощью django-storages и boto3.

16 июля 20265 мин чтения
Читать статью
Python

AsyncIO в Python

Разбираем архитектуру цикла событий asyncio, его основные элементы и пишем простейшую асинхронную программу на Python с учётом изменений в версии 3.11.

14 июля 20264 мин чтения
DevOps

Dockerfile для проекта на Django

Разбираем на примере, как написать Dockerfile для Django-проекта: выбор образа, установка зависимостей, раздача статики через nginx и скрипт запуска с gunicorn.

11 июля 20266 мин чтения
Python

GIL: глобальная блокировка интерпретатора Python

Разбираем, что такое GIL (Global Interpreter Lock), как подсчёт ссылок в Python связан с глобальной блокировкой и когда потоки всё же имеют смысл.

9 июля 20265 мин чтения
DevOps

Git: основы контроля версий

Краткая памятка по основным командам Git: инициализация и настройка репозитория, работа с индексом, коммиты и откат изменений — с примерами команд и вывода.

7 июля 20265 мин чтения
Python

Менеджеры контекста и оператор with

Разбираемся, зачем нужны контекстные менеджеры и оператор with в Python и как создавать собственные — на основе классов с методами __enter__/__exit__ и на основе генераторов с декоратором contextmanager.

3 июля 20266 мин чтения
Python

Генераторы в Python

Разбираемся, что такое генераторы в Python, как работает ключевое слово yield, чем генератор отличается от итератора и где генераторы применяются — от бесконечных последовательностей до чтения больших файлов.

30 июня 20267 мин чтения
Python

Декораторы в Python

Разбираем декораторы в Python: функции высшего порядка и замыкания как их основа, «синтаксический сахар» с @, передачу аргументов через *args и **kwargs и универсальный шаблон декоратора.

26 июня 20268 мин чтения
Python

Итераторы в Python

Разбираем, как устроены итераторы в Python: реализуем аналог range с методами __iter__ и __next__, смотрим, как работает цикл for под капотом, и знакомимся со встроенными итераторами enumerate, zip и open.

22 июня 20266 мин чтения
Python

Корутины в Python

Разбираем корутины в Python: как они построены на генераторах, конструкция yield и метод send, декоратор для инициализации, а также преимущества и недостатки асинхронного подхода.

18 июня 20267 мин чтения