🖥 Как организовать архитектуру большого Python-проекта?
Разработка крупного Python-проекта требует продуманной архитектуры. Правильная структура кода упрощает развитие, тестирование и поддержку приложения.
В этой статье мы рассмотрим ключевые принципы архитектурной организации для разных типов проектов - веб-приложений, библиотек, микросервисов и систем обработки данных.
Обсудим разделение системы на слои (domain, service, infrastructure), использование популярных шаблонов проектирования (Dependency Injection, Repository, Facade), организацию кода по модулям и пакетам, примеры структуры каталогов, работу с зависимостями и конфигурацией (Pydantic, dotenv), логгирование и мониторинг, обеспечение тестируемости, поддержку расширяемости и модульности.
Также приведем примеры кода и структуры каталогов, а в конце – общие советы и распространенные ошибки, которых следует избегать.
https://uproger.com/kak-organizovat-arhitekturu-bolshogo-python-proekta/
@python_be1
Разработка крупного Python-проекта требует продуманной архитектуры. Правильная структура кода упрощает развитие, тестирование и поддержку приложения.
В этой статье мы рассмотрим ключевые принципы архитектурной организации для разных типов проектов - веб-приложений, библиотек, микросервисов и систем обработки данных.
Обсудим разделение системы на слои (domain, service, infrastructure), использование популярных шаблонов проектирования (Dependency Injection, Repository, Facade), организацию кода по модулям и пакетам, примеры структуры каталогов, работу с зависимостями и конфигурацией (Pydantic, dotenv), логгирование и мониторинг, обеспечение тестируемости, поддержку расширяемости и модульности.
Также приведем примеры кода и структуры каталогов, а в конце – общие советы и распространенные ошибки, которых следует избегать.
https://uproger.com/kak-organizovat-arhitekturu-bolshogo-python-proekta/
@python_be1
🐍⚙️ Продвинутый Python + Docker совет для production:
Используй multi-stage builds + wheels cache - это радикально уменьшает размер образа и ускоряет сборки.
В первом этапе собираешь wheels (компилируемые пакеты), а во втором — устанавливаешь их уже в чистый runtime-слой:
```
FROM python:3.12 AS builder
RUN pip install —upgrade pip
COPY requirements.txt .
RUN pip wheel —wheel-dir /wheels -r requirements.txt
FROM python:3.12-slim
COPY —from=builder /wheels /wheels
RUN pip install —no-index —find-links=/wheels -r /wheels/requirements.txt
COPY app/ /app
```
🔥 Плюс:
— быстрый rebuild
— детерминированные зависимости
— значительно меньше образ
Этот трюк мало кто использует, но он делает Docker-окружение Python уровня enterprise.
@python_be1
Используй multi-stage builds + wheels cache - это радикально уменьшает размер образа и ускоряет сборки.
В первом этапе собираешь wheels (компилируемые пакеты), а во втором — устанавливаешь их уже в чистый runtime-слой:
```
FROM python:3.12 AS builder
RUN pip install —upgrade pip
COPY requirements.txt .
RUN pip wheel —wheel-dir /wheels -r requirements.txt
FROM python:3.12-slim
COPY —from=builder /wheels /wheels
RUN pip install —no-index —find-links=/wheels -r /wheels/requirements.txt
COPY app/ /app
```
🔥 Плюс:
— быстрый rebuild
— детерминированные зависимости
— значительно меньше образ
Этот трюк мало кто использует, но он делает Docker-окружение Python уровня enterprise.
@python_be1
🚀 Большое обновление Qwen Code v0.2.2–v0.3.0
✨ Два ключевых обновления:
🎯 Stream JSON
• `--output-format stream-json` — потоковый вывод
• `--input-format stream-json` — структурированный ввод
• 3-уровневая архитектура адаптеров + управление сессиями
• Идеально для SDK, автоматизации и CI/CD
🌍 Полная интернационализация
• Встроенные интерфейсы EN/CN + расширяемые языковые пакеты
• `/language ui zh-EN` - мгновенная смена языка
• `/language output English` - задаём язык ответов модели
• Сообщество может добавлять свои локализации 🌏
🛡️ Безопасность и стабильность выросли
• Защита от переполнения памяти
• Починили кодировки Windows
• Улучшена кроссплатформенность и определение ripgrep
• Переработана авторизация и управление authType
• Стабильный CI/CD и исправленные интеграционные тесты
• Поддержка провайдера ModelScope и stream_options
• Улучшены подсказки, уведомления в терминале и логика завершения промптов
• Множество внутренних фиксов - заметно более стабильная работа 💪
https://github.com/QwenLM/qwen-code
@python_be1
✨ Два ключевых обновления:
🎯 Stream JSON
• `--output-format stream-json` — потоковый вывод
• `--input-format stream-json` — структурированный ввод
• 3-уровневая архитектура адаптеров + управление сессиями
• Идеально для SDK, автоматизации и CI/CD
🌍 Полная интернационализация
• Встроенные интерфейсы EN/CN + расширяемые языковые пакеты
• `/language ui zh-EN` - мгновенная смена языка
• `/language output English` - задаём язык ответов модели
• Сообщество может добавлять свои локализации 🌏
🛡️ Безопасность и стабильность выросли
• Защита от переполнения памяти
• Починили кодировки Windows
• Улучшена кроссплатформенность и определение ripgrep
• Переработана авторизация и управление authType
• Стабильный CI/CD и исправленные интеграционные тесты
• Поддержка провайдера ModelScope и stream_options
• Улучшены подсказки, уведомления в терминале и логика завершения промптов
• Множество внутренних фиксов - заметно более стабильная работа 💪
https://github.com/QwenLM/qwen-code
@python_be1
🧰 Подборка полезных скриптов для опытных Linux-админов
1) 🔍 Быстрый поиск крупных файлов (удобно перед очисткой диска)
du -ah / | sort -rh | head -n 30
2) 🛑 Массовое убийство зависших процессов по шаблону
pkill -f "pattern"
3) 🧼 Очистка старых логов/кэша старше X дней
find /var/log -type f -mtime +7 -delete
4) 🧬 Проверка файловой системы без остановки
fsck -n /dev/sdX
5) 📦 Список пакетов, обновлённых за последние 5 дней
grep "upgrade" /var/log/dpkg.log | tail
6) 🕵 Слежение за открытыми портами в реальном времени
watch -n1 "ss -tulpn"
7) 📊 Сбор top-нагружающих процессов по CPU за минуту
ps -eo pid,ppid,cmd,%mem,%cpu —sort=-%cpu | head
8) 🔁 Авто-рестарт службы при падении
while true; do systemctl restart myservice; sleep 5; done
9) 🔗 Быстрый тест сетевой задержки и MTU
tracepath google.com
10) 🔐 Сканирование слабых SSH-ключей
ssh-audit -p 22 localhost
Такие короткие утилитарные команды экономят кучу времени в рутине админа.
@python_be1
1) 🔍 Быстрый поиск крупных файлов (удобно перед очисткой диска)
du -ah / | sort -rh | head -n 30
2) 🛑 Массовое убийство зависших процессов по шаблону
pkill -f "pattern"
3) 🧼 Очистка старых логов/кэша старше X дней
find /var/log -type f -mtime +7 -delete
4) 🧬 Проверка файловой системы без остановки
fsck -n /dev/sdX
5) 📦 Список пакетов, обновлённых за последние 5 дней
grep "upgrade" /var/log/dpkg.log | tail
6) 🕵 Слежение за открытыми портами в реальном времени
watch -n1 "ss -tulpn"
7) 📊 Сбор top-нагружающих процессов по CPU за минуту
ps -eo pid,ppid,cmd,%mem,%cpu —sort=-%cpu | head
8) 🔁 Авто-рестарт службы при падении
while true; do systemctl restart myservice; sleep 5; done
9) 🔗 Быстрый тест сетевой задержки и MTU
tracepath google.com
10) 🔐 Сканирование слабых SSH-ключей
ssh-audit -p 22 localhost
Такие короткие утилитарные команды экономят кучу времени в рутине админа.
@python_be1
🖊️ Google Research представила InkSight — систему, которая превращает сфотографанный рукописный текст в настоящие *цифровые рукописные данные*.
Что делает InkSight?
✨ Берёт фото тетрадей, заметок или документов и переводит их в «цифровое перо» - данные, которыми можно редактировать, искать, хранить.
🧠 Под капотом:
• Vision Transformer (ViT) + mT5
• Обучение на чтение и письмо одновременно
• Без специальных планшетов - работает с обычными фото
💡 Возможности:
✔ Обработка слов и целых страниц
✔ Работает с разными языками и стилями письма
✔ Корректно извлекает текст даже на шумном фоне
✔ Результат - редактируемый векторный «ink», а не просто картинка
То есть InkSight — мост между бумажной реальностью и цифровым миром: сделал фото заметок → получил полный цифровой текст, пригодный для поиска и редактирования.
🔗 В репозитории доступны веса модели, датасет и пример кода:
github.com/google-research/inksight
@python_be1
Что делает InkSight?
✨ Берёт фото тетрадей, заметок или документов и переводит их в «цифровое перо» - данные, которыми можно редактировать, искать, хранить.
🧠 Под капотом:
• Vision Transformer (ViT) + mT5
• Обучение на чтение и письмо одновременно
• Без специальных планшетов - работает с обычными фото
💡 Возможности:
✔ Обработка слов и целых страниц
✔ Работает с разными языками и стилями письма
✔ Корректно извлекает текст даже на шумном фоне
✔ Результат - редактируемый векторный «ink», а не просто картинка
То есть InkSight — мост между бумажной реальностью и цифровым миром: сделал фото заметок → получил полный цифровой текст, пригодный для поиска и редактирования.
🔗 В репозитории доступны веса модели, датасет и пример кода:
github.com/google-research/inksight
@python_be1
Буст для Perplexity
Бесплатное расширение добавляет в ИИ-поисковик 25+ фич, которые раньше были только у конкурентов
— Быстрое переключение моделей
— Тестирование кода прямо в браузере
— Экспорт всех чатов с Perplexity
— Кастомизация чата под свой стиль и удобство
Забираем — тут (https://github.com/pnd280/complexity)
@python_be1
Бесплатное расширение добавляет в ИИ-поисковик 25+ фич, которые раньше были только у конкурентов
— Быстрое переключение моделей
— Тестирование кода прямо в браузере
— Экспорт всех чатов с Perplexity
— Кастомизация чата под свой стиль и удобство
Забираем — тут (https://github.com/pnd280/complexity)
@python_be1
This media is not supported in your browser
VIEW IN TELEGRAM
📝 Как быстро объяснить проект коллеге, если не знаешь, с чего начать
Иногда проще ответить на вопросы новичка, чем структурировать рассказ самому. Но когда сервис большой, а процессов много, легко запутаться: что упомянуть первым, какие детали важны, а что можно оставить на потом.
Голосовой ИИ-помощник ГигаЧат подсказывает, как выстроить объяснение так, чтобы оно было понятным с первого раза.
📌 В итоге один короткий диалог превращается в ясное объяснение, которое не требует пересказывать всё снова. Слушаем!
@python_be1
Иногда проще ответить на вопросы новичка, чем структурировать рассказ самому. Но когда сервис большой, а процессов много, легко запутаться: что упомянуть первым, какие детали важны, а что можно оставить на потом.
Голосовой ИИ-помощник ГигаЧат подсказывает, как выстроить объяснение так, чтобы оно было понятным с первого раза.
📌 В итоге один короткий диалог превращается в ясное объяснение, которое не требует пересказывать всё снова. Слушаем!
@python_be1
⚡ Git Cheatsheet - коротко и по делу
Настройка
`git config —global user.name "Name"` — задать имя
`git config —global user.email "email"` — задать почту
`git config —list` — показать настройки
Старт
`git init` — создать репозиторий
`git clone url` — клонировать репо
Стейджинг и коммиты
`git status` — статус
`git add .` — добавить все изменения
`git reset file` — убрать из стейджа
`git commit -m "msg"` — коммит
`git commit —amend` — исправить последний коммит
Ветки
`git branch` — список
`git branch name` — создать
`git checkout -b name` — создать и перейти
`git branch -d name` — удалить
Merge и Rebase
`git merge branch` — слить ветку
`git merge —abort` — отменить
`git rebase branch` — перебазирование
История
`git log —oneline` — компактная история
`git log —graph —all` — граф
`git diff` — показать изменения
Откат
`git restore file` — вернуть файл
`git reset —soft HEAD~1` — откатить коммит, сохранить изменения
`git reset —hard HEAD~1` — откатить и удалить изменения
`git clean -f` — удалить лишние файлы
Удалённые репозитории
`git remote -v` — список
`git push origin branch` — запушить
`git pull` — получить изменения
`git fetch` — только забрать
Теги
`git tag` — список
`git tag name` — создать
`git push origin —tags` — отправить теги
Stash
`git stash` — сохранить изменения
`git stash list` — список
`git stash apply` — применить
Поиск и анализ
`git blame file` — кто менял строки
`git grep "text"` — поиск
`git bisect` — бинарный поиск бага
Продвинутое
`git cherry-pick commit` — взять коммит
`git revert commit` — отменить коммит через новый
`git submodule add url` — добавить сабмодуль
Полезно сохранить под рукой.
@python_be1
Настройка
`git config —global user.name "Name"` — задать имя
`git config —global user.email "email"` — задать почту
`git config —list` — показать настройки
Старт
`git init` — создать репозиторий
`git clone url` — клонировать репо
Стейджинг и коммиты
`git status` — статус
`git add .` — добавить все изменения
`git reset file` — убрать из стейджа
`git commit -m "msg"` — коммит
`git commit —amend` — исправить последний коммит
Ветки
`git branch` — список
`git branch name` — создать
`git checkout -b name` — создать и перейти
`git branch -d name` — удалить
Merge и Rebase
`git merge branch` — слить ветку
`git merge —abort` — отменить
`git rebase branch` — перебазирование
История
`git log —oneline` — компактная история
`git log —graph —all` — граф
`git diff` — показать изменения
Откат
`git restore file` — вернуть файл
`git reset —soft HEAD~1` — откатить коммит, сохранить изменения
`git reset —hard HEAD~1` — откатить и удалить изменения
`git clean -f` — удалить лишние файлы
Удалённые репозитории
`git remote -v` — список
`git push origin branch` — запушить
`git pull` — получить изменения
`git fetch` — только забрать
Теги
`git tag` — список
`git tag name` — создать
`git push origin —tags` — отправить теги
Stash
`git stash` — сохранить изменения
`git stash list` — список
`git stash apply` — применить
Поиск и анализ
`git blame file` — кто менял строки
`git grep "text"` — поиск
`git bisect` — бинарный поиск бага
Продвинутое
`git cherry-pick commit` — взять коммит
`git revert commit` — отменить коммит через новый
`git submodule add url` — добавить сабмодуль
Полезно сохранить под рукой.
@python_be1
Rust для микроконтроллерных систем #rustlung #rust #раст⚡https://t.me/rust_code - наш канал, для всех, кто любит и изучает Rust
⚡ https://t.me/addlist/2Ls-snqEeytkMDgy а здесь целая папка крутых
🔥 Наш Telegram канал о машинном обучении: https://t.me/
ресурсов для программистов, наслаждайтесь.
Подробное видел для начинающих, желающих изучить встроенный Rust, предлагая различные пути обучения в зависимости от их предварительного опыта. В видео изложены необходимые предварительные условия, такие как знание основ Rust и электроники, прежде чем перейти к встроенной разработке. Особое внимание уделяется рекомендациям по выбору оборудования, в частности, платам разработки ESP32 DevKit V1, из-за их доступности и простоты использования. Кроме того, текст предоставляет структурированные учебные планы и бесплатные ресурсы (книги, каналы YouTube) для тех, кто использует платы ESP32, Raspberry Pi Pico 2 или micro:bit v2. Руководство также упоминает важные дополнительные книги и ресурсы, такие как "The Embedded Rust Book" и Awesome Embedded Rust, для дальнейшего обучения.
Полное Rust собеседование! Обязательно посмотри перед интервью
- https://www.youtube.com/watch?v=K34fWMUInTo&t=10s
rust, embedded rust, systems programming, low level, microcontrollers, iot, firmware, bare metal, no_std, hardware, electronics, robotics, embedded systems, memory safety, performance, concurrency, real time, hal, drivers, stm32, esp32, rp2040, arm, risc v, open source, programming language
@python_be1
⚡ https://t.me/addlist/2Ls-snqEeytkMDgy а здесь целая папка крутых
🔥 Наш Telegram канал о машинном обучении: https://t.me/
ресурсов для программистов, наслаждайтесь.
Подробное видел для начинающих, желающих изучить встроенный Rust, предлагая различные пути обучения в зависимости от их предварительного опыта. В видео изложены необходимые предварительные условия, такие как знание основ Rust и электроники, прежде чем перейти к встроенной разработке. Особое внимание уделяется рекомендациям по выбору оборудования, в частности, платам разработки ESP32 DevKit V1, из-за их доступности и простоты использования. Кроме того, текст предоставляет структурированные учебные планы и бесплатные ресурсы (книги, каналы YouTube) для тех, кто использует платы ESP32, Raspberry Pi Pico 2 или micro:bit v2. Руководство также упоминает важные дополнительные книги и ресурсы, такие как "The Embedded Rust Book" и Awesome Embedded Rust, для дальнейшего обучения.
Полное Rust собеседование! Обязательно посмотри перед интервью
- https://www.youtube.com/watch?v=K34fWMUInTo&t=10s
rust, embedded rust, systems programming, low level, microcontrollers, iot, firmware, bare metal, no_std, hardware, electronics, robotics, embedded systems, memory safety, performance, concurrency, real time, hal, drivers, stm32, esp32, rp2040, arm, risc v, open source, programming language
@python_be1
Telegram
Rust
Rust programming language
По всем вопросам- @haarrp
@ai_machinelearning_big_data - машинное обучение
@programming_books_it - бесплатные it книги
@pythonl - 🐍
@ArtificialIntelligencedl - AI
@datascienceiot - ml 📚
По всем вопросам- @haarrp
@ai_machinelearning_big_data - машинное обучение
@programming_books_it - бесплатные it книги
@pythonl - 🐍
@ArtificialIntelligencedl - AI
@datascienceiot - ml 📚
🖥 Гайд по продвинутому профессиональному использованию SQL
В этом руководстве мы рассмотрим ключевые аспекты работы с SQL на практике. Начнём с сравнения популярных СУБД, затем перейдём к продвинутым приёмам аналитического SQL, оптимизации запросов, администрированию баз данных, и закончится всё интеграцией SQL с Python (SQLAlchemy, pandas и т.д.).
Для каждого раздела приведены примеры на реальных сценариях (интернет-магазин, CRM, аналитика продаж), код и полезные советы.
👉 Читать гайд (https://uproger.com/gajd-po-prodvinutomu-professionalnomu-ispolzovaniyu-sql/)
@python_be1
В этом руководстве мы рассмотрим ключевые аспекты работы с SQL на практике. Начнём с сравнения популярных СУБД, затем перейдём к продвинутым приёмам аналитического SQL, оптимизации запросов, администрированию баз данных, и закончится всё интеграцией SQL с Python (SQLAlchemy, pandas и т.д.).
Для каждого раздела приведены примеры на реальных сценариях (интернет-магазин, CRM, аналитика продаж), код и полезные советы.
👉 Читать гайд (https://uproger.com/gajd-po-prodvinutomu-professionalnomu-ispolzovaniyu-sql/)
@python_be1
This media is not supported in your browser
VIEW IN TELEGRAM
Ну почему у нас такого не было: принесли опенсорсный проект TeXPen, который превращает рукописные формулы и скриншоты сразу в LaTeX.
Работает в браузере на WebGPU/WebAssembly. Под капотом — TexTeller на 298 млн параметров, заточенная именно под рукописные и печатные формулы.
Студенты точно оценят (https://texpen.github.io/) 👍
@python_be1
Работает в браузере на WebGPU/WebAssembly. Под капотом — TexTeller на 298 млн параметров, заточенная именно под рукописные и печатные формулы.
Студенты точно оценят (https://texpen.github.io/) 👍
@python_be1
🔥 Pyradio — бесплатная Python тулза, которая включает интернет-радио прямо из терминала.
Без браузера, без GUI и без мышки.
🗳 Установка:
```
sudo snap install pyradio
```
▶️ Использование:
Включаем случайную станцию:
```
pyradio —play
```
⬆️⬇️ выбираешь станцию стрелками
⏎ жмёшь Enter
♎️ GitHub/Инструкция (https://github.com/coderholic/pyradio)
#python #soft #github
@python_be1
Без браузера, без GUI и без мышки.
🗳 Установка:
```
sudo snap install pyradio
```
▶️ Использование:
Включаем случайную станцию:
```
pyradio —play
```
⬆️⬇️ выбираешь станцию стрелками
⏎ жмёшь Enter
♎️ GitHub/Инструкция (https://github.com/coderholic/pyradio)
#python #soft #github
@python_be1
Нарыл ультимативный инструмент, чтобы скармливать код нейросетям без боли и ручного копипаста 😊
Тулза сама собирает выбранные файлы проекта в один правильный промпт для ChatGPT или Claude. Больше не нужно прыгать по вкладкам и копировать код кусками 😘
Что умеет:
— Автоматически вырезает мусор;
— Форматирует выдачу в Markdown, JSON или XML с сохранением структуры папок;
— Позволяет гибко выбирать файлы через дерево проекта;
— Работает полностью локально, код никуда не утекает.
Промптим оптом (https://github.com/Muredsa/AiContextManager) 👍
@python_be1
Тулза сама собирает выбранные файлы проекта в один правильный промпт для ChatGPT или Claude. Больше не нужно прыгать по вкладкам и копировать код кусками 😘
Что умеет:
— Автоматически вырезает мусор;
— Форматирует выдачу в Markdown, JSON или XML с сохранением структуры папок;
— Позволяет гибко выбирать файлы через дерево проекта;
— Работает полностью локально, код никуда не утекает.
Промптим оптом (https://github.com/Muredsa/AiContextManager) 👍
@python_be1
GitHub
GitHub - Muredsa/AiContextManager: 🚀 Прекрасное настольное приложение Electron для подготовки контекста кодовой базы для LLM (ChatGPT…
🚀 Прекрасное настольное приложение Electron для подготовки контекста кодовой базы для LLM (ChatGPT, Claude, DeepSeek). Автоматически сканирует проекты, фильтрует ненужные элементы и копирует код в ...
This media is not supported in your browser
VIEW IN TELEGRAM
Обучение контекстным менеджерам в Python: безопасная работа с файлами!
В этом видео мы погрузимся в удивительный мир контекстных менеджеров в Python! Вы узнаете, как эффективно управлять ресурсами, такими как файлы, и обеспечивать их безопасное закрытие даже в случае возникновения ошибок. Мы разберем, что такое контекстные менеджеры, как использовать `with` и создадим свой собственный менеджер для работы с файлами.
Не упустите возможность сделать свой код более надежным и чистым! В видео будет представлен код, который покажет, как просто и удобно открывать файлы с использованием контекстных менеджеров. Подписывайтесь на канал, чтобы не пропустить новые полезные фишки Python каждый день!
@python_be1
В этом видео мы погрузимся в удивительный мир контекстных менеджеров в Python! Вы узнаете, как эффективно управлять ресурсами, такими как файлы, и обеспечивать их безопасное закрытие даже в случае возникновения ошибок. Мы разберем, что такое контекстные менеджеры, как использовать `with` и создадим свой собственный менеджер для работы с файлами.
Не упустите возможность сделать свой код более надежным и чистым! В видео будет представлен код, который покажет, как просто и удобно открывать файлы с использованием контекстных менеджеров. Подписывайтесь на канал, чтобы не пропустить новые полезные фишки Python каждый день!
@python_be1