Backend & Python
69 subscribers
61 photos
3 videos
7 links
Ваш IT-помощник и репетитор по Python
Download Telegram
Что такое процесс и поток?
📌 Процесс — это как отдельная программа со своей памятью и ресурсами. У каждого процесса — собственная "песочница", где он работает независимо от других.

📌 Поток (thread) — это "мини-задача" внутри процесса. Потоки делят общую память и ресурсы, поэтому между ними проще обмениваться данными, но при этом один сбойный поток может уронить весь процесс.


⚡️ В Python есть одна особенность — GIL (Global Interpreter Lock). Он не даёт исполнять байткод сразу нескольким потокам одновременно.

❕Поэтому:
Для вычислений (например, математика, ML) используют multiprocessing — он запускает отдельные процессы, минуя GIL.

Для I/O-задач (сетевые запросы, чтение файлов) отлично подходит threading, так как потоки всё равно часто "ждут" ответа.


Что будет на выходе:
1. Потоки (threading) будут работать почти так же, как один поток — из-за GIL.
2. Процессы (multiprocessing) реально выполнятся параллельно и будут быстрее на вычислительных задачах.

#вопросы_на_собесах
🔥2👨‍💻2
Декоратор (Decorator)
📌 Функция, которая принимает другую функцию и расширяет её функциональность без изменения кода самой функции.

⚡️ Для применения декоратора в Python используется запись @имя_декоратора над функцией. Активно используется в веб-фреймворках (например, проверка прав доступа, логирование, кеширование).

Несколько фактов о декораторах: 💬
1. Декораторы в Python — это частный случай паттерна проектирования «Декоратор» из GoF.

2. Они поддерживают цепочку декораторов: можно навесить несколько обёрток друг на друга (@ cache, @ auth, @ log).

3. В Django и Flask многие механизмы реализованы через декораторы (например, @ login_required, @ app.route).

4. С помощью functools.wraps можно сохранять имя и docstring оригинальной функции, чтобы обёртка не «ломала» метаданные.


Что будет на выходе:
🔹 @ timing_decorator оборачивает функцию calculate и выводит время её выполнения.
🔹 Такой же приём используют для логирования, авторизации, кэширования и других «обвязок».

#словарь_программиста
🔥2👨‍💻2🤝1
Маленькое обновление на канал:
Я немного расширю область канала и знаний, которые я с радостью вам передаю
Python это хорошо, но с данного момента я буду также информировать вас и знакомить с различными актуальными новостями из мира IT, технологиями и много чем еще


❕Прямое добавление к нашим хэштегам, по которым вы можете найти информацию:
- Вопросы с собеседований и ответы на них на позиции Python developer, Backend developer и др.
#вопросы_на_собесах

- Терминология, которой пользуются программисты
#словарь_программиста

- База Python, его детали и различные структуры
#полезные_ресуры

- Мои петпроекты и рабочие моменты
#рабочие_моменты

- Новости из нашей сферы о ЯП, базах данных, инструментах и др.
#IT_новости

- Советы по работе с Visual Studio code и различными технологиям
#рекомендации_tech
⚡2❤2
📢 Недавно вышел Python 3.14.0 rc3 — последняя ступень перед финальным релизом. Это значит, скоро появится стабильная версия с новыми фичами и улучшениями

❕Что интересного: по опросам, 83 % разработчиков всё ещё работают на устаревших версиях Python(наиболее популярная версия 3.11.9)

🔍 Обновление версии — это не просто «мода», это возможность:
1. Ускорить код без внесения изменений,

2. Пользоваться новыми синтаксическими фишками,

3. Повысить совместимость с современными библиотеками


⚡️Ключевые новшества версии Python 3.14
1. Free-threaded Python — официальная поддержка (PEP 779 / PEP 703)

2. Отложенная оценка аннотаций (Deferred evaluation of annotations, PEP 649 / PEP 749)

3. Template string literals (t-strings, PEP 750)

4. Множественные интерпретаторы в стандартной библиотеке (PEP 734)

5. Улучшенные сообщения об ошибках и подсказки

6. Подсветка синтаксиса и автодополнение в REPL

7. Новый модуль с поддержкой Zstandard (compression.zstd, PEP 784)

8. Новый тип интерпретатора и оптимизация “tail-call” внутри интерпретатора

9. Экспериментальный JIT (Just-In-Time компилятор) и улучшения производительности

10. Более строгие правила finally / ограничение return/break/continue внутри finally

11. Отказ от PGP-подписей (PEP 761) и переход к Sigstore

#IT_новости
❤2🔥2
Visual Studio Code (VS Code)

Если вы только начинаете работать с кодом или уже в профессии, первым инструментом, который стоит освоить, будет Visual Studio Code. Это кроссплатформенный редактор от Microsoft, который сегодня считается одним из самых популярных рабочих пространств для разработчиков

⚡️ Чем VS Code выделяется среди других IDE (PyCharm, Xcode, Atom и др.):
Лёгкость и скорость — запускается быстрее, чем тяжёлые IDE (например, PyCharm).

Гибкость — можно превратить редактор в полноценную среду разработки под любую задачу.

Расширения (Extensions) — здесь кроется настоящая сила VS Code: тысячи бесплатных модулей для Python, Docker, Git, SQL, фронтенда и других технологий.

Кроссплатформенность — одинаково работает на Windows, macOS и Linux.

Поддержка разных языков и фреймворков из коробки: Python, JavaScript, TypeScript, Go, Rust и др.

Интеграция с системами контроля версий (Git, GitHub, GitLab) и CI/CD инструментами.


📌 На практике это значит, что с помощью пары кликов и пары расширений можно настроить рабочее место именно под себя — будь то Python-бэкенд, фронтенд, DevOps или анализ данных

✍️ В будущих постах я поделюсь с вами различными расширениями, модулями и настройками для VS Code, которые значительно облегчают жизнь программисту и ускоряют работу
#рекомендации_tech
🔥3⚡2
Хэширование (Hashing)
📌 Метод преобразования данных (строки, файла, пароля) в уникальную строку фиксированной длины.

⚡️Хэш-функции незаменимы в:
Хранении и проверке паролей (сравнивается только хэш, а не сам пароль);

Кешировании (хэш быстро проверяет, изменился ли объект);

Индексах баз данных (ускоряют поиск).


❕Важно: хэширование — это однонаправленный процесс. По хэшу невозможно восстановить исходные данные (в отличие от шифрования).

На практике пароли никогда не хранятся «как есть», а только в виде хэшей (часто с солью — случайной добавкой к строке для защиты от перебора).
#словарь_программиста
👨‍💻3
Теория мёртвого интернета

Недавно в LinkedIn произошёл кейс. Один парень вставил в своё описание на профиле необычную просьбу — он попросил, чтобы любой ИИ-рекрутер, который читает его биографию, обязательно отправил ему рецепт пирога вместе с оффером.

❕В итоге практически все сообщения, которые он получил от «рекрутеров», действительно содержали рецепт пирога

Сама система отбора кандидатов уже настолько автоматизирована, что ии-агент читает профиль, видит инструкцию и делает именно то, что в ней прописано

⚡️С учетом того, что в последнее время все начинают создавать собственные резюме также с помощью искусственного интеллекта, это наглядный пример того, как один ИИ взаимодействует с другим ИИ, при этом люди оказываются «последней станцией» в процессе отбора.

🔍Из ключевых моментов:
Полностью доверять ИИ в рекрутинге — опасно; он может “схватить” любой ключевой флаг в тексте и действовать буквально(как мы и видим из ситуации)

Сам факт, что такие эксперименты проходят, говорит о том, что контент в интернете становится всё чаще продуктом взаимодействий ИИ, а не исключительно людей — близкая отсылка к «Теории мёртвого интернета».


P.s. LinkedIn - крупнейшая в мире социальная сеть для проф. общения, деловых контактов и поиска работы. В ней пользователи создают свои цифровые резюме, находят вакансии, строят профессиональные связи и продвигают личный бренд или бизнес
#IT_новости
⚡3🔥3
👨‍💻3❤1🥰1
Форматирование в f-строках Python

📌 f-строки (f-strings) появились в Python 3.6 и считаются наиболее удобным и читаемым способом форматирования

Преимущества над другими методами:
Лаконичность и наглядность:
(f"Hello {name}") против( "%s" % name) или ("{}".format(name));

Поддержка выражений внутри фигурных скобок (можно вызывать функции, методы, выполнять арифметику прямо в строке);

Универсальность: поддержка всех форматтеров, которые раньше работали через format.


⚡️ f-строки — это гибко, читаемо и современно. Если вы до сих пор используете % или .format(), попробуйте перейти на f-строки: код станет короче и понятнее
#полезные_ресуры
❤2⚡2
Кэширование (Caching)
📌 Кэширование — это механизм временного хранения часто используемых данных, чтобы ускорить доступ к ним

⚡️Вместо того чтобы каждый раз обращаться к базе данных или выполнять тяжёлый расчёт, программа берёт уже сохранённый результат из памяти (RAM, диск, Redis и др.).

❕Зачем это нужно:
Уменьшает время отклика системы

Снижает нагрузку на сервер и базу данных

Экономит вычислительные ресурсы


📦 Где используется:
Веб-приложения (Django, FastAPI) — кэш страниц или запросов

API — повторное использование ответов

Машинное обучение — хранение подготовленных датасетов

СУБД — кэширование запросов


📊 Популярные инструменты:
Redis, Memcached, functools.lru_cache в Python
#словарь_программиста
👨‍💻3
Как и говорил, расширяем область канала и познаем не только Python
Также недалеко уходим и от темы кэширования

❓ Как управлять кешированием в HTTP?
Кеширование в HTTP контролируется с помощью заголовков, которые определяют, как долго и при каких условиях браузер или прокси может повторно использовать данные

🔹 Основные заголовки:
Cache-Control — задаёт правила кеширования:
max-age, public, private, no-store, no-cache.

Last-Modified + If-Modified-Since — позволяют клиенту узнавать, когда ресурс обновлялся, и запрашивать его только при изменении.

ETag + If-None-Match — сервер генерирует уникальный хеш версии ресурса. Если он не изменился, сервер возвращает код 304 Not Modified.


💡 Пример в жизни:
Когда вы заходите на сайт, браузер не загружает заново весь контент — картинки, стили, JS. Он проверяет, изменился ли файл. Если нет, берёт из локального кэша

📎 Факт:
Фреймворки (FastAPI, Django, Flask) могут автоматически выставлять HTTP-заголовки для кэширования ответов API
#вопросы_на_собесах
⚡3
⚡️Форматирование кода — Black
Black — это один из самых популярных и строгих форматтеров Python-кода. Его принцип прост: «Код должен выглядеть одинаково, независимо от автора»

🔹 Что делает форматер:
Форматтер автоматически приводит код к единому стилю — добавляет/убирает пробелы, выравнивает отступы, расставляет кавычки и переносы строк.
Это помогает, когда проект ведёт несколько человек, и все пишут по одному стандарту (PEP8)

🧩 Black и его конкуренты:
autopep8 — базовый форматтер, который просто приводит код к PEP8, но не всегда последовательно

YAPF (Yet Another Python Formatter) — даёт больше гибкости и стилей, но именно из-за этого код может выглядеть по-разному в разных проектах

Ruff — также умеет форматировать, но его сила всё же в линтинге


🧠 Почему Black лучше:
Жёстко стандартизирован — никаких споров в команде

Минимум настроек — разработчики просто доверяют ему

Оптимизирован под большие кодовые базы

Идеально работает в связке с Ruff и Pylance, создавая целостную экосистему для чистого и безопасного кода

Также - легко интегрируется с VS Code и имеет большую скорость работы


⚙️ Подключить можно двумя способами:
1. Установить пакет: pip install black
2. Установить в Visual Studio code расширение Black

Затем добавить в settings.json:
{
"python.formatting.provider": "black",
"editor.formatOnSave": true
}

#рекомендации_tech
❤2🔥2
📢 FastAPI + asyncio в 2025
Свежие данные показывают: FastAPI + asyncio - лидеры 2025 года в мире backend-разработки на Python

❕Вот цифры, которые говорят всё сами за себя:
TechGig сообщает: FastAPI используется 38 % разработчиков Python в 2024 году и прибавил +9 % по сравнению с предыдущим годом

Опрос PyCharm: «Каждый третий разработчик Django также использует Flask или FastAPI, а около 25 % используют FastAPI»

CraftYourStartup приводит числа: FastAPI обрабатывает до 15 000–20 000 RPS в тестах, значительно обгоняя Flask и Django


🔍 Почему именно FastAPI + asyncio растут так быстро:

Асинхронность из коробки. Поддержка async/await позволяет обрабатывать тысячи запросов одновременно, не блокируя поток исполнения

Современный стек. Используется Pydantic для валидации данных и Starlette как асинхронное ядро — это делает API-разработку лаконичной и безопасной

Высокая производительность. FastAPI входит в топ самых быстрых Python-фреймворков, уступая лишь решениям на Rust и Go

Отличная документация и автогенерация Swagger UI. FastAPI сам создаёт интерактивную документацию для вашего API без дополнительного кода


⚡️ Вывод
Если вы выбираете между Flask, Django и FastAPI — эти данные ясно говорят: FastAPI в связке с asyncio сейчас наиболее перспективны в backend-разработке
#IT_новости
❤3
Git
📌 Git — распределённая система контроля версий
Она позволяет отслеживать изменения в коде, работать в команде и возвращаться к любой версии проекта.

🔹Что делает Git:
Сохраняет историю изменений

Позволяет работать над проектом нескольким разработчикам одновременно

Даёт возможность откатить проект к предыдущему состоянию


📘 Пример в жизни:
Представьте, что вы пишете диплом или крупный проект. Git — это ваш «контроль времени»: можно увидеть, кто что изменил, когда и почему

⚙️ Почему Git — стандарт в разработке:
Используется во всех компаниях

Интегрируется с CI/CD (GitHub Actions, GitLab CI)

Без Git ни один современный workflow не обходится


💡 Интересный факт:
Создатель Git — Линус Торвальдс, автор Linux. Он написал Git за 10 дней, чтобы решить проблемы с управлением исходным кодом ядра Linux
#словарь_программиста
👨‍💻3
❓ Что такое отображение (mapping) в Python?
Отображение (mapping) — это структура данных, которая хранит пары ключ–значение. Благодаря этому можно быстро находить значение по ключу, без необходимости перебирать весь список

⚡️В Python основным типом отображения является dict, а также — объекты, работающие по тому же принципу (например, collections.ChainMap, types.MappingProxyType)

💡 Особенности:
Ключи в отображениях уникальны и должны быть хешируемыми (например, строки, числа, кортежи)

Python поддерживает словари словарей, что делает их мощным инструментом для хранения сложных структур данных

#вопросы_на_собесах
❤2⚡1