Обновить

Бэкенд

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

ИИ-ревью кода в 2026 году: как оно работает и как внедрять

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

ИИ-ревью кода уже умеет находить пропущенные тесты, типовые уязвимости и спорные места в пулл-реквестах. Однако его реальная точность зависит прежде всего от контекста, который видит модель, и от того, насколько хорошо команда фильтрует шум.

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

Разобраться в ревью

Schema-driven ORM для TypeScript: @cleverbrush/knex-schema и @cleverbrush/orm

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

Статья о том, как превратить TypeScript-схему в единый источник истины для работы с базой данных: из одного определения получить типы строк, имена таблиц и колонок, типизированные запросы, связи, миграции и unit-of-work поверх Knex.

Читать далее

Контрольные суммы ИНН, ОГРН и СНИЛС: разбираем алгоритмы и пишем валидатор на Python

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

У нас есть форма, куда пользователь вводит ИНН контрагента, а мы по нему идём за данными в ЕГРЮЛ. Если заглянуть в логи этой формы, видно сколько туда прилетает мусора. ИНН из одиннадцати цифр (кто‑то добавил лишнюю), номера со срезанными ведущими нулями, ОГРН в поле для ИНН, и классика жанра — две соседние цифры переставлены местами. Каждый такой ввод это поход в чужой API, таймаут, ожидание, и в конце честное «ничего не найдено». А пользователь в этот момент уверен, что сломались мы.

Разобраться, кто сломался

30 минут против месяца. Цена идеальных процессов в разработке

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

Всем привет, меня зовут Михаил, я работаю главным экспертом в ОТП Банке.

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

В какой-то момент я сказал себе: «Стоп. Хватит. Пора уходить в компанию, где всё организовано правильно». Мне казалось, что там не будет хаоса, бессмысленных авралов и вечной гонки за дедлайнами.

Ну что могу сказать - я попал.

Только вот ожидания и реальность оказались совершенно разными.

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

Читать далее

DAO vs Repository и ORM: где заканчивается архитектура и начинается хаос

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

Всем привет! Я Дмитрий Милов, Python-разработчик компании МУЛЬТИФАКТОР в команде продукта MULTIDIRECTORY, мы разрабатываем собственную службу каталогов.

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

Почему продолжается путаница в концепциях, которые давно описаны и формализованы?

Читать далее

Делаем автоматизацию для Spotify, которая создаёт плейлисты из избранного

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

Когда-то музыку слушали на пластинках, затем на кассетах, CD-дисках, потом пришёл Winamp и mp3-плееры.

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

Или же всё-таки не достигло? Я вот, например, пользуюсь Spotify. И казалось бы, это лидер среди музыкальных стримингов, у них-то точно должно быть всё на высоте. Но мне постоянно приходят мысли, что в их приложении не хватает той или иной функции.

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

Так и я недавно сорвался, засел на выходных с Codex и начал пилить свой собственный Spotify-улучшайзер.

В этой статье расскажу, что на данный момент получается и как это облегчает мне жизнь. А также покажу, как вы можете запустить себе такую же автоматизацию локально на своём ПК или на облачной платформе.

Читать далее

Как работать на Бирже заказов Инфостарта: ответы с вебинара

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

Биржа заказов Инфостарта помогает 1С-специалистам находить задачи и работать с заказчиками напрямую. Но чтобы площадка действительно приносила заказы, важно правильно оформить профиль, внимательно читать условия, грамотно откликаться и фиксировать договоренности.

На недавно прошедшем вебинаре разобрали основные вопросы исполнителей и собрали ответы в этом материале...

Читать далее

GPU-автоскейлинг на Kubernetes с KEDA: создание внешнего скейлера

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

Если вы запускаете GPU-нагрузки (графические ускорители) на Kubernetes — vLLM, Triton, обучающие задачи или более новые стеки агентного инференса, — вы наверняка сталкивались со знакомой проблемой: стандартный автоскейлинг по-прежнему мыслит в категориях CPU и памяти, а GPU, который реально делает работу, остается невидимым. Из-за этого простаивает дорогая емкость ускорителей, растет задержка инференса и расходуется лишняя энергия — ровно там, где компании пытаются ответственно масштабировать LLM и Agentic Ops (подходы к эксплуатации Agentic-систем).

VK Cloud перевела статью автора, который хотел бы, чтобы KEDA масштабировался по сигналам, которые важны для GPU-нагрузок: утилизации, памяти, температуре и энергопотреблению. На практике это не только вопрос стоимости. Это еще и вопрос GreenOps (экологичный подход к эксплуатации с минимизацией углеродного следа): впустую потраченные GPU-циклы напрямую превращаются в потраченную энергию и более высокие выбросы категории Scope 3 (косвенные выбросы в цепочке создания стоимости).

Оказалось, что это сложнее, чем кажется. Дальше повествование идет от его лица

Читать далее

Дело о молчаливой JVM: мониторинг Spring Boot с Prometheus и Grafana. Production-нуар

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

Она умерла в воскресенье вечером, и никто не услышал ни звука. Детективная история о том, как поставить прослушку на собственное приложение: Prometheus, Grafana, Micrometer, алерты, SLO. Все улики в комплекте, демо-проект прилагается. Совпадения с вашим продакшеном не случайны.

Открыть дело

Поколение «Approve»: почему я заставил команду переписать проект, который уже работал

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

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

Отовсюду постоянно вылезают новые истории успеха. Кто-то показывает, как сократил время разработки в несколько раз. Кто-то рассказывает, что теперь пишет за день столько кода, сколько раньше писал за неделю. Иные вообще собирают полноценный продукт за выходные и искренне не понимают, почему раньше на это уходили месяцы. Честно говоря – раньше читал, но в последнее время просто игнорирую такие заголовки (почему – надеюсь станет понятно из статьи).

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

И мы, с моей командой проходим через те же изменения, что и вся индустрия.

Понять / Найти решение

Postgresso 4 (89)

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

PostgreSQL: PostgreSQL 19 Beta 1

Официальный релиз запланировали на сентябрь/октябрь. Вот что старейшины решили выделить в описании релиза 19-й версии:

Производительность

PostgreSQL 19 усовершенствует асинхронную подсистему ввода-вывода, представленную в PostgreSQL 18: io_method=worker теперь автоматически масштабирует количество рабочих процессов ввода-вывода на основе новых параметров io_min_workers и io_max_workers.

Расширение pg_plan_advice позволяет пользователям стабилизировать и контролировать решения планировщика, а pg_stash_advice - автоматически применять рекомендации, используя идентификаторы запросов.

Autovacuum теперь может использовать параллельные рабочие процессы, которые можно настраивать с помощью нового параметра autovacuum_max_parallel_workers, а новая система оценки autovacuum помогает расставлять приоритеты таблиц при их вакуумировании. Кроме того теперь PostgreSQL помечает страницы как видимые, когда их запрашивают.

Читать далее

Интеграция ИИ уровня предприятия: встраивание LLM в бизнес-процессы крупных компаний — redb.Route.Llm 3.1.1

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

redb экосистема

В предыдущей статье я анонсировал redb.Route.Llm как 24-й транспорт redb.Route — мы делали LLM ещё одним endpoint'ом наравне с Kafka, RabbitMQ и HTTP, чтобы выкинуть отдельную «AI-инфраструктуру», стоящую рядом с интеграционной. Заодно я повесил в конец статьи «честный skip-list» — список того, что в 3.1.0 ещё не доделано: streaming, ToolCacheStore, KnowledgeStore, BatchStore, EvalRunStore, sliding-window память, sandbox-инструменты.

Из этого skip-list'а делано больше, чем я планировал. Но не это главное. Главное — что в процессе доделывания обнаружилась настоящая ценность всей затеи: LLM-транспорт оказался не очередным чат-фреймворком, а недостающим звеном в ESB, после которого «бизнес-агент в проде» перестаёт быть отдельным проектом. Эта статья — про то, как чат-демо превращается в enterprise-агентскую платформу, не переписываясь и не превращаясь в «AI-монолит сбоку».

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

Читать далее

Пишем TCP-сканер портов на Go: goroutine, timeout и CSV-отчёт

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

Недавно знакомый попросил помочь с небольшой задачей по проверке внешнего периметра сети компании. Сразу уточню: речь шла об инфраструктуре, на проверку которой было разрешение.

Под внешним периметром обычно понимают всё, что доступно из интернета: публичные IP-адреса, домены, поддомены, облачные или VPS-серверы, а также сервисы, которые слушают внешние порты.

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

Читать далее

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

Эволюция клиента для Ollama: от PostgreSQL к MongoDB

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

Привет. Меня зовут Николай Пискунов, я руководитель направления Big Data и эксперт курса Cloud DevSecOps по безопасной разработке от Академии вАЙТИ Beeline Cloud. Продолжаю цикл статей о клиенте для облачного сервиса Ollama. В первой части я рассказал, как родился этот клиент, с какими трудностями пришлось столкнуться при организации стриминга, и даже оставил пасхалку.

Читать далее

Архиватор рождённый из теории предельного сжатия вселенной

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

Bounce — быстрый архиватор на чистом Rust без внешних зависимостей. Smart Routing автоматически выбирает стратегию: LZ77 для текста, Byte-Shuffle для весов нейросетей, Huffman для бинарных данных, Raw Store для уже сжатых файлов. Результат: 450 МБ .safetensors сжимается до 71.9% при декомпрессии 1.3 ГБ/с — лучше gzip и zstd. Многопоточный pipeline, пик памяти 73.6 МБ на файл в 450 МБ, размер блока через золотое сечение. Идеально для ML CI/CD, edge-деплоя LLM и смешанных датасетов.

Читать далее

Моя жизнь с матричным принтером

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

РЕТРОКОМПЬЮТИНГ

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

Это классический матричный принтер Epson MX-80 F/T III. Он был первым принтером, который я купил, где-то в 1982 или в 1983 году, и стоил он мне гораздо больше, чем я мог себе позволить. Даже после того, как он перестал быть моим основным принтером — сначала его заменило невероятно громкое лепестковое печатающее устройство, а потом лазерный принтер Epson, который я «приобрёл» на своей должности составителя обзоров продуктов — он продолжал служить мне в нишевых ситуациях.

Его основной задачей стала печать этикеток для моей библиотеки 35-миллиметровых цветных слайдов. У меня есть база данных, созданная на основе ПО Eagle компании Emerald Bay (это своего рода более удобная версия dBase), и мне было гораздо проще печатать этикетки программно на матричном принтере, чем возиться с листами этикеток на лазерном. Именно такой функциональности мне не хватает.

Читать далее

Алиасинг памяти в C++: прошлое, настоящее, будущее

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

Привет, Хабр! Меня зовут Владислав, я разрабатываю компиляторы в YADRO. В этой статье я расскажу вам про алиасинг памяти в C++: как он развивался, к чему пришел сейчас и что комитет по стандартизации языка думает делать с алиасингом в будущем. По пути я немного затрону алиасинг в других языках, рассмотрю связанные случаи undefined behavior, а также пропозалы C++, которые, как ожидалось, проблемы с алиасингом решат.

Читать далее

10 дней спустя: как мой бот дважды умирал незаметно, а метрика релевантности мне врала

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

Полторы недели назад я выложил на Habr бота с лентой хороших новостей на sqlite-vec за $5/мес. Потом пришли живые юзеры — и началось самое интересное. Не код. Эксплуатация.

За 10 дней в проде:

🪦 Бот дважды умирал незаметно — поллил Telegram и казался живым, но не создавал ни одной новости по 4–5 дней. Один раз — OOM на загрузке модели, другой — feedparser.parse(url) без таймаута заморозил весь пайплайн.

📉 Метрика релевантности «рухнула» до 30% — и я чуть не откатил рабочую фичу. Оказалось, один юзер поставил 106 дизлайков из 228 и отравил и метрику, и приор источников. Починил, считая по уникальным юзерам — правда оказалась 42%.

🎯 Реакции 78 человек сами показали, какие источники выкинуть: tech-аудитория отвергает общие новости и любит курируемое.

Внутри — реальные логи, код фиксов (httpx-таймаут, watchdog, робастные метрики) и уроки про надёжность воркеров и доверие к цифрам.

👉 @futur_e_news_bot

Читать далее

Как начать карьеру в геймдеве: кем стать и сколько можно зарабатывать

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

Игровая индустрия — одно из IT-направлений, где многим интересно работать. Ещё в школе играл в игры — теперь хочешь их делать. Этот импульс понятен. Но геймдев часто окутан мифами: что туда берут только гениев, что зарплаты низкие, что без профильного образования нечего делать.

Давайте с мифами разберёмся. По данным исследований рынка труда 2025 года, мировой игровой рынок оценивается примерно в 200 млрд долларов и продолжает расти. Российские студии Gaijin, Wargaming, Mundfish, MyGames активно нанимают сотрудников. Зарплаты в геймдеве сопоставимы с другими IT-направлениями, а в ряде специализаций они даже выше.

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

Читать далее

Ваши тесты медленные не из-за базы данных. Я измерил. Часть 1

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

Есть устойчивое поверье: интеграционные тесты медленные, потому что ходят в настоящую базу. «Подними SQLite в памяти», «замокай репозитории», «не гоняй Postgres в CI» — стандартный набор советов. Мокать я не люблю, но крыть упрёк «настоящая база — это медленно» было нечем. Поэтому я сел, спрофилировал и померил: 3316 интеграционных тестов, прогон 30 минут. После трёх правок инфраструктуры — 109 секунд. База оказалась ни при чём, а совет «чисти базу через TRUNCATE, это быстрее DELETE» у меня работал ровно наоборот — обидно вдвойне, потому что эта рекомендация уже лежала в черновике моей следующей статьи.

Читать далее
12 ...
50