Pull to refresh
32
0.6
Vladimir @vldmrmlkv

open to work

Send message

От MCP до мультиагентов: 10 Open Source AI проектов на GitHub и почему они важны

Reading time11 min
Views5.9K

Группа экспертов GitHub провела анализ популярных open-source AI проектов, созданных за последние 99 дней. В статье вы узнаете об этих проектах и почему они важны для индустрии AI.

Читать далее

Как улучшить тестируемость кода на примере Dependency Injection в Python

Level of difficultyMedium
Reading time7 min
Views5.4K

В данной статьей вы узнаете о важности отделения операций ввода-вывода (т.е. сетевых запросов, обращений к базе данных и т.д.) от основной логики кода, особенностях использования Dependency Injection (внедрения зависимостей) для написания более тестируемого кода с примерами модульных тестов.

Примитивы синхронизации в Python Asyncio: Исчерпывающее руководство

Level of difficultyHard
Reading time14 min
Views19K

При написании многопоточного приложения нужно помнить о возможности состояния гонки при использовании неатомарных операций. Даже простая задача по увеличению целого числа на единицу в конкурентной программе может вызвать ошибки, с трудом поддающиеся воспроизведению. Но при использовании asyncio мы всегда работаем в одном потоке, а значит можно не беспокоиться о гонках, правда? На самом деле не всё так просто...

Что было дальше?

Паттерн производитель-потребитель и очередь с приоритетом asyncio.PriorityQueue в Python

Level of difficultyMedium
Reading time8 min
Views6.2K

В предыдущей статье вы могли узнать что такое очередь в целом и как работает FIFO-очередь asyncio.Queue. Давайте продолжим и посмотрим на примере библиотеки aiohttp как работают очереди с приоритетом asyncio.PriorityQueue.

Читать далее

10 лучших практик логирования в Python

Level of difficultyEasy
Reading time19 min
Views42K

По мере того как приложение собирает все больше данных, правильное ведение журналов становится решающим фактором для быстрого и эффективного понимания общей функциональности. Это позволяет устранять проблемы до того, как они повлияют на конечных пользователей.

В этой статье мы рассмотрим лучшие практики логирования в Python. Следуя им, вы сможете обеспечить информативность, практичность и масштабируемость генерируемых логов. Давайте начнём!

Читать далее

FIFO очередь asyncio в Python

Level of difficultyMedium
Reading time19 min
Views8.1K

Очереди в Asyncio могут быть полезны для создания программ, в которых используются паттерны производитель-потребитель, где одна или несколько корутин производят элементы и помещают их в очередь, а одна или несколько корутин потребляют элементы и обрабатывают их из очереди.

В этой статье на примерах вы узнаете как работает асинхронная очередь asyncio.Queue.

Читать далее

8 и 1/2 способов проверки атрибутов классов в Python

Level of difficultyMedium
Reading time14 min
Views15K

Проверка типов и проверка значений обрабатываются в Python гибким и неявным образом. В Python начиная с Python 3 появился модуль typing, который обеспечивает поддержку подсказок типов. Но для проверки значений не существует единого способа проверки.

Один из сценариев, в котором нам нужна проверка значений — это инициализация экземпляра класса. На первом этапе мы хотим убедиться в правильности вводимых атрибутов, например, адрес электронной почты должен иметь правильный формат xxx@xx.com, возраст не должен быть отрицательным, фамилия не должна превышать 20 символов и т.д.

В этой статье я хочу продемонстрировать 7(с половиной - прим.пер.) вариантов проверки атрибутов класса с помощью встроенных модулей Python или сторонних библиотек. Интересно, какой вариант вы предпочитаете? Если вы знаете другие варианты, пишите в комментариях. Поехали.

Читать далее

Information

Rating
1,447-th
Location
Россия
Registered
Activity

Specialization

Backend Developer
Middle
Python
Linux
Git
Docker
Fastapi
CI/CD