Обновить

Бэкенд

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

Мой легковесный помощник: как я создал монитор системы, который не тормозит

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

Привет, Хабр! Хочу поделиться историей создания Aether Monitor+ — простого и легкого монитора системы, который стал моим верным спутником в работе.

Читать далее

Когда сидишь в PHP, а мысли — о Python: как я случайно написал свой pprint

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

Иногда маленькие вещи случаются не потому, что ты их планировал, а потому что... ну а кто ещё это сделает? Я пару месяцев подряд писал небольшие ML-прототипы на PHP (да, знаю, иногда судьба заносит в странные места), и каждый раз сталкивался с одним и тем же раздражением: массивы печатаются так, будто пытаются скрыть правду.

Я смотрю на этот разъехавшийся print_r(), и думаю: а что, если я просто хочу увидеть аккуратную табличку? А если я хочу форматирование как у Python? А если я хочу имитировать пайторчевский tensor([...])?

Спойлер: я таки написал маленький хелпер. И чем больше я его использовал, тем больше понимал - возможно, он не только про удобство, но и про какое-то внутреннее право на ясность.

Этот хелпер - не "фреймворк", не "революция", не "супер-мегапринтер", просто очень маленькая утилитка, которая делает одну вещь и делает её хорошо.

Читать далее

Так у вас статика вольюмами маунтится! И другие весёлые приключения в поисках нового Gateway на Go

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

Всем привет! Меня зовут Герман Кравец, я больше десяти лет в IT. В МойОфис работаю руководителем группы Календаря в отделе разработки Mailion — это наша отказоустойчивая корпоративная почта для крупного бизнеса.

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

Будет немного боли, немного архитектуры и чуть-чуть магии. Если вам интересно, как решать нетривиальные задачи в продуктовой разработке, где стоит использовать готовые решения, а где всё писать вручную, или просто хочется узнать, как мы сократили простои на регрессе с 4–6 часов до пары минут, — добро пожаловать под кат!

Читать далее

Кто следит за сторожем? Безопасная архитектура Gatekeeper в Managed Kubernetes

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

Привет! Меня зовут Александр, я ведущий разработчик VK Tech в команде, которая занимается сервисом Kubernetes в нашем публичном облаке. Все чаще провайдеры отказываются от модели, где пользователь получает полный контроль над кластером и всеми управляющими компонентами, в пользу управляемых (managed) решений. В такой архитектуре вы остаетесь администратором внутри своего кластера — создаете неймспейсы, деплоите приложения, настраиваете RBAC, — но инфраструктура, control plane и системные компоненты полностью управляются провайдером и скрыты от глаз пользователя. 

В начале декабря наша команда выпустила новый сервис managed-k8s, в котором как раз реализован такой подход. Я расскажу вам про то, как выглядит наш Kubernetes с точки зрения архитектуры и каким образом Gatekeeper делает архитектуру безопасной.

Читать далее

Книга «Python для инженерных задач»

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

Приветствуем, коллеги.

Расскажем вам о нашей долгожданной новинке – «Python для инженерных задач». Эту книгу написал уважаемый Евгений Ильин @jenyay, кандидат технических наук, преподаватель Московского Авиационного Института. В основу книги легли его университетские наработки, объём более чем внушительный – 672 страницы. Тем не менее, поскольку эта книга ориентирована на самую широкую аудиторию инженеров, мы решили выпустить её в серии «Самоучитель», из которой вам также может быть известен знаменитый «Компас-3D  V 23» Анатолия Герасимова.

Читать далее

От ClickHouse к StarRocks с разделением хранения и вычислений: практический апгрейд архитектуры UBT в Trip

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

This is a hands-on case study of migrating Trip’s UBT from ClickHouse to StarRocks with storage–compute separation. By redesigning partitioning, enabling DataCache and MergeCommit, and backfilling history via SparkLoad, we reduced average query latency from 1.4 s to 203 ms, P95 to 800 ms, cut storage from 2.6 PB to 1.2 PB, and decreased node count from 50 to 40. We detail Compaction tuning, partitioned materialized views, and second‑level elastic scaling without data migration, and compare gohangout vs. Flink in reliability and operability. The article targets data engineers and architects running high‑load real‑time OLAP workloads.

Читать далее

Первый опыт интеграции веб-приложения с 1С — о чём я бы хотел знать перед стартом

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

Единственное что я знал про 1С до начала работы с ним — это очень сложный механизм, внешне напоминающий свой собственный браузер со своим собственным фреймворком, что код 1С модулей пишется на своём языке стандарта ecmascript, на кириллице — по‑русски, который после сурового frontend выглядит забавно.
И вот что ещё я теперь знаю.

Читать далее

Создаёте списки в C#? Ну тогда у вас могут быть проблемы

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

Мы все привыкли писать new List<int> { 1, 2, 3, 4 } или new int[] { 1, 2, 3, 4}, чтобы инициализировать коллекции какими-то значениями. Синтаксически это выглядит похоже, но поведение отличается, и вам следует быть осторожными, если вы заботитесь о производительности.

Читать далее

StarRocks 4.0: FlatJSON — делаем запросы к JSON столь же эффективными, как к колоночному хранению

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

Статья объясняет, как StarRocks 4.0 делает запросы к JSON почти столь же быстрыми, как к нативным столбцам. FlatJSON на этапе загрузки «колоннизирует» частые поля и задействует индексы (включая ZoneMap), словарное кодирование и Global Dictionary, а также Late Materialization. В результате логовая, e‑commerce и IoT‑аналитика работает в реальном времени без тяжёлого ETL.

Читать далее

Как в 2026 году снизить стоимость разработки интеграций

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

На связи Сергей Скирдин, технический директор ИТ-интегратора «Белый код». В этом году мы много работали над интеграциями для крупных и средних компаний. Одна из платформ, которую активно внедряем в проектах — DATAREON Platform. В процессе часто возникает потребность в автоматизации рутинных задач: генерации обработчиков, настройке коннекторов, работе с хранилищем. Расскажу, что есть сейчас для более простого и более дешевого переноса данных из 1С.

Читать далее

Выбираем архитектуру по кайдзен: на что обратить внимание

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

Выбираем архитектуру по кайдзен: на что обратить внимание

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

Предлагаю разобрать на примере подход выбора архитектуры для продукта!

Читать далее

Почему в Rust всё правильно

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

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

За свой почти 14-летний путь в ИТ я успел профессионально поработать на нескольких языках программирования: PHP, Ruby, JS/TS, также мне доводилось «потрогать» Python, Go, даже Clojure и Haskell. Каждый имеет свои недостатки: у PHP — кривая архитектура, у Ruby — медленная работа, у функциональных языков — недостаток библиотек и обучающих материалов. При разработке на них каждый раз приходится идти на уступки и выбирать между изящным синтаксисом, скоростью работы и написанием «велосипедов» на каждый чих. В Rust всё обстоит совсем иначе и вот почему.

Читать далее

Почему Я выбираю Spring Data JDBC

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

Реляционные базы данных по-прежнему остаются главным хранилищем наших данных. А значит, вопрос выбора инструмента отображения данных из БД на уровне приложения - всё так же актуален.

Долгое время я выбирал: Spring Data JPA. Уверен, что большинства из вас — тоже. Но времена меняются, и в 2025 для своих новых проектов я использую — Spring Data JDBC.

Почему? Если вам стало любопытно — добро пожаловать под кат.

Читать далее

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

Как Temporal без боли решает привычную проблему распределённой бизнес-логики

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

Меня зовут Миша, я бэкенд‑разработчик в платформе Яндекс Еды, и в этой статье я расскажу о принципах работы Temporal: почему мы его выбрали как основу нового процессинга, в чём его сильные стороны и как изменилась наша жизнь после перехода. 

Раньше для такого требовались: стейт‑машина с полудюжиной состояний, очереди и воркеры, обработчики на каждое событие и блокировки от race conditions. Теперь всё это описано в одной функции, которая вообще выглядит как псевдокод. 

Магия? Нет, Temporal. 

С тех пор как мы перенесли процессинг на Temporal, разработка существенно упростилась. Пользователь оплачивает заказ, ресторан его подтверждает и готовит, курьер забирает и привозит — ровно это и отражено в коде. Ну разве не прелесть?

Читать далее

StarRocks 4.0: Real-Time Intelligence on Lakehouse

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

StarRocks 4.0: Real‑Time Intelligence on Lakehouse. Сквозная оптимизация конвейера в реальном времени, 3–15× ускорение JSON, SQL Plan Manager, Decimal256 и поддержка Apache Iceberg для нативной Lakehouse‑аналитики.

Читать далее

Как я осознал, что не умею кодить

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

Вчера мой скрипт завис. Процессор горел на 100%. Я убил процесс.

Я Senior Developer с 10 годами опыта. Пишу на Python, знаю Java и много модных фреймворков. Но в этот момент я понял: я не умею программировать. Точнее, я умею использовать инструменты. Но я не понимаю природу вычислений.

Эта статья — о том, как одна математическая задача изменила моё понимание разработки.

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

Возможно, и тебя тоже.

Читать далее

Поиск свободных уникальных ников в Telegram

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

Для одного проекта мне понадобился короткий ник в Telegram.

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

У меня есть скрипт для проверки «зарегистрированности» ников крупными пачками.

Читать далее

LLM-клиент с MCP – дорогой и неэффективный подход в разработке

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

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

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

Давайте кратко разберем схему работы какого-то нашего приложения с официальным LLM-клиентом (например, OpenAI) + MCP:

Читать далее

Когда ошибка становится наставником: почему баги прошлого нередко полезнее любого чек-листа

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

Каждый разработчик хотя бы раз в жизни сталкивался с ситуацией, когда баг, который вроде бы уже исправлен, неожиданно возвращался в продакшен. В этой статье я расскажу о тех случаях, когда ошибки служили для меня не провалом, а очень настойчивым, но полезным учителем. Да, иногда именно они объясняют архитектуру, принцип работы систем или забытый corner case лучше самых толстых документаций. Эта статья не учит идеализму — наоборот, она про то, как ценить несовершенство.

Читать далее

context-async-sqlalchemy — лучший способ использовать sqlalchemy в async python приложении

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

Привет! Хочу рассказать о своей новой библиотеке context-async-sqlalchemy, которая помогает очень просто работать с sqlalchemy в async python приложениях. Минимум кода для простых сценариев, но и максимум свободы для сложных.

Читать далее