Репозиторий python-patterns: каталог паттернов, которые стоит выбирать с умом
В python-patterns собраны классические паттерны и идиомы Python — 42,8k звёзд, 7k форков и 896 коммитов. Сообщество использует его как шпаргалку, чтобы быстро вспомнить, как выглядит тот или иной подход в коде.
Авторы явно предупреждают: каждый паттерн несёт свои компромиссы, а выбирать нужно не по красоте реализации, а по ситуации. В Python это особенно актуально — язык сам даёт идиомы, от итераторов до менеджеров контекста, и часто проще использовать встроенное, чем городить фабрику.
Полезно сохранить на тот момент, когда вам хочется применить паттерн ради паттерна. Иногда достаточно обычной функции.
В python-patterns собраны классические паттерны и идиомы Python — 42,8k звёзд, 7k форков и 896 коммитов. Сообщество использует его как шпаргалку, чтобы быстро вспомнить, как выглядит тот или иной подход в коде.
Авторы явно предупреждают: каждый паттерн несёт свои компромиссы, а выбирать нужно не по красоте реализации, а по ситуации. В Python это особенно актуально — язык сам даёт идиомы, от итераторов до менеджеров контекста, и часто проще использовать встроенное, чем городить фабрику.
Полезно сохранить на тот момент, когда вам хочется применить паттерн ради паттерна. Иногда достаточно обычной функции.
❤2✍2
На Tproger вышла история разработчика с 10 годами опыта: с инженерной частью у него всё было закрыто, а для своего дела не хватало другого — проверять идею, считать деньги, доводить продукт до рынка. Онлайн-курсы он бросал на середине, поэтому выбрал формат пожёстче: онлайн-магистратуру МФТИ по технологическому предпринимательству.
В обзоре: как совмещать такую учёбу с работой, почему реальная нагрузка выходит 20–25 часов в неделю вместо заявленных 10, где программа слабая и во сколько она обойдётся в 2026 году.
@zen_of_python
В обзоре: как совмещать такую учёбу с работой, почему реальная нагрузка выходит 20–25 часов в неделю вместо заявленных 10, где программа слабая и во сколько она обойдётся в 2026 году.
@zen_of_python
Tproger
Сколько стоит стать предпринимателем: обзор онлайн-магистратуры МФТИ
Разработчик прошёл онлайн-магистратуру МФТИ по технологическому предпринимательству и рассказывает: формат, нагрузка, стоимость и стоит ли идти.
❤1
Altair: графики через описание данных, а не ручная настройка каждой оси
В духе Zen of Python: простое лучше сложного. Если в Matplotlib вы сначала объявляете фигуру, потом крутите оси и legend, то в Altair вы просто говорите DataFrame, какую колонку на какую ось положить, что раскрасить и как сделать интерактивным. Библиотека сама строит визуализацию из HTML и JavaScript, которая работает в ноутбуке или сохраняется отдельным файлом.
Real Python советует ставить Altair в выделенное виртуальное окружение: вместе с ним приезжают pandas и Vega-Lite-рендерер, и лучше не мешать их с остальным окружением.
Это не замена Matplotlib. Для пиксельно точных публикационных фигур или 3D по-прежнему стоит брать Matplotlib; для интерактивного исследования в ноутбуке — Altair удобнее.
В духе Zen of Python: простое лучше сложного. Если в Matplotlib вы сначала объявляете фигуру, потом крутите оси и legend, то в Altair вы просто говорите DataFrame, какую колонку на какую ось положить, что раскрасить и как сделать интерактивным. Библиотека сама строит визуализацию из HTML и JavaScript, которая работает в ноутбуке или сохраняется отдельным файлом.
Real Python советует ставить Altair в выделенное виртуальное окружение: вместе с ним приезжают pandas и Vega-Lite-рендерер, и лучше не мешать их с остальным окружением.
Это не замена Matplotlib. Для пиксельно точных публикационных фигур или 3D по-прежнему стоит брать Matplotlib; для интерактивного исследования в ноутбуке — Altair удобнее.
🔥4
За
Каждый раз, когда вы вешаете декоратор на метод, Python тихо создаёт объект с методом
В свежем HOWTO от Рэймонда Хеттингера разобрано, как именно это работает: от примера, который всегда возвращает десятку, до чисто-питонических реализаций
@property и @staticmethod стоят дескрипторыКаждый раз, когда вы вешаете декоратор на метод, Python тихо создаёт объект с методом
__get__. Этот объект ловит обращение к атрибуту класса и решает, что вернуть — bound method, вычисленное значение или сам дескриптор.В свежем HOWTO от Рэймонда Хеттингера разобрано, как именно это работает: от примера, который всегда возвращает десятку, до чисто-питонических реализаций
property и __slots__. Гайд пригодится, если хотите перестать догадываться и начать предсказывать поведение своих классов.❤1
Hypothesis начал переносить внутренности с Python на Rust
Библиотека property-based тестирования Hypothesis в релизе 6.156.0 от 1 июля объявила о начале миграции внутренних компонентов на Rust. Пока перенесён один простой вспомогательный хелпер, но направление задано, и за неделю вышла целая серия патчей вокруг сборки — вплоть до 6.156.6 от 10 июля.
Что это значит на практике:
🔘 сборка из исходников теперь требует Rust toolchain — если ставить не из готового wheel, а компилировать, без Rust не соберётся;
🔘 чтобы это никого не сломало, проект выкатил широкий набор нативных wheels: Python с 3.10 по 3.14, free-threaded
🔘 добавили
🔘 отдельно собрали wheel под Pyodide (
За тем же путём Python в Rust уже ушли core-части uv, ruff и pydantic. Теперь очередь дошла и до зрелой тест-библиотеки — с явным приоритетом не сломать установку тем, кто просто делает
@zen_of_python
Библиотека property-based тестирования Hypothesis в релизе 6.156.0 от 1 июля объявила о начале миграции внутренних компонентов на Rust. Пока перенесён один простой вспомогательный хелпер, но направление задано, и за неделю вышла целая серия патчей вокруг сборки — вплоть до 6.156.6 от 10 июля.
Что это значит на практике:
3.14t и PyPy 3.11, под Linux x86_64/aarch64, macOS x86_64/arm64 и Windows x64;abi3-wheels на базе стабильного ABI 3.10 — один такой wheel работает на всех последующих версиях Python, включая 32-битные Linux и Windows;wasm32-unknown-emscripten) для запуска в браузере.За тем же путём Python в Rust уже ушли core-части uv, ruff и pydantic. Теперь очередь дошла и до зрелой тест-библиотеки — с явным приоритетом не сломать установку тем, кто просто делает
pip install.@zen_of_python
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Типичный программист
VPS в 2026: почему сервер тормозит, хотя метрики в норме
Вы смотрите на дашборд: CPU 40%, память не вся занята, а пользователи жалуются на лаги. Скорее всего, ваш VPS просто не получает тех ресурсов, за которые вы платите.
За несколько лет картина резко поменялась. Если раньше на одно физическое ядро приходилось 4–8 виртуальных CPU, то у бюджетных провайдеров сейчас норма — 10–16. Пока соседи по хосту спят, вы получаете мощность. Когда все просыпаются одновременно, гипервизор забирает CPU у вас. Это видно в метрике
К этому добавились тяжелее ОС и стек. Ubuntu 24.04 при минимальной конфигурации занимает 3–5 GB RAM ещё до вашего приложения, а современный бэкенд часто тянет брокер, кеш, мониторинг и контейнеры. Разобрались, когда дешёвый VPS перестаёт тянуть и что с этим делать.
Вы смотрите на дашборд: CPU 40%, память не вся занята, а пользователи жалуются на лаги. Скорее всего, ваш VPS просто не получает тех ресурсов, за которые вы платите.
За несколько лет картина резко поменялась. Если раньше на одно физическое ядро приходилось 4–8 виртуальных CPU, то у бюджетных провайдеров сейчас норма — 10–16. Пока соседи по хосту спят, вы получаете мощность. Когда все просыпаются одновременно, гипервизор забирает CPU у вас. Это видно в метрике
%st — steal time.К этому добавились тяжелее ОС и стек. Ubuntu 24.04 при минимальной конфигурации занимает 3–5 GB RAM ещё до вашего приложения, а современный бэкенд часто тянет брокер, кеш, мониторинг и контейнеры. Разобрались, когда дешёвый VPS перестаёт тянуть и что с этим делать.