api-design.pdf
210.9 KB
Шпаргалка для пишущих свой API
Некоторым из нас приходится писать собственные интерфейсы, и при развитии такого приложения стоит задумываться не только об очередном методе, но и про:
— авторизацию;
— разграничение доступа на основе ролей (RBAC);
— метрики производительности;
— тестирование и прочие аспекты
В приложенной шпаргалке как раз об этом.
#обучение
@zen_of_python
Некоторым из нас приходится писать собственные интерфейсы, и при развитии такого приложения стоит задумываться не только об очередном методе, но и про:
— авторизацию;
— разграничение доступа на основе ролей (RBAC);
— метрики производительности;
— тестирование и прочие аспекты
В приложенной шпаргалке как раз об этом.
#обучение
@zen_of_python
👎4🔥3🤔2✍1
detroit | Level Up для вашего dataviz'а
Если привычные столбчатые диаграммы и пай-чарты уже не забавляют, попробуйте питоническую реализацию d3js — небезызвестного тула для построения нетривиальных графиков. Как минимум познаете еще один вид графика, это обещаем.
#инструмент
@zen_of_python
Если привычные столбчатые диаграммы и пай-чарты уже не забавляют, попробуйте питоническую реализацию d3js — небезызвестного тула для построения нетривиальных графиков. Как минимум познаете еще один вид графика, это обещаем.
#инструмент
@zen_of_python
👍2❤1🔥1
vim-commands-cheat-sheet-by-pnap.pdf
80.9 KB
Шпаргалка vim
Симпатичная табличная подборка команд для тех, кто наконец выучил, как выйти из этого редактора.
Помимо CRUD-операций там полезное про изменение цветовой схемы, навигацию по файлу, работу с несколькими файлами в буфере.
#шпаргалка
@zen_of_python
Симпатичная табличная подборка команд для тех, кто наконец выучил, как выйти из этого редактора.
Помимо CRUD-операций там полезное про изменение цветовой схемы, навигацию по файлу, работу с несколькими файлами в буфере.
#шпаргалка
@zen_of_python
❤2👎2
Используете ли вы LLM IDE вроде Cursor для пет-проекта(-ов)?
Anonymous Poll
29%
Да
43%
Нет
27%
Что такое LLM IDE?
👌1
Вопросы подписчиков
Zen of Python поддерживает новоприбывших (и не только) в особой рубрике. Как это работает:
— Спрашивайте что угодно (в комментариях под этим постом), связанное с Python. Здесь нет плохих вопросов!
— Сообщество вас поддержит. Самые интересные вопросы мы разберём в отдельном посте.
#обсуждение
@zen_of_python
Zen of Python поддерживает новоприбывших (и не только) в особой рубрике. Как это работает:
— Спрашивайте что угодно (в комментариях под этим постом), связанное с Python. Здесь нет плохих вопросов!
— Сообщество вас поддержит. Самые интересные вопросы мы разберём в отдельном посте.
#обсуждение
@zen_of_python
Что такое замыкание и зачем оно нужно
Замыкания (Closures) — понятие, которое кажется сложным при первом знакомстве. Но на самом деле вы уже его скорее всего используете неосознанно, настолько это стало базой.
Представим программу, где пользователь вводит число, нажимает OK, и программа сохраняет это число в список, выводя все введённые значения:
Код работает, но есть проблема: переменная
🔘 функция зависит от переменной, объявленной в другом месте;
🔘 код становится менее гибким — нельзя просто перенести функцию в другой модуль, не взяв с собой
Замыкание помогает «связать» данные и логику в одном месте без использования классов:
Когда мы вызываем внешнюю функцию
Ключевая идея замыкания:
Даже когда
Используйте замыкания, если хотите:
🔘 инкапсулировать состояние в функции без создания класса;
🔘 нужно создать функцию-конфигуратор (например, с частично зафиксированными параметрами);
Замыкание — это функция, которая:
🔘 определена внутри другой функции;
🔘 использует переменные из внешней функции;
🔘 «запоминает» эти переменные даже после завершения внешней функции.
#основы
@zen_of_python
Замыкания (Closures) — понятие, которое кажется сложным при первом знакомстве. Но на самом деле вы уже его скорее всего используете неосознанно, настолько это стало базой.
Представим программу, где пользователь вводит число, нажимает OK, и программа сохраняет это число в список, выводя все введённые значения:
numbers = []
def enter_number(x):
numbers.append(x)
print(numbers)
enter_number(3) # [3]
enter_number(7) # [3, 7]
enter_number(4) # v
Код работает, но есть проблема: переменная
numbers
находится вне функции, то есть она глобальная. Это значит, что:numbers
.Замыкание помогает «связать» данные и логику в одном месте без использования классов:
def enter_number_outer():
numbers = [] # локальная переменная
def enter_number_inner(x):
numbers.append(x)
print(numbers)
return enter_number_inner
Когда мы вызываем внешнюю функцию
enter_number_outer()
, она создаёт свой контекст с переменной numbers
и возвращает внутреннюю функцию, которая имеет к ней доступ.
enter_num = enter_number_outer()
enter_num(3) # [3]
enter_num(7) # [3, 7]
enter_num(4) # [3, 7, 4]
Ключевая идея замыкания:
Внутренняя функция «замыкает» (сохраняет) значения переменных из области видимости внешней функции.
Даже когда
enter_number_outer()
завершает выполнение, её переменные не уничтожаются, потому что они нужны внутренней функции, которая всё ещё существует. Это и есть closure — функция, которая запоминает контекст, в котором была создана.Используйте замыкания, если хотите:
Замыкание — это функция, которая:
#основы
@zen_of_python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤2🤣1
RunSnakeRun | Профайлер с GUI
Симпатичный и наглядный инструмент для анализа производительности Python-программ. Он показывает результаты профилирования (
На диаграмме размер прямоугольника отражает долю времени, потраченную на выполнение функции. Позволяет интерактивно «проваливаться» в вызовы и изучать вложенные функции. Отличный способ искать узкие места в проекте.
#инструмент
@zen_of_python
Симпатичный и наглядный инструмент для анализа производительности Python-программ. Он показывает результаты профилирования (
cProfile
, hotshot
и других форматов) в виде наглядной treemap-диаграммы.На диаграмме размер прямоугольника отражает долю времени, потраченную на выполнение функции. Позволяет интерактивно «проваливаться» в вызовы и изучать вложенные функции. Отличный способ искать узкие места в проекте.
#инструмент
@zen_of_python
❤6
Почему Python так популярен в 2025-м году?
Python стал культурным и технологическим феноменом, устойчиво удерживая позиции одного из самых любимых и широко используемых языков программирования. В 2025 году он занимает первое место сразу в нескольких рейтингах популярности ЯП.
Что делает Python таким популярным?
🔘 Легкость старта и понятный синтаксис
Одним из главных преимуществ с момента создания остаётся его читаемость и простота — код Python часто выглядит ближе к псевдокоду, чем к «машинной» записи. Это позволяет разработчикам сосредоточиться на логике, а не на деталях синтаксиса. Для новичков это часто первый язык программирования, с которым они знакомятся, — из-за низкого порога входа. Этот «эффект знакомства» закрепляет Python как язык выбора, особенно в образовательной и научной среде.
🔘 Ключевая роль в AI, ML и науке о данных
Python давно прочно обосновался в экосистеме машинного обучения, искусственного интеллекта и обработки данных. В отчёте JetBrains «The State of Python 2025» указано, что примерно 41% разработчиков используют Python специально для задач машинного обучения. Широкий набор библиотек и фреймворков: PyTorch, TensorFlow, Keras, scikit-learn, Hugging Face Transformers — все они предоставляют зрелые, постоянно развивающиеся инструменты для исследователей и продакшн-инженеров.
🔘 Универсальность: от скриптов до крупных систем
Python используется в самых разнообразных задачах:
— Веб-разработка: популярные фреймворки (Django, Flask, FastAPI) позволяют строить как простые приложения, так и масштабные сервисы;
— Автоматизация и инфраструктурные скрипты: благодаря лёгкости запуска, большому выбору библиотек и встроенной поддержке многих протоколов и форматов;
— Инструменты разработки, прототипы, доказательство концепции (POC): Python часто выбирают тогда, когда нужно быстро создать рабочее решение и проверить идею;
— Научные вычисления и инженерные задачи: благодаря библиотекам как NumPy, SciPy, Sympy и др.
Такой спектр применения делает Python «языком на все случаи», что снижает риск переключения на другой язык при росте проекта.
🔘 Сообщество, документация и экосистемный эффект
Невозможно недооценивать роль сообщества в успехе Python:
— Огромное количество библиотек и фреймворков, созданных сообществом, часто с открытым исходным кодом;
— Качественная документация, туториалы, обсуждения: многие проблемы уже задокументированы, многие вопросы обсуждены на форумах, в блогах и на Stack Overflow.
Эффект «чем больше пользователей — тем больше инструментов — тем больше новых пользователей»: эта положительная обратная связь укрепляет позиции языка.
🔘 Совместимость, обратная совместимость и эволюция
Python исторически стремится к обратной совместимости: код, написанный на старых версиях, часто может работать на новых с минимальными правками. Это снижает «технический долг» и барьеры для обновлений. К тому же новые версии языка приносят прирост производительности и оптимизации без значительного изменения синтаксиса. В отчёте указано, что многие разработчики просто не меняют версии, потому что текущая версия «удовлетворяет все нужды» — 53%.
Тем не менее, повышение производительности и оптимизации — весомый аргумент в пользу перехода, особенно для критичных к скорости проектов.
#факт
@zen_of_python
Python стал культурным и технологическим феноменом, устойчиво удерживая позиции одного из самых любимых и широко используемых языков программирования. В 2025 году он занимает первое место сразу в нескольких рейтингах популярности ЯП.
Что делает Python таким популярным?
Одним из главных преимуществ с момента создания остаётся его читаемость и простота — код Python часто выглядит ближе к псевдокоду, чем к «машинной» записи. Это позволяет разработчикам сосредоточиться на логике, а не на деталях синтаксиса. Для новичков это часто первый язык программирования, с которым они знакомятся, — из-за низкого порога входа. Этот «эффект знакомства» закрепляет Python как язык выбора, особенно в образовательной и научной среде.
Python давно прочно обосновался в экосистеме машинного обучения, искусственного интеллекта и обработки данных. В отчёте JetBrains «The State of Python 2025» указано, что примерно 41% разработчиков используют Python специально для задач машинного обучения. Широкий набор библиотек и фреймворков: PyTorch, TensorFlow, Keras, scikit-learn, Hugging Face Transformers — все они предоставляют зрелые, постоянно развивающиеся инструменты для исследователей и продакшн-инженеров.
Python используется в самых разнообразных задачах:
— Веб-разработка: популярные фреймворки (Django, Flask, FastAPI) позволяют строить как простые приложения, так и масштабные сервисы;
— Автоматизация и инфраструктурные скрипты: благодаря лёгкости запуска, большому выбору библиотек и встроенной поддержке многих протоколов и форматов;
— Инструменты разработки, прототипы, доказательство концепции (POC): Python часто выбирают тогда, когда нужно быстро создать рабочее решение и проверить идею;
— Научные вычисления и инженерные задачи: благодаря библиотекам как NumPy, SciPy, Sympy и др.
Такой спектр применения делает Python «языком на все случаи», что снижает риск переключения на другой язык при росте проекта.
Невозможно недооценивать роль сообщества в успехе Python:
— Огромное количество библиотек и фреймворков, созданных сообществом, часто с открытым исходным кодом;
— Качественная документация, туториалы, обсуждения: многие проблемы уже задокументированы, многие вопросы обсуждены на форумах, в блогах и на Stack Overflow.
Эффект «чем больше пользователей — тем больше инструментов — тем больше новых пользователей»: эта положительная обратная связь укрепляет позиции языка.
Python исторически стремится к обратной совместимости: код, написанный на старых версиях, часто может работать на новых с минимальными правками. Это снижает «технический долг» и барьеры для обновлений. К тому же новые версии языка приносят прирост производительности и оптимизации без значительного изменения синтаксиса. В отчёте указано, что многие разработчики просто не меняют версии, потому что текущая версия «удовлетворяет все нужды» — 53%.
Тем не менее, повышение производительности и оптимизации — весомый аргумент в пользу перехода, особенно для критичных к скорости проектов.
#факт
@zen_of_python
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Logly | loguru на Rust
Python-библиотека для логирования всего и вся. Те же уровни логирования (TRACE, DEBUG, INFO, SUCCESS и проч.), тот же отлов исключений. Создатели обещают повышенную безопасность памяти, неблокирующие конкуррентные операции и все тонкие настройки, как у loguru.
Доступен в РФ: да
Цена: бесплатно
@prog_tools
Python-библиотека для логирования всего и вся. Те же уровни логирования (TRACE, DEBUG, INFO, SUCCESS и проч.), тот же отлов исключений. Создатели обещают повышенную безопасность памяти, неблокирующие конкуррентные операции и все тонкие настройки, как у loguru.
Доступен в РФ: да
Цена: бесплатно
@prog_tools