Конспекты по Python и бэкенду: 219 заметок, от синтаксиса до деплоя. Каждая заметка — самостоятельный разбор темы «от простого к сложному», с примерами кода, разбором типичных ошибок и списком источников в конце: официальная документация, PEP, спецификации и книги.
Заметки связаны между собой ссылками — переходить можно прямо по тексту. Всё на русском.
Материал вырос из личного хранилища Obsidian, поэтому изложение — от первого лица к читателю, а не сухая документация. Часть ссылок ведёт на темы за пределами этого репозитория (SQL, сети, архитектура) — они оставлены обычным текстом.
Три коротких входа — на случай, если читать всё подряд не нужно.
Если готовишься к собеседованию
Вопросы с собеседований · Хеш-таблица · Управление памятью в Python · CPU-bound против IO-bound · Декораторы Python · Магические методы Python · SOLID Python · Шпаргалка — шаблоны алгоритмов · Проектирование систем (system design) · Вопросы про опыт и мотивацию
Если уже пишешь на Python и нужен бэкенд
WSGI и ASGI — интерфейс сервера и приложения · FastAPI · pydantic · SQLAlchemy · Аутентификация — методы и протоколы · JWT — подпись и проверка токенов · pytest · Redis · Docker · Развертывание проекта
Если пришёл за конкретным модулем
typing · functools · collections · re · pathlib · json · logging · argparse
Полный маршрут с нуля. Внутри ступени заметки идут в том порядке, в каком они друг на друга опираются; ступени можно проходить подряд.
Начать стоит с того, как язык исполняется: без этого «почему медленно» и «почему объект» останутся магией.
Порядок здесь не случайный: каждая следующая заметка опирается на предыдущую.
Синтаксические конструкции Python · Операторы Python · Ветвление Python · Циклы Python · Функции Python · Match Case Python · Константы в Python · Обработка ошибок Python · Ошибки Python · Работа с файлами Python · Модули и пакеты Python · Стиль кода Python — PEP 8 и Google Style Guide · Ловушки Python
Сначала типы самого языка, затем абстракции (что умеет), затем структуры (как устроено внутри и сколько стоит).
Примитивные типы данных Python · Составные типы данных Python · Специальные типы данных Python · Список · Словарь · Множество и кортеж · Стек · Очередь · Массив · Хеш-таблица · Связный и двусвязный список · Дерево · Граф · Список с пропусками · Работа с форматами данных в Python
То, что отличает «пишу на Python» от «понимаю Python». Отсюда же начинаются вопросы на собеседовании.
Декораторы Python · Декоратор с состоянием · Магические методы Python · Управление памятью в Python · Метаклассы Python · Стандартные потоки — stdin, stdout, stderr · Лексикографический порядок · Разворачивание вложенных списков (flatten) Python · Линтеры и форматтеры
Паттерны без принципов превращаются в зубрёжку. Сначала четыре принципа и SOLID, затем каталог.
Принципы ООП в Python · Абстракция Python · Инкапсуляция Python · Наследование Python · Полиморфизм Python · Моделирование — что попадает в класс · SOLID Python · SOLID на практике — рефакторинг сервиса · Принципы разработки — DRY, KISS, DI · Композиционный корень · UML — диаграммы · Паттерны проектирования · Порождающие паттерны · Структурные паттерны · Паттерны поведения · Паттерны в практике — Lexi · Справочник — глоссарий и нотация
Читать подряд не нужно — это справочник. Пройти стоит по группам, когда упёрся в задачу; полный список в карте.
typing · dataclass · functools · itertools · collections · pathlib · re · logging
Стратегия решения → конкретные алгоритмы → приёмы, которые повторяются в задачах.
Итерация · Рекурсия · Разделяй и властвуй · Жадные алгоритмы · Динамическое программирование · Поиск с возвратом · Пузырьком · Выбором · Вставками · Слиянием · Быстрая · BFS · DFS · Алгоритм Дейкстры · Два указателя · Скользящее окно · Префиксные суммы · Мемоизация · Шпаргалка — шаблоны алгоритмов
Ключевая развилка — CPU-bound против IO-bound: от неё зависит, нужен вам поток, процесс или корутина.
CPU-bound против IO-bound · threading · multiprocessing · concurrent.futures · queue · Asyncio Event Loop и aiohttp · Блокирующий код в event loop · Асинхронная работа с файлами · Декораторы для асинхронных функций
Сначала интерфейс между сервером и приложением, потом сам фреймворк. Ветки FastAPI и Django независимы — можно читать любую.
WSGI и ASGI — интерфейс сервера и приложения · requests · pydantic · FastAPI · Depends — зависимости в FastAPI · REST API на FastAPI · Тестирование FastAPI-приложений · FLASK · Django · ORM Django · API · CRUD В DRF · Кастомная модель User · Разделение доступа в DRF · Сигналы Django · Django с многими приложениями · Тестирование Django приложений · SQLAlchemy · psycopg2
Порядок от общего к частному: кто ты → как хранится пароль → чем подтверждается сессия.
Аутентификация — методы и протоколы · Пароли — хранение и проверка · JWT — подпись и проверка токенов · Oauth 2.0 · Веб-безопасность · HTTPS и обмен ключами Диффи — Хеллмана
Юнит-тестирование Python · pytest · Интеграционные тесты и testcontainers · Нагрузочное тестирование — locust и k6
Redis · RabbitMQ · Celery · Airflow · numpy · pandas
От «работает у меня» до «работает и видно, что происходит».
Docker · Docker Compose — несколько окружений · Работа с сервером · nginx · Развертывание проекта · CI CD · Jenkins · Kubernetes · Terraform · Наблюдаемость — метрики, логи, трейсы · Prometheus и Grafana · Sentry
Код-ревью · Рефакторинг · Проектирование систем (system design)
Вопросы с собеседований · Вопросы про опыт и мотивацию
Корень — Python · WSGI и ASGI — интерфейс сервера и приложения · Аутентификация — методы и протоколы · Пароли — хранение и проверка · JWT — подпись и проверка токенов · Веб-безопасность · Проектирование систем (system design) · Код-ревью · Рефакторинг · Вопросы с собеседований · Вопросы про опыт и мотивацию
Match Case Python · Zen of Python · Ветвление Python · Декоратор с состоянием · Декораторы Python · Декораторы для асинхронных функций · Константы в Python · Лексикографический порядок · Линтеры и форматтеры · Ловушки Python · Магические методы Python · Метаклассы Python · Модули и пакеты Python · Обработка ошибок Python · Операторы Python · Ошибки Python · Работа с файлами Python · Разворачивание вложенных списков (flatten) Python · Синтаксические конструкции Python · Стандартные потоки — stdin, stdout, stderr · Стиль кода Python — PEP 8 и Google Style Guide · Управление памятью в Python · Функции Python · Циклы Python
Примитивные типы данных Python · Работа с форматами данных в Python · Составные типы данных Python · Специальные типы данных Python
АТД — Множество и кортеж · Очередь · Словарь · Список · Стек
Структуры данных — Граф · Дерево · Массив · Связный и двусвязный список · Список с пропусками · Хеш-таблица
Паттерны — Паттерны в практике — Lexi · Паттерны поведения · Паттерны проектирования · Порождающие паттерны · Справочник — глоссарий и нотация · Структурные паттерны
Принципы — SOLID Python · SOLID на практике — рефакторинг сервиса · Абстракция Python · Инкапсуляция Python · Композиционный корень · Моделирование — что попадает в класс · Наследование Python · Полиморфизм Python · Принципы ООП в Python · Принципы разработки — DRY, KISS, DI
Шпаргалка — шаблоны алгоритмов
Задачки — LRU-кэш · Кратчайший путь (BFS) · Проектирование связного списка · Ход конём
Иные — HTTPS и обмен ключами Диффи — Хеллмана · HyperLogLog · PageRank · Двоичная куча и очередь с приоритетом · Инвертированный индекс · Контрольная цифра и алгоритм Луна · Линейная регрессия · Локально-чувствительное хеширование (SimHash) · Параллельные алгоритмы · Преобразование Фурье · Фильтр Блума
Поиск — BFS · DFS · KNN · Алгоритм Беллмана — Форда · Алгоритм Дейкстры · Код Хаффмана
Приёмы — Алгоритм Кадане · Битовые приёмы · Два указателя · Интервалы · Мемоизация · Монотонный стек · Обход клетчатого поля · Префиксные суммы · Скользящее окно · Стресс-тестирование · Фиктивный узел · Циклическая сортировка
Сортировка — Быстрая · Вставками · Выбором · Подсчётом · Поразрядная · Пузырьком · Слиянием
Стратегии — Ветви и границы · Динамическое программирование · Жадные алгоритмы · Итерация · Линейная оптимизация · Поиск с возвратом · Разделяй и властвуй · Рандомизированные алгоритмы · Рекурсия
Безопасность и интернет — email · hashlib · secrets · ssl · uuid
Дата и время — datetime · time
Коллекции и структуры данных — array · bisect · collections · heapq
Отладка и утилиты — contextlib · logging · pprint · Профилирование и отладка
Параллелизм — Asyncio Event Loop и aiohttp · CPU-bound против IO-bound · concurrent.futures · multiprocessing · queue · threading · Асинхронная работа с файлами · Блокирующий код в event loop
Работа с файлами — glob · io · os · pathlib · shutil · tempfile · zipfile
Работа с числами — decimal · math · random · statistics
Система и окружение — argparse · sys · venv
Типы и объекты — abc · copy · dataclass · enum · typing
Форматы данных — base64 · csv · json · pickle · sqlite3 · struct
Функциональные инструменты — functools · itertools · operator
Сторонние — Airflow · Celery · RabbitMQ · Redis · numpy · pandas · pydantic
ORM — SQLAlchemy
Работа с WEB — BeautifulSoup · Grab · GraphQL · Oauth 2.0 · SOAP · Selenium · requests · Вебхуки (webhooks)
Работа с БД — psycopg2
Тесты — pytest · Интеграционные тесты и testcontainers · Нагрузочное тестирование — locust и k6 · Юнит-тестирование Python
Depends — зависимости в FastAPI · FLASK · FastAPI · REST API на FastAPI · aiogram · discord.py · Тестирование FastAPI-приложений
DJANGO — API · CRUD В DRF · Django с многими приложениями · Django · ORM Django · Кастомная модель User · Разделение доступа в DRF · Сигналы Django · Тестирование Django приложений
CI CD · Docker Compose — несколько окружений · Docker · Jenkins · Kubernetes · Prometheus и Grafana · Sentry · Terraform · nginx · Наблюдаемость — метрики, логи, трейсы · Работа с сервером · Развертывание проекта
Тексты — CC BY 4.0: пользуйтесь, копируйте, переделывайте, укажите источник. Примеры кода — делайте с ними что хотите.