python and some backend notes(ru)

python and some backend notes(ru)

@python_backend

Личные заметки и ссылки на статьи по python и backend вопросам, но может кому-то тоже будет интересно

109подписчиков
🇷🇺

Похожие каналы

Все →

Последние посты

https://habr.com/ru/companies/k2tech/articles/953080/#asyncio #threading #GIL

26 окт. 2025 г.372В Telegram

https://habr.com/ru/companies/domclick/articles/804535/ https://habr.com/ru/companies/domclick/articles/942584/ - 2 обьемные статьи о мониторинге celery#celery #monitoring

16 сент. 2025 г.532В Telegram

https://tonybaloney.github.io/posts/async-test-patterns-for-pytest-and-unittest.html#pytest #asyncio #async

7 сент. 2025 г.524В Telegram

https://habr.com/ru/articles/936984/#generator #iterator #yield

17 авг. 2025 г.639В Telegram
python and some backend notes(ru) — пост в ТГ канале

🐍 Почему Python `deepcopy()` такой медленный и что использовать вместо Функция copy.deepcopy() кажется удобной: она создаёт полную копию объекта со всеми вложенными структурами. Но на практике она часто оказывается очень медленной и становится бутылочным горлышком в проектах. Давайте разберёмся почему так происходит и какие есть альтернативы. 🔥 Почему deepcopy() тормозит 1. Рекурсия на всём дереве объектов Python проходит по каждому вложенному элементу, даже если их сотни тысяч. 2. Определение метода копирования Для каждого объекта проверяется, можно ли вызвать __deepcopy__, или приходится идти стандартным путём. 3. Memo-словарь для ссылок Чтобы избежать бесконечных циклов при копировании (например, объект ссылается сам на себя), Python ведёт словарь уже скопированных элементов. Это полезно, но замедляет работу. 4. Реализация на чистом Python В отличие от сериализации (`pickle`), deepcopy() не ускорена на уровне C, поэтому работает медленнее. 📊 Пример замеров скорости import copy, pickle, timedata = [[i for i in range(1000)] for _ in range(1000)]# deepcopystart = time.time()a = copy.deepcopy(data)print("deepcopy:", time.time() - start)# picklestart = time.time()b = pickle.loads(pickle.dumps(data))print("pickle roundtrip:", time.time() - start)# list comprehension (для списков списков)start = time.time()c = [sub[:] for sub in data]print("manual copy:", time.time() - start)💻 Результат (у вас может отличаться, но смысл тот же): - deepcopy: ~2.5 сек - pickle: ~0.8 сек - ручное копирование: ~0.02 сек (!) ⚡ Когда что использовать ✅ copy.deepcopy() Подходит, если структура очень сложная, а вам нужна стопроцентно независимая копия. ✅ pickle.loads(pickle.dumps(obj)) Быстрее на больших структурах, плюс удобно, если данные нужно сохранять. ✅ json.loads(json.dumps(obj)) Хорошо для простых словарей и списков с базовыми типами. ✅ Ручное копирование (list comprehension, dict comprehension) Лучший вариант, если вы знаете структуру данных и хо

17 авг. 2025 г.492В Telegram

https://byteofdev.com/posts/tuning-postgres-intro/ - статья о настройке postgres#db #postgres #sql

2 авг. 2025 г.332В Telegram
python and some backend notes(ru) — пост в ТГ канале

📚 Bash Scripting: Шайд по циклам — на одной картинкеЕсли ты работаешь в Linux или автоматизируешь задачи через shell-скрипты — держи шпаргалку, которую обязан знать каждый разработчик.На картинке — все основные типы циклов в Bash:- 🔁 for по директориям и диапазонам- 🧮 C-подобный for ((i=0; i<10; i++))- 📜 while и until- ♾ while true и while :- 📂 Чтение файлов через while read line- ⏭ continue и break🧠 Полезные паттерны:- ✅ Инкремент/декремент переменных в while- ✅ Условия выхода из цикла (`break`)- ✅ Пропуск итераций (`continue`)- ✅ Построчное чтение файлов без cat🛠 Примеры, которые можно сразу копировать и вставлять в свои .sh скрипты.📌 Забирай картинку — это идеальный материал для тех, кто хочет писать чистые и эффективные Bash-циклы.#bash #linux #devtools #shell #cli #разработка #шпаргалка@linuxacademiya

20 июл. 2025 г.344В Telegram

https://www.dash0.com/guides/logging-in-python - хорошая статья о логировании с примерами#logging #json

15 июл. 2025 г.259В Telegram

https://realpython.com/python-t-strings/#tstring

9 июл. 2025 г.271В Telegram

https://habr.com/ru/articles/923098/#soap #wsdl

30 июн. 2025 г.289В Telegram

https://habr.com/ru/companies/otus/articles/919676/#import #importlib

25 июн. 2025 г.286В Telegram

https://habr.com/ru/articles/917226/#docker

11 июн. 2025 г.314В Telegram

https://realpython.com/python-dict-attribute/ - статья об использовании dict#dict #__dict__

27 апр. 2025 г.454В Telegram

https://medium.com/@apps.merkurev/dont-forget-about-slots-in-python-c397f414c490 - статья об использовании slots#slots #__slots__

27 апр. 2025 г.374В Telegram

https://nitter.hydranet.dev/edwardjxli/status/1897714940297068624 - о том, как работает contextlib.contextmanager#contextmanager #contextlib

27 апр. 2025 г.332В Telegram