Обновить

Бэкенд

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

Я хотел бы знать это раньше. Очереди в Symfony

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

Привет! Меня зовут Никита Титков, я бэкенд-разработчик в Банки.ру. 

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

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

Давайте разбираться!

Читать далее

ORM это Вьетнамcкая Война Компьютерных Наук

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

Данная публикация является переводом статьи Jeff-a Atwood-а почти 20-ти летней давности. Jeff Atwood, один из фаундеров StackOverFlow, написал эту статью как некоторое резюме того, как человечество боролось с проблемой O/R Impedance Mismatch.

Я частично принимаю участие в написании разных ORM решений, например, Spring Data JDBC / R2DBC, и скоро мы вместе с Amplicode проведем online событие (оно бесплатное) по Spring Data JDBC. Будем обсуждать Spring Data JDBC, что в ней хорошо а что в ней плохо. Какие trade-off-ы она имеет.

Я решил выпустить данный перевод с целью того, чтобы напомнить людям - silver bullet-а Spring Data JDBC не придумала. Она лишь заняла конкретную позицию по ряду вопросов, из чего следуют определённые ограничения и преимущества. Их мы и обсудим.

Читать далее

Как айтишнику открыть бизнес на перепродаже железа в 2025 и не словить проблем

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

Рынок электроники в России до сих пор живёт на параллельном импорте: Минпромторг регулярно расширяет списки разрешённых позиций, а объём таких поставок оценивают в десятки миллиардов долларов в год.
На этом фоне у многих айтишников возникает соблазн «подзаработать на разнице» — возить SSD, видеокарты, ноутбуки из США/ЕС/ЕАЭС и перепродавать здесь, но в реальности между «купил дешевле — продал дороже» и живым бизнесом лежит таможня, налоги, правообладатели и куча операционного риска.

Посмотреть расчёты и риски

От Telegram-бота к AI-агенту: как собрать своего «исполнителя задач» на Python в 2025-м

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

В 2023–2024 почти каждый второй pet-проект с LLM выглядел как чатик: ты спрашиваешь — модель отвечает, иногда с RAG, иногда без. В 2025-м тренд сместился: на рынке всё чаще говорят про AI-агентов — системы, которые не просто болтают, а сами инициируют действия, ходят в API, планируют шаги и живут в продакшене как часть инфраструктуры.

В прошлых проектах я уже собирал Telegram-ботов: от простого «ресепшена» для малого бизнеса на aiogram 3.x до RAG-консультанта по железу «Кремний» на бесплатном стеке Groq + sentence-transformers. Логичный следующий шаг — научить бота не только отвечать в диалоге, но и самостоятельно выполнять задачи в фоне: следить за ценами на железо, мониторить статусы заказов или пинговать при аномалиях.

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

Собираем AI-агента для бота

Глубокое погружение в архитектуру Kafka: от простых сценариев до геокластера

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

Привет, Хабр! Меня зовут Андрей Комягин, я CTO компании STM Labs. Мы занимаемся разработкой очень больших распределённых высоконагруженных систем для различных отраслей, включая налоговое администрирование, телеком, track & trace и многие другие.

В своей работе мы широко используем open-source-решения, в том числе Apache Kafka. Этот распределённый программный брокер сейчас применяется практически во всех наших проектах, и сегодня я предлагаю заглянуть внутрь чёрного ящика, чтобы понять, как там всё внутри устроено. В своей работе мы широко используем open-source-решения, в том числе Apache Kafka. Этот распределённый программный брокер сейчас применяется практически во всех наших проектах, и сегодня я предлагаю заглянуть внутрь чёрного ящика, чтобы понять, как там всё внутри устроено.

Этот текст написан на основе моего доклада на конференции SaintHighload++ 2025 в Санкт Петербурге. Так что, если вы были там в качестве слушателя, информация не будет для вас новой. Впрочем, повтор полезного материала никогда не бывает лишним. Поехали!

Читать далее

Регулярные выражения в Python: почему ваши парсеры тормозят и как это исправить

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

Регулярные выражения часто воспринимаются как write-only код: написал и забыл, потому что прочитать это невозможно. Но настоящие проблемы начинаются не с читаемости, а с производительности. Неправильный квантификатор или использование re.findall на больших данных могут парализовать работу приложения.

Читать далее

Планируем GPU-нагрузку в Kubernetes: от стандартных механизмов до кастомных решений

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

Привет, Хабр! Меня зовут Макарий, и как Senior SRE в Yandex Cloud я не только участвовал в разработке Managed Service for Kubernetes, но и всегда любил в свободное время посмотреть, что интересного понавыпускали для «кубика». Kubernetes, как де‑факто стандарт оркестрации контейнеров, предлагает базовые механизмы для управления вычислительными ресурсами. Однако стандартный планировщик Kubernetes (kube‑scheduler) разрабатывался с учётом общих принципов балансировки нагрузки и не специализирован для уникальных особенностей рабочих GPU‑нагрузок.

Предлагаю рассмотреть весь спектр возможностей — от встроенных механизмов шедулинга K8s до специализированных планировщиков, таких как Volcano, Apache YuniKorn и KAI‑Scheduler. Проанализирую конкретные сценарии, в которых каждый из этих инструментов демонстрирует свои преимущества, и предложу рекомендации по выбору оптимального решения для ваших рабочих GPU‑нагрузок.

Читать далее

Что происходит после fn main() в Rust?

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

Привет!

Хочу вместе с вами разобрать, как же код на Rust превращается в готовый исполняемый файл. Мы пишем программу, например, fn main() { println!("Hello, Habr!"); }, компилируем, и на выходе получаем бинарник. Что происходит под капотом компилятора Rust в этот момент? Давайте аккуратненько заглянем внутрь этого таинственного процесса.

Читать далее

Как попасть в мир олимпиадного (спортивного) программирования? Спорт для ума, который меняет мышление

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

Олимпиадное программирование — это спорт для ума, который прокачивает алгоритмическое мышление, скорость и выдержку. Разбираем, с чего начать, какие навыки нужны, почему для соревнований чаще выбирают C++ и какие ресурсы помогут подготовиться школьникам, студентам и взрослым новичкам.

Хочешь попробовать интеллектуальный спорт, где за пять часов нужно решить несколько задач и обойти соперников по скорости мышления? Спортивное программирование даёт не только адреналин соревнований, но и реальный буст к учёбе, поступлению и карьере — от первых олимпиад в школе до участия в ICPC и стажировок в IT-компаниях.

Читать далее

Как я учу Kubernetes. Запуск локального Minikube, реальные ошибки и как я их решал

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

Я изучаю Kubernetes как часть практики по контейнеризации и автоматизации развертывания. Чтобы системно выстроить понимание, я веду рабочий конспект в формате статьи: фиксирую используемые команды, практические наблюдения и способы решения возникающих проблем. Моя цель — уверенно понимать, как устроен кластер изнутри, и уметь работать с ним в реальных условиях. Эта статья будет полезна тем, кто также начинает путь в Kubernetes и сталкивается с тем, что документация даёт базу, но не всегда описывает полную последовательность действий и типичные ошибки, возникающие в процессе.

Для практики я использую локальный кластер на Minikube — он позволяет экспериментировать с компонентами Kubernetes без аренды серверов или облачных инфраструктуры.

Читать далее

Laravel Copilot Workspace: как я собрал полный цикл разработки вокруг Copilot-агентов

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

Я собрал Laravel-репозиторий, в котором GitHub Copilot работает не как один «волшебный ИИ», а как команда кастомных агентов: одни оформляют ТЗ и архитектуру, другие пишут и проверяют код, третьи обновляют документацию и собирают релизы. В статье показываю, как устроен этот workspace и как его можно использовать в своих проектах.

Читать далее

FastAPI: Гайд по нормальной структуре для новичков (Часть 1. Слой домена)

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

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

Читать далее

Марсианские страсти: DOS, любовь и С++

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

У нас было 640Кб памяти, CGA-экран, 20-мегабайтовый диск и целых четыре мегагерца тактовой частоты. А еще старые пятидюймовые дискеты на 360кб. Не то чтобы это был необходимый набор для современного разработчика C++, но если уж начал коллекционировать дичь, то сложно остановиться..

Читать далее

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

Как я делал open-source проект, перевёл его на коммерческие лицензии — и это было моим самым лучшим решением

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

Меня зовут Алексей, я скорее инженер, чем разработчик. Занимался производствами, конструировал приборы и в какой-то момент решил попробовать сделать универсальный конструктор для учёта всего, что мне было нужно на производстве — материалов, заказов, процессов, планирования сроков и т.п.

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

Решение было принято под влиянием моды того времени на открытые системы: стартапы получали по 10 млн баксов под таблички без функционала, но зато с MIT-лицензиями, проводились конференции, изо всех утюгов неслось, как здорово на сопровождении все зарабатывают миллионы...

В общем, начитавшись всей этой чуши, поставили MIT, залили на GitHub, написали статью на Хабр — и... получили поток комментариев: «Ваш код — УГ» и «Всё надо переделать на Laravel».

В итоге, потратив охулиард нервных клеток и набрав 900 звездочек на GitHub, я бросил это опенсорсное занятие и поставил самые обыкновенные платные лицензии.

Что не пишут в буклетах про open source

Как мы создали деплой-инструмент для 100+ серверов на Jetpack Compose и GitLab API

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

Всем привет! Меня зовут Сергей, и я Backend Kotlin разработчик в компании занимающейся разработкой систем повышающую безопасность дорожного движения. И я расскажу, как мы с помощью Jetpack Compose и GitLab API упростили процесс деплоя на 100+ распределённых серверов, повысив при этом удобство и предсказуемость процесса.

Читать далее

Можно просто так взять и добавить поддержку проверки на Null

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

Команда Spring АйО подготовила перевод статьи о том, как JSpecify наконец превращается из «ещё одного стандарта для библиотек» в рабочую основу null-безопасности для всей Java-экосистемы. IntelliJ IDEA 2025.3 впервые согласовала свои проверки с NullAway, а Spring и JetBrains синхронизировали suppressions и поведение анализаторов. Итог — единый, предсказуемый null-анализ без сотен ложных предупреждений.

Читать далее

Эволюция Гофера: как нелепый грызун стал иконой Go

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

Каждый язык программирования мечтает о своём символе. Кто-то рисует змей, слонов, кто-то выбирает чашки кофе… Но Go пошёл по другому пути и сделал своим лицом существо, которое выглядит так, будто родилось после скрещивания морской свинки, бобра и кролика. 😅

Я Дмитрий Буров – Golang-разработчик, автор Telegram-канала Go Advocate и лидер внутреннего Go-сообщества в Lamoda Tech.  Я хотел бы изложить историю создания Гофера (Gopher'a) – от идеи до финального образа который вы сейчас привыкли видеть.

Читать далее

Как развиваться в IT и расти в скиллах

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

Современная IT-индустрия — простор для развития, роста и постоянного прокачивания навыков. Пока одни застревают на одной позиции годами, другие постепенно становятся экспертами, мидлами, тимлидами или архитектороми. Для этого нужно не только работать, а постепенно развивать hard и soft-скиллы, искать новые форматы обучения и правильно расставлять приоритеты.

Как можно расти в IT, какие навыки прокачивать и какие учебные платформы в этом помогут — рассказываем в статье.

Читать далее

Огромный гайд: продвинутые советы и хитрости для работы с Gemini CLI и другими AI CLI утилитами

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

Команда AI for Devs подготовила перевод большого гайда о скрытых возможностях и продвинутых техниках работы с Gemini CLI. Если для вас терминал — рабочий дом, то этот материал покажет, как превратить Gemini CLI в полноценного ИИ-агента, который автоматизирует рутину, подключается к внешним сервисам и расширяется под любые задачи.

Читать далее

Эксперименты с селф-хостингом и домашние лаборатории: «скандинавский» стиль, миниатюрные и тихие сетапы

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

Мы в Beeline Cloud рассказывали о сборках для желающих погрузиться в тему селф-хостинга. Рассмотрим еще несколько примечательных проектов в данной области.

Читать далее