FastNews | Никита Пастухов
776 subscribers
63 photos
1 video
118 links
Привет! Я - Никита Пастухов: автор FastStream, опенсорсер, python (и не только) разработчик

Здесь я пишу обо всем, что мне интересно:
- создание продуктов
- личная эффективность
- программирование
- Open Source

Чатик по FastStream: @python_faststream
Download Telegram
Тем временем холивары внутри mypy, которые я невольно спровоцировал, продолжаются. И даже вышли на новый круг эскалации - https://github.com/python/mypy/pull/18270#issuecomment-2551709475

За этим интересно наблюдать и крайне интересно, к какому решению в итоге придут мейнтейнеры😅 Жду с нетерпением, чтобы тоже чуть-чуть покопаться в mypy и поправить другие места на основе решения этого PR

Стоит признать, что у меня действительно не хватило бы экспертизы на правки так глубоко в логике работы анализатора. Хорошо, что за решение проблемы взялись мейнтейнеры и не дали мне завязнуть в этом по уши😁
👍7
Какая жалость, меня не взяли на работу, на которую я даже не подавал заявку😢

Интересно, это Сбер так рекламирует свою HR платформу или просто баги на прод завезли?
😁13🥴3
Кто-нибудь понимает, как мержат проекты в этот ваш awesome-python?

У меня просто мозг взрывается от того, что туда до сих пор не добавил uv (который буквально уже везде используется, даже в самом cpython) - https://github.com/vinta/awesome-python/pull/2605

К слову, FastStream туда тоже так и не добавили😢
💯4
Эффект свидетеля в человеческой психике очень силен.
И часто он даже работает. Например, я периодически спотыкаюсь о косяк нового CI UI в Github (нет кнопки "Approve and run" для запуска CI) и вот, наконец, я себя пересилил и пошел репортить багулину.

Однако, ее уже зарепортили до меня - https://github.com/orgs/community/discussions/143787#discussioncomment-11679662 🎉

Однако, мне теперь даже стыдно, что я только на 3ий раз пошел заводить багу вместо того, чтобы зарепортить ее сразу же.

Как мейнтейнер OSS проектов я призываю всех-всех-всех быть чуть более осознанными и репортить встреченные вами баги сразу же. В общем, не надо как я, надо заводить Issue в ту же секунду😅 Так мы сможем сделать ПО лучше вместе😊

#продуктивность
3
Наконец досмотрел интервью с Ильей Ильиных от Диджитализируй - https://www.youtube.com/watch?v=8NdaPHWSRk4&feature=youtu.be

Прям зарядился, хочу теперь многое сам потыкать😅

Во-первых, я никогда не был сильным поклонником TDD (но тесты писать очень люблю). Мне всегда казалось писать тесты вперед кода избыточным, но в процессе прослушивания интервью я кое-что для себя переосмыслил - попробуй немного пересмотреть свой процесс написания кода и закопаться в тему хотя бы через книжку.

Во-вторых я был очень удивлен, когда узнал, что действительно существует программист, кто может работать по технике Pomodoro. У меня нет проблем с сотоянием потока, но процесс вкатывания у меня занимает минут 20, а потом я уже запряженный могу херачить несколько часов на одном дыхании. Но "окна" в 20-40 минут для меня - это ад, я банально ничего в них не успеваю (не только код, мне в принципе тяжело впихивать дела в такие слоты, я оперирую большими промежутками времени). Но сейчас я увидел человека, который открыто говорит "я могу спокойно работать по 20-30 минут" - значит, и я смогу?

Особенно понравился лайвхак с "оставить 1 тест красным, чтобы знать, откуда начать в след раз" - попробую взять на вооружение. Без TDD до такой очевидной штуки тяжело додуматься.

В-третьих Илья замотивировал меня хотя бы поехать в шоу-рум и потыкать сплит-клавиатуры. Мне понравилась идея, т.к. человек озвучил все те же проблемы "вкатывания в слепую печать", с которыми регулярно сталкиваюсь и я - необходимость использовать разные руки для шифта и прочих хоткеев. Возможно, сплит-клава меня действительно переучит. А еще история про туннельный синдром меня не на шутку напугала: я тоже начинаю замечать дискомфорт в запястьях после долгой работы за клавиатурой макбука. Если сплит-клава решит и эту проблему - я буду вообще счастлив. В общем, есть идея для подарка себе на НГ🌚 Может быть меня даже ждет третья итерация переезда на vim как полноценную IDE...

В целом, мне вообще понравилась идея про "экзоскелет для написания кода"😂

А вообще - Илья оч крутой! Мне понравился ход его мыслей. Рад, что узнал о таком человеке - и, конечно, подписался на канал @kydavoiti

Надеюсь, пересечемся на каком-нибудь мероприятии лично. Хотелось бы и вживую поразгонять все эти темы😅 А интервью - крайне рекомендую посмотреть!

#TDD #split #продуктивность
🔥4
Ну все, астрологи прогнозируют удвоенное количество духоты на код-ревью PR'ов☺️
7👏4🤯3😁2👍1
В преддверии Нового года я решил оглянуться и посмотреть, как мы провели 2024 - и мы провели его с пользой!

Специально для вас я подготовил небольшой отчет - FastStream 2024 в цифрах!

Примерно так выросли "сухие цифры"

Звезды на Github: 1300 -> 3300
Ежедневные установки: 600 -> 9000
Used by публичные репозитории: 80 -> 390
Контрибуторы: 20 -> 70 (стабильных 0 -> 10)
Уникальные пользователи на сайт документации: 60 -> 800 в день
Коммиты: 331 коммит в main (пару дней пропустили)
Закрытых Issues: 191
Релизы: 0.3.11 -> 0.5.33 (47 релизов - почти каждую неделю)

А в этих релизах нас ждало очень-очень много вкусных вещей, без которых FastStream уже невозможно представить
- Поддержка Confluent
- Поддержка OpenTelemetry
- Поддержка Prometheus
- Поддержка ASGI
- А еще: broker.request синтаксис, динамические subscruber'ы, новые мидлвари, улучшенные роутеры, Response класс, ping'и и healthcheck'и и много-много других важных и не очень изменений

Помимо этого я подготовил 2 доклада на конференции (которые еще почему-то не все посмотрели):
- Мой доклад с PiterPy: https://youtu.be/33bugga930w
- Мой доклад с Podlodka: https://www.youtube.com/watch?v=_P7lgV5bKVw&t=1980s

А еще мой коллега Tvrtko рассказал о FastStream на PyconSK
- https://www.youtube.com/watch?v=mcUEwkvcnKw&t=9s&ab_channel=PyConSK

И проект засветился даже на EuroPython
- https://www.youtube.com/watch?v=5UL71U3NcCg&t=1s&ab_channel=EuroPythonConference

А еще я запустил довольно провокационную статью на Habr, которая вызвала волну дискуссий🌚

Чтож, год получился и правда плодотворный. Давайте теперь пофантазируем, что нас ждет в следующем году?

- Больше брокеров! Однозначно ждем SQS и MQTT!
- Отказ от поголовного использования pydantic и предоставлении альтернативы в виде msgspec или своих сериализаторов
- Выпуск стабильной 1.0.0 версии!
- Построение сообщества контрибуторов (и расширение списка мейнтейнеров), которое может автономно развивать, дорабатывать проект и даже онбордить других участников!
- Больше обучающего материала по FastStream в виде референсных проектов, сложных кейсов в документации, статей и мб даже видео
- Больше активностей в рамках международного сообщества

На самом деле планов гораздо-гораздо больше, но давайте наметим хотя бы план-минимум?😅

Хочется сказать спасибо всему сообществу (какого черта вас так много в чате и на моем канале?😂) за неиссякаемую поддержку, что я чувствовал весь год. Именно вы делаете этот проект таким замечательным и драйвите меня заниматься им каждый день!
13🔥7🎄2🥰1
FastNews | Никита Пастухов
Ну все, астрологи прогнозируют удвоенное количество духоты на код-ревью PR'ов☺️
TDD откладывается...
Просто посмотрите, какую красоту закинул мне тайный Санта прямиком из Британии!
Кто-нибудь вообще шарит за самое базированное фентези?😅
🔥10👍4
Типизация в Python настолько простая, что я до сих пор открываю для себя все новые и новые типы. Например, сегодня я узнал про Collection. Раньше я всегда юзал Iterable/Sequence/[Set | List | Tuple], а теперь в инструментарии появилось еще и промежуточное звено - Collection

Collection - это тот же Sequence, только без __reversed__ и __getitem__. Т.е. если вам нужен тип, который поддерживает итерацию, проверку на in + len - то вот он:


from collections.abc import Collection

def func(data: Collection[int]) -> bool:
for i in data:
...

len(data)

return 1 in data


Раньше я для этих целей использовал Sequence, но это было не совсем верно, т.к. Sequence более строгий тип и накладывает больше ограничений на входные значения, чем реально требуется функции. Так что у меня теперь новый любимый тип!

А вообще - всем крайне рекомендую сверяться вот с этой табличкой при расстановке аннотаций. Во всяком случае, пока не запомните ее наизусть🌚

#программирование
🔥8👍3
Хе-хе-хе, очередная холиварная статья на Хабре moment

https://habr.com/p/872988/

Оказывается, SSR на React - это хорошо, потому что "мы больше не пишем спагетти, да и вообще это настоящий фуллстак"

Такое чувство, что современные фронтендеры закуклились в своем браузере и забыли истинные причины отделения клиентского кода от серверного...

– мб мы экономим ресурсы сервера, вынося логику отрисовки на клиент?
– мб мы можем шарить серверную логику между разными клиентами (мобилка/web/whatever)?
– мб мы можем разделить экспертизу, ускорив разработку за счет узкой специализации?

Да не, бред. Люди просто говнокодили на PHP, а вот принесли SPA - и сразу стала чистая архитектура. Теперь настало время нести эту чистую архитектуру обратно на бекенды через NextJS, так и знайте!

Спасибо добрым фронтендерам, хоть кто-то научит пыхеров писать код🌚
🤣10👍31
Если кто-то хотел потыкать FastStream и у него никак не доходили руки - сейчас у вас есть еще один повод сделать это)

Мы добавили AI ассистент прямо в документацию - https://t.me/faststreamrelease/11

Если вам лень искать что-то по доке - можно спрашивать его, он дает ответ с примером кода и ссылки на конкретные разделы доки, откуда это взято.

Сейчас фича работает в тестовом режиме, поэтому мы (команда airt) и создатели ассистента (Gurubase) будем очень благодарны за любой фидбек от использования

https://faststream.airt.ai/latest/
🔥7👍2🤩1
4424 passed, 16 skipped, 134 deselected, 67 warnings in 635.13s (0:10:35)


А я думал, 4к тестов - это еще мало, а 10 минут на прогон - слишком много. Хорошо, что дядя Кент Бек меня успокоил😅

А какое максимальное количество тестов вы видели на проектах и сколько занимал самый долгий прогон? Расскажите свой кейс в комментах - очень интересно, кто какого дерьмеца хапнул

#TDD
🤯3
FastNews | Никита Пастухов
Наконец досмотрел интервью с Ильей Ильиных от Диджитализируй - https://www.youtube.com/watch?v=8NdaPHWSRk4&feature=youtu.be Прям зарядился, хочу теперь многое сам потыкать😅 Во-первых, я никогда не был сильным поклонником TDD (но тесты писать очень люблю).…
По заветам @kydavoiti уже вторую неделю практикую TDD (результатом доволен, постараюсь написать об этом позже), а еще прикупил себе стальное яйцо в комплект🌚

В целом, Pomadoro действительно отлично работает! Особенно дома, где много отвлекающих факторов и постоянно хочется проверить чатик / телефон...

Но на работе - это просто бомба! Естественное желание мусолить хуйню по 3 часа резко обрывается задорным звоном яйца - и ты собираешься валить из переговорки😁 (заманчиво, но так делать не стоит). Пока пробую эту тему на работе первый день, но первые впечатления - восторг! Рекомендую всем и каждому!

#продуктивность
🔥6
Очередной отличный сервис от Яндекса. Я не могу ни привязать карту, ни пополнить баланс, ни создать новый платежный аккаунт...

Запросы идут бесконечно на какую-то их службу - и отваливаются по CORS. А я счастливо наблюдаю бесконечный лоадер 💯

Access to resource at 'https://trust.yandex.ru/web/otlp/spans/collect' from origin 'https://card-form.diehard.yandex.net' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: The 'Access-Control-Allow-Origin' header has a value 'https://billing.yandex.cloud' that is not equal to the supplied origin.


Спасибо, что заботитесь о моих деньгах и не даете их потратить на всякую чушь в облаке👍
😁7😢2🐳1
FastNews | Никита Пастухов
Очередной отличный сервис от Яндекса. Я не могу ни привязать карту, ни пополнить баланс, ни создать новый платежный аккаунт... Запросы идут бесконечно на какую-то их службу - и отваливаются по CORS. А я счастливо наблюдаю бесконечный лоадер 💯 Access to resource…
Проблема решилась открытием сайта в режиме ИНКОГНИТО🤯
Или в Safari вместо Chrome...

Какого черта вообще происходит с браузерами на макбуке? У меня на некоторых сайтах поперебойно такие проблемы: то в хроме что-то не работает, а в сафари - работает, то наоборот😢
🤯6
Я долго сопротивлялся всем AI тенденциям, считая, что они еще не созрели для использования в реальных проектах. Но недавно попробовал Cursor (о котором я уже прожужжал все уши) - и теперь я полностью переобулся!

Опыт от использования Cursor не идет ни в какое сравнение с моими робкими попытками потыкать Copilot / ChatGPT. Эта штука буквально читает твои мысли - и воплощает их в код быстрее, чем ты формулируешь их до конца.

Copilot же постоянно предлагал мне средневзвешенное говнецо с гита, да еще и галлюционировал по полной - закидывал в методы лишние аргументы, обращался к ненужным или несуществующим аттрибутам объекта и тд. Самое обидное - предлагаемый код выглядел целиком и полностью валидным, но нюанс в виде передачи func(obj.field) вместо func(obj) очень легко проглядеть и он постоянно выстреливал уже при запуске. Это ОЧЕНЬ раздражает.

Cursor же великолепно понимает контекст твоего проекта - он придерживается стиля написания, который принят в проекте, не обращается
к несуществующим полям, методам и вообще делает то, что хочешь именно ты и именно сейчас. За две недели использования я словил ровно 0 галлюцинаций и ровно 100% кайфа. К тому же Cursor отлично помнит контекст происходящего процесса. Ты только поправил класс? - давай поправим его использование ниже по файлу. Перешел в другой файл? - вон тот класс вон в том модуле только что правили, давай поправим его использование и тут! У тебя просто не остается выбора, кроме как нажимать TAB - TAB - TAB...

Опыт от использования очень похож на опыт парного программирования: мысль летит, код пишется, и даже не понятно (да и не важно), чьи руки его написали - настолько ты увлечен процессом.

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

В общем и целом - Cursor я уже оплатил, а всем, кто еще не пробовал - крайне рекомендую потыкать

Разбор негатива я запланировал на завтра.

#AI #cursor
🔥411😢1
Ура! Моя статья про декораторы уже ушла в народ и уже используется как авторитетный!!! источник при написании других статей про декораторы😅

https://habr.com/ru/articles/817445/

Особенно забавно, что моя авторская терминология соблюдена

Такие декораторы называются декораторами Шредингера


Глядишь, лет через 5 совсем приживется)

#программирование
🔥9👏1