Сергей Вариасов. Почему мы написали еще один фреймворк для Python

  Рет қаралды 2,925

Видео с мероприятий {speach!

Видео с мероприятий {speach!

3 ай бұрын

Ждем вас на наших конференциях:
2 февраля 2024 - EkbPy
26-27 июля 2024 - PyCon
Сергей Вариасов
Техлид направления Python, ЕвразТехника ИС
Почему мы написали еще один фреймворк для Python

Пікірлер: 12
@oleggarshin251
@oleggarshin251 9 ай бұрын
Интересный доклад, Сергей, спасибо!
@windachae4778
@windachae4778 2 ай бұрын
Хороший доклад, слушать приятно
@vsevolodqq
@vsevolodqq 2 ай бұрын
Ломаете стереотипы о заводах и их подходах к работе) Оч. круто, спасибо!
@yodapunishes
@yodapunishes 2 ай бұрын
Очень интересно, но работать бы я к вам не пошел 😁
@Ca1vema
@Ca1vema 2 ай бұрын
В питоне чистая архитектура работает плохо. Почему? Потому что asyncio - это библиотека, а не фича языка. Поэтому ты не можешь эффективно создавать интерфейсы, которые возможно будут работать с IO, либо ты изначально закладываешь свое приложение на async, либо "сосешь бибу" в будущем.
@a1d4rg
@a1d4rg 2 ай бұрын
async/await синтаксис не ограничен asyncio. Никто не запрещает писать асинхронный код на Anyio, который может запущен как с asyncio, так и с trio.
@Ca1vema
@Ca1vema 2 ай бұрын
@@a1d4rg спасибо за информацию, но я не про это. Возьми классический подход для работы с хранимыми данными в DDD - это репозитории. Во время разработки и тестов я могу заинжектить репозиторий, который данные хранит просто в поле класса, но когда придётся прикручивать БД я буду ограничен только синхронными драйверами, потому что мой код синхронный. Соответственно изначально нужно делать приложение, которое будет работать с async/await, и не важно что там под капотом используется.
@a1d4rg
@a1d4rg 2 ай бұрын
@@Ca1vema Да, это так, к сожалению. В дополнение, если писать асинхронный код, то любые вызовы синхронных библиотек придётся выносить в тред, чтобы не блокировать event loop. Но мне понравилась идея изначально делать все IO функции и методы, которые ходят в сеть или БД сразу с асинхронными сигнатурами. В том числе и интерфейсы. То есть когда пишёшь код и вызываешь await, то сразу понимаешь, что ага - это функция ходит в сеть или на диск. Возьмём ваш пример с репозиториями. Если вы пишите синхронный код, скажем на джанге, то асинхронные драйвера вам скорее всего ни к чему, и все методы репозитория будут синхронными. А если вы сразу пишете асинхронный код, то зачем делать методы репозитория синхронными, если подразумевается, что они в них вы будете ходить в сеть или на диск?
@markervictor
@markervictor 2 ай бұрын
Тоже уже полгода нахожусь в поисках относительно того, как гексагональную архитектуру с DDD можно поженить с Python. Практически всё действительно сводится к велосипедам, т. к. нет готовых реализаций паттернов, которые описаны в книгах. А ещё сложнее от того, что в рамках питона некоторые вещи, реальные для Java, Kotlin или.NET, просто нереально реализовать из-за более слабой системы типов, своего видения ООП, дурацкой системы импорта и подобного.
@MichioSempai
@MichioSempai 2 ай бұрын
Потому что в python не нужно то, что нужно в типизиоуемых языках. Di по сути это попытки втащить в типизируемые языки элементы интропретации, зачем это в и так в интропретируемом языке
@markervictor
@markervictor 2 ай бұрын
Можете пояснить чем DI похож на интерпретацию? Ничего не мешает руками писать DI контейнеры как на питоне, так и на любом другом языке. Просто это не так удобно, как когда есть готовое универсальное решение. Для питона оно было (dependency-injector), но уже два года не поддерживается
@yodapunishes
@yodapunishes 2 ай бұрын
Что из себя представляет сам фреймворк по сути не сказано ни слова, только про зависимости и DI. Про Gevent вообще сомнительно. Именно по той причине, что озвучил автор, мы от него отказались: он не в полной мере даже psycopg2 поддерживает, что уж говорить про другие библиотеки, написанные на Си
Круглый стол
1:36:04
Видео с мероприятий {speach!
Рет қаралды 70
Николай Хитров. Архитектура кнута и пряника
46:02
Видео с мероприятий {speach!
Рет қаралды 1,8 М.
⬅️🤔➡️
00:31
Celine Dept
Рет қаралды 44 МЛН
PINK STEERING STEERING CAR
00:31
Levsob
Рет қаралды 23 МЛН
Backstage 🤫 tutorial #elsarca #tiktok
00:13
Elsa Arca
Рет қаралды 47 МЛН
Андрей Гейн. Mojo - революция или хайп?
47:30
Видео с мероприятий {speach!
Рет қаралды 2,2 М.
Данил Губанов. Через боль с dependency-injector
50:54
Видео с мероприятий {speach!
Рет қаралды 1,2 М.
Петер Ибрагимов. Как использовать serverless и не наломать дров
46:12
⬅️🤔➡️
00:31
Celine Dept
Рет қаралды 44 МЛН