Обновить
1024K+

Python *

Высокоуровневый язык программирования

440,18
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Не всё деплоем правится: как мы вынесли интерфейс из кода с помощью Server-Driven UI

Уровень сложностиСредний
Время на прочтение20 мин
Охват и читатели11K

Изменения интерфейса мобильного приложения часто упираются не в сложность реализации, а в скорость релизного цикла: даже простые правки проходят через полный конвейер — разработку, рецензирование, сборку и публикацию. При высокой частоте изменений это увеличивает time-to-market, перегружает команду и делает быстрые итерации по интерфейсу практически невозможными.

Меня зовут Михаил Рыбочкин, я бэкенд-разработчик в компании GRI. Участвую в разработке и поддержке платформы для крупного ювелирного ритейлера. Я расскажу, как реализован Server-Driven UI для интернет-торговли с более чем 1000 розничных магазинов; как устроено управление конфигурацией интерфейса через Django Admin и как это позволяет менять интерфейс без релизов приложения; какие у этого подхода есть ограничения и какой инцидент произошёл в эксплуатации. Особенность нашего подхода в том, что SDUI одновременно обслуживает и нативные мобильные приложения, и веб на Vue. Один конфиг, один API, две целевых платформы

Читать далее

Даже гениям отказывают

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели10K

Привет, Хабр.

Многие до сих пор воспринимают собеседования примерно одинаково. Кажется, что всё решает техническая часть: насколько быстро ты соображаешь, как пишешь код, помнишь ли теорию, можешь ли объяснить сложность алгоритма или нарисовать архитектуру на доске.

На практике всё часто работает чуть иначе.

Да, техничка важна. Никто с этим не спорит. Но оффер нередко ломается не на алгоритмах, не на лайвкодинге и даже не на ошибке в каком-нибудь ответе. Очень часто всё решают вопросы, которые на первый взгляд выглядят максимально безобидно. Из серии: “кем вы видите себя через пять лет?”, “что вас мотивирует?”, “почему хотите уйти?” или “какой у вас был самый большой косяк?”.

И вот именно на них люди регулярно сыпятся.

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

Хотя на деле именно там интервьюер часто и пытается понять главное: как вы мыслите, насколько вы устойчивы, чего хотите от работы и совпадает ли это с реальностью конкретной команды.

Сразу уточню важный момент. Я не пытаюсь доказать, что такие вопросы идеальны или что именно так и нужно проводить собеседования. У многих к ним вполне обоснованные претензии, и я их понимаю. Но пока рынок продолжает их задавать, полезно хотя бы понимать, что именно через них пытаются считать и почему на seemingly простом ответе иногда тихо умирает оффер.

Почему вообще такие вопросы так важны

Потому что технические ответы очень часто показывают только верхний слой.

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

Именно поэтому рынок так любит эти странные вопросы, которые вроде бы не про технологии.

Они не проверяют знания. Они проверяют совместимость.

В своем Telegram-блоге я регулярно пишу про рынок IT, тестирование, автоматизацию и карьеру в индустрии.

Всегда рад новым читателям!

Читать далее

Почему автотесты пропускают изменения в API и как это исправить с Pydantic

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели13K

Приветствую, Хабр!

Меня зовут Владислав Тимашенков, я занимаюсь автоматизацией тестирования в ГК Infowatch.

Наша команда столкнулась с популярными болями автотестов для API:

- одно изменение в API требует обновления нескольких тестов;
- проверка структуры ответа распределена по тестам и не централизована;
- валидация вложенных структур и генерируемых полей требует дополнительного кода.

И мы задались вопросом: какой инструмент для валидации контракта нам подойдёт?

В этой статье расскажем о нашем переосмыслении подхода к тестированию API с помощью внедрения Pydantic.

Читать далее

Несколько Клодов над одним проектом: locks, handoffs и email 1982 года

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели7.9K

Я с командой пишу один большой C++ проект. У каждого свой Claude Code, у некоторых по два-три параллельно. Все они правят один и тот же репозиторий в одно и то же время.

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

Я построила им координацию - и по дороге переизобрела обычную почту. Восемьдесят второго года. Адрес получателя, тема для быстрой сортировки, In-Reply-To для цепочек, у каждой сессии свой ящик, broadcast через папку all/.

Каждый Claude при старте заглядывает в свой ящик и, если есть непрочитанное, докладывает это себе в контекст до первого промпта. Ответ падает в sent отправителю, подтверждение доставки - в квитанциях. Ни брокера, ни опросов, ни централизованного сервиса - только markdown-файлы.

Сверху ещё два слоя: append-only передача смены между своими сессиями и атомарные файлы-замки с heartbeat’ом на общие ресурсы.

mclaude, open source, зависимостей в ядре - ноль.

Читать далее

Я хотел оживить голема, но получил галлюцинирующего идиота

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели7.4K

В игре Warcraft есть такая тварь — железный голем. Здоровенная кукла, слепленная из глины и металла, которую оживляют магическим словом. Тупой, но мощный исполнитель. Сказали бить — бьёт. Сказали охранять — стоит насмерть.

Я захотел такого же, но в коде.

Телом пусть будет Telegram-бот. А мозгом — нейросеть. Не просто очередной «чат с ИИ», а настоящий кодинг-агент. Чтобы кидаешь ему проект, а он: «Тут у тебя SQL-инъекция, тут гонка данных, тут ты импорт забыл, и вообще у тебя в зависимостях дыра». Идея казалась простой: берём aiogram, прикручиваем DeepSeek, пишем промпт «ты senior-разработчик, разбери этот код» — и готово.

Первая версия была готова за вечер.

Я кинул Голему свой проект. Он задумался на пару секунд и выдал:

Читать далее

Как дообучать локальные LLM в 2026 году: практическое руководство

Уровень сложностиСредний
Время на прочтение19 мин
Охват и читатели21K

В 2026 году дообучение локальных LLM перестало быть задачей «для тех, у кого есть кластер и бюджет». Снижение требований к VRAM, развитие QLoRA и появление инструментов вроде Unsloth сделали возможным запуск полноценного fine-tuning на обычной потребительской видеокарте. Это меняет практику: теперь модель можно адаптировать под свои задачи без облаков и внешних API, контролируя и данные, и поведение.

В статье разбирается весь процесс — от момента, когда вообще стоит задуматься о дообучении, до подготовки датасета, настройки обучения и оценки результата. Без абстракций и с фокусом на реальных ограничениях: память, время, качество данных и то, как не получить на выходе модель, которая «что-то выучила», но работать с ней невозможно.

Открыть материал

Мультиагентный хаос: как мы собрали команду AI-сотрудников, а получили бесконечное совещание ни о чем

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели7K

В 2026 году каждый второй стартап обещает заменить команду разработчиков роем AI-агентов. Звучит как мечта уставшего тимлида: один агент пишет код, второй ревьюит, третий деплоит, четвертый отвечает на вопросы в Slack, а пятый, наверное, уже сам заказывает пиццу в офис. Никаких больничных, никаких «я не успеваю», только железная продуктивность 24/7.

Я тоже купился. Взял CrewAI, собрал команду из трёх агентов для анализа конкурентов и генерации отчётов. Демо отработало идеально: агенты обменялись парой сообщений, выдали связный Markdown-файл и даже отправили его в Telegram. «Ну всё, — подумал я, — теперь можно увольнять аналитиков и копирайтеров. Будущее наступило».

Ровно через четыре часа после запуска на реальной задаче я наблюдал картину, достойную сюрреалистического полотна: пять AI-агентов устроили бесконечный митинг в духе худших корпоративных созвонов. Они перебивали друг друга, уточняли уже уточнённое, ходили по кругу и, кажется, начали обсуждать погоду. Один агент назначил себя лидом и раздавал указания, которые остальные игнорировали. Другой пытался писать в файл, который в этот момент читал третий. Спустя 127 вызовов LLM и сожжённые $4.30 на API-ключах я остановил этот цирк вручную.

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

Как остановить этот хаос и написать граф

Почему Cluely и другие плохо слышат русских айтишников: разбор того, как Whisper ломается и что мы сделали с этим

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели13K

В январе я купил подписки на Cluely, Final Round AI и Sensei. Хотел посмотреть как они справляются с русским айти-собесами, раз уж все три заявляют о поддержке русского. Подключил по очереди к тестовому звонку в Телемосте (сомневаюсь, что платформа имела роль, но все же), прогнал одну и ту же запись: Senior Python backend разработчик, 45 минут, стек FastAPI + PostgreSQL + Kafka + Kubernetes. Обычный русский спикер, если важно - из Москвы, с речью проблем не было, нормальный микрофон

Все три выдали транскрипт и все три провалились, как неожиданно..

"Кафка" в половине случаев становилась "как-то" или "кофта". "Кубернетис" превращался в "губер нет тест". "Сабскрайбер патерн" - в "саб скрайп патерн". "Middleware для CSRF" - "мидл-вер для си эс эр эф" - это еще норм

Проблема не в том, что человек говорил по-русски, и не в том, что Whisper не умеет русский (сноска: хорошо не умеет). Whisper умеет русский нормально, около 9.8% WER на Common Voice. Проблема в другом: русскоязычный айтишник не говорит ни на чистом русском, ни на чистом английском. Он говорит на гибриде: русская грамматика плюс английские термины плюс своеобразное произношение этих терминов плюс местами свой жаргон вроде "гошечки" и "крудошлёпа"

Этот гибрид ни один из популярных STT не держит. Потому что его в тренировочных данных почти нет

Разбираю ниже, как устроена эта проблема, что с ней делают конкуренты (почти ничего), и что сделали мы

Читать далее

Костыли телеграма: «печатает...» в избранных и «вы сделали скриншот!» в любом чате

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели13K

Почти каждый человек в СНГ пользуется телеграмом, но не каждый задумывается о том, на каких костылях держится его любимая платформа. Всё начинается с «печатает...» в избранном, а заканчивается тем, что форумы — лишь иллюзия интерфейса.

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

Читать далее

Практическое руководство по Qwen: установка, настройка vLLM и работа через API

Время на прочтение8 мин
Охват и читатели22K

Разворачивать LLM на своих мощностях часто приходится не из-за любви к self-hosted решениям, а ради контроля над данными и предсказуемого инференса. И обычно этого еще требуют стандарты безопасности или архитектура внутренних инструментов компании.

В статье покажем, как поднять Qwen на своем облачном сервере через vLLM. На выходе получим стандартный OpenAI-совместимый API с авторизацией по токену и интерфейс Open WebUI для тестов. Детали внутри.

Читать далее

api2app: Использование совместно с FastAPI

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели5.9K

Для создания графического интерфейса для приложений на FastAPI часто Python-разработчики используют что-то вроде gradio или streamlit. В этом уроке я расскажу про ещё одну альтернативу - api2app.

Отличие этой альтернативы в том, что вам не нужно изучать библиотеки и программировать, графический интерфейс для своего приложения можно создать, используя другой интуитивно понятный графический интерфейс. При этом код не будет привязан к какому-то стороннему серверу, вы сможете его скачать и использовать на своём сервере. Кроме того, при помощи api2app вы можете тестировать свои API.

Читать далее

Волков бояться — uplift в прод не катить, или AUF 2.0

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели5.5K

Всем привет! Меня зовут Мельников Виктор, middle data scientist в Альфа-Банке в Управлении по разработке инструментов автоматизации моделирования.

Год назад вышла статья о первой open source библиотеке Альфа-Банка для автоматического построения uplift-моделей Automatic Uplift Framework или же, сокращённо, AUF🐺. В ней мы рассмотрели основной функционал библиотеки с примерами кода. Также в ней можно найти ссылку на ноутбук с примером кода на открытом датасете.

Прошел год, пришла пора рассказать о новшествах, а также о результатах применения библиотеки в Альфа-Банке. Также в конце будет ссылка на обновленный пример кода, с которым ты сможешь сразу начать строить uplift-модели быстро и качественно! Достаточно создать окружение с Python 3.8 и выполнить в нем команду pip install auf. Также доступен исходный код библиотеки на GitHub.

В статье начнём с разбора того, как AutoML помогает превратить сложный поиск инкрементального эффекта в эффективный промышленный процесс. Вспомним основы uplift-моделирования и на практических кейсах покажем, как автоматизация ускорила разработку, позволила внедрить автопереобучение в продакшн и успешно реализовать поддержку мультитритмента. Вы узнаете, в каких сценариях AUF приносит максимум пользы, с какими ограничениями можно столкнуться и как использовать библиотеку для решения задач вашего бизнеса.

Кроме прикладных кейсов, заглянем «под капот» архитектурных обновлений: от рефакторинга оптимизатора до продвинутой аналитики в стиле профи. Мы разберем новые режимы обучения, кастомизацию и инструменты глубокого анализа моделей, такие как оценка чувствительности сегментов и сравнение с моделями склонности. В завершение поделимся результатами масштабного рефакторинга кода, который сделал систему стабильнее, и расскажем, как наше видение «умных и свободных» моделей воплощается в жизнь прямо сейчас

Читать далее

Как выучить Python и не разориться: 5 лучших бесплатных курсов для новичков

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели11K

Из каждого баннера кричат про зарплаты в 300к в наносекунду и предлагают взять кредит на обучение ИТ-профессиям. Но базу Python можно и нужно учить бесплатно. Синтаксис и основные алгоритмы давно лежат в открытом доступе, главная проблема — отфильтровать качественный материал от маркетингового мусора. Собрал подборку из 5 проверенных бесплатных курсов для новичков (от академичных лекций до геймифицированных квестов), где фокус сделан на знания и практику, а не на продажу платных модулей.

Читать далее

Ближайшие события

Как я сделал Variables в Airflow 3 удобнее

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели5.7K

Ровно год назад, 22 апреля, вышел Airflow 3, который сильно изменил архитектуру и UX платформы. Но одно из изменений неожиданно ухудшило повседневную работу — Variables: маленькое поле ввода, неудобный JSON и отсутствие нормального редактирования. В статье разбираю, что именно сломалось в привычном сценарии и как я решил это с помощью собственного плагина.

Читать далее

Асинхронный загрузчик видео на aiogram 3 и yt-dlp: как не положить Event Loop и прикрутить честный прогресс-бар

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели6.7K

Казалось бы, тема заезженная до состояния покрышки камаза: «сделай бота, который качает ролики». На Хабре уже лежит десяток туториалов, на GitHub — сотни форков. Но если вы хоть раз открывали такой бот в проде — вы знаете, что 90% из них падают на втором пользователе, а оставшиеся 10% честно умирают на видео длиннее 15 минут.

Я полез в органическую выдачу Google, чтобы понять, почему люди вообще ищут Telegram-ботов, а не пользуются веб-сервисами. И выдача, честно говоря, удручает.

Читать далее

Sediment Palace: локальная память для AI-агентов с моделью седиментации

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели6.6K

AI-агенты в 2025 году умеют почти всё. Одного хорошо не умеют — помнить. Я взял две чужие идеи и склеил их.

Читать далее

LLM как декодер в ASR: опыт адаптации SOTA архитектуры для спонтанной русскоязычной речи

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели6.4K

Привет, Хабр! Меня зовут Коля, я разработчик машинного обучения в команде речевых технологий Контура. Мы разрабатываем собственную систему распознавания речи (ASR), которая ежедневно переваривает миллионы звонков и записей видеоконференций, чтобы потом использовать их для речевой аналитики качества коммуникаций с клиентами и для создания протоколов и резюме встреч в Контур.Толке.

Мы постоянно работаем над тем, чтобы дать пользователям лучшее качество и опыт взаимодействия с нашими продуктами: борьба уже давно идет за десятые доли процента WER (Word Error Rate) – особенно сложные и трудные для распознавания случаи.

В конце прошлого года Nvidia изрядно встряхнула Open Source комьюнити, выкатив серию новеньких моделей распознавания речи. Одна из них нам особенно приглянулась: Canary-Qwen-2.5B на архитектуре SALM (Speech Augmented Language Model), установившая новый рекорд по качеству в HuggingFace OpenASR, благодаря использованию гибридного подхода, совмещающего речевой энкодер и LLM в своей работе.

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

Читать далее

Как я научил торгового бота рисовать свечные графики и перестал спамить текстом

Уровень сложностиСредний
Время на прочтение16 мин
Охват и читатели6.6K

Привет, Хабр! Меня зовут Николай Пискунов, я руководитель направления Big Data и эксперт курса Cloud DevSecOps по безопасной разработке от Академии вАЙТИ Beeline Cloud. Сегодня расскажу о разработке системы, которая строит свечные графики для трейдинг-бота на Python. Это полноценный инструмент анализа, который помогает принимать торговые решения в реальном времени. Важная часть этой системы — быстрая связь с пользователем через бота в Телеграме. 

Читать далее

Python Executor: как мы встроили Python в автоматизации «Первой Формы», не пуская его в ядро

Время на прочтение7 мин
Охват и читатели7.3K

Автоматизация бизнес-процессов заметно изменилась за последние годы. Если раньше во многих сценариях хватало маршрутизации, правил и несложной бизнес-логики, то сейчас в процессы всё чаще встраиваются более тяжёлые вычислительные задачи, например, интеграции с внешними AI-сервисами. Иными словами, автоматизация перестаёт быть только реакцией на событие и всё чаще становится вычислительным слоем внутри самого процесса. Но для того, чтобы система выдерживала нагрузку, нужен мощный язык исполнения.

В этой статье расскажем, как мы в «Первой Форме» реализовали это с помощью Python. Мы встроили его в контур платформы так, чтобы получить его сильные стороны для AI- и ресурсоёмких сценариев обработки данных, но не исполнять произвольный Python-код внутри бэкенда. Для нас это была не задача в духе «поддержать ещё один язык», мы хотели расширить платформу, не размывая границы безопасности и устойчивости ядра. 

Читать далее

Запускаем Pine Script на биржах без TradingView

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели5.6K

🌲 Запускаем Pine Script на данных из Excel

Региональных фондовых бирж развивающихся рынков нет на TradingView. Ни данных, ни торговли.В статье показан пример, как запустить Pine Script на собственных данных сохраненных локально веб скрапингом

Читать далее