Сниппеты кода
Полезные фрагменты кода от сообщества.
Форматирование чисел, дат и валют
Intl вместо самописных форматтеров: локали, валюты, относительное время и множественные формы.
Группировка и агрегация массива
Object.groupBy, reduce и сортировка по нескольким полям — повседневные операции над списками.
Глубокое клонирование объекта
structuredClone из современных браузеров и запасная рекурсивная реализация для Date, Map, Set и массивов.
Fetch с таймаутом и обработкой ошибок
Обёртка над fetch: AbortController для таймаута, проверка response.ok, разбор JSON.
Debounce и throttle
Две базовые функции для событий ввода, скролла и resize: debounce откладывает вызов, throttle ограничивает частоту.
Валидация данных через dataclass
Типизированные структуры с проверкой в __post_init__ и сериализацией в словарь.
Контекстный менеджер для транзакций
Собственный контекстный менеджер через contextlib: commit при успехе, rollback при ошибке.
Разбор аргументов командной строки
Шаблон CLI на argparse: позиционные и опциональные аргументы, подкоманды, коды возврата.
Кеширование результатов функции
lru_cache для чистых функций и cached_property для тяжёлых атрибутов модели.
Хеширование паролей без сторонних библиотек
PBKDF2-HMAC из hashlib и сравнение в постоянном времени. Никогда не храните пароли в открытом виде.
Асинхронные HTTP-запросы на aiohttp
Сотни параллельных запросов в одном потоке; семафор ограничивает нагрузку на сервер.
Параллельная загрузка через ThreadPoolExecutor
Ускорение сетевых (I/O-bound) задач без asyncio: пул потоков и обработка результатов по мере готовности.