Обновить

Проектирование микросервисов на Go: типичные сложности и лучшие практики

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

Баланс между производительностью, читаемостью и поддерживаемостью — ключевая задача при разработке микросервисов на Go. На практике всё сложнее из-за неочевидных факторов: от влияния частоты вызовов GC на время отклика до последствий избыточной вложенности в контрактах API. Если не учесть эти нюансы, даже грамотно спроектированный сервис может просаживаться по RPS (requests per second) — или его может быть сложно обновлять и дорабатывать.

Меня зовут Артём Кущ. Я Go-разработчик в команде VK Видео. В статье поделюсь подходами к оптимизации микросервисов и расскажу, как балансировать между скоростью и простотой.

Читать далее

Технологии в основе VK Видео: от загрузки файла до кадра на экране зрителя

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

В 2025 году платформа VK Видео стала лидером в России по ежедневной и ежемесячной аудитории. За этим результатом стоит не только рост числа авторов и объёма контента. В его основе системное развитие технологий: мы последовательно масштабируем инфраструктуру, совершенствуем пайплайны обработки видео и инвестируем силы в стабильность воспроизведения на всех пользовательских устройствах и при любых условиях сети. Это постоянная инженерная работа, направленная на предсказуемое и стабильное качество сервиса при быстрорастущей нагрузке. 

Меня зовут Алексей Шпагин, я руководитель разработки бэкенда видеоплатформы VK. В статье расскажу о технологиях, лежащих в основе VK Видео, и жизненном цикле контента на платформе: от загрузки и обработки до доставки зрителям.

Загляни под капот VK Видео

Как мы измеряем качество в VK Видео

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

Привет, Хабр. Меня зовут Павел Муханов. Я руководитель лаборатории качества видеоплатформы VK.

ВКонтакте, ОК, VK Клипы, VK Видео и другие сервисы VK, предоставляющие возможность просмотра видео, используют в качестве core-технологии видеоплатформу VK. Она объединяет видеохостинг, стриминг и облачное хранилище и предоставляет аудитории бесшовный доступ к огромной библиотеке контента. Чтобы гарантировать стабильную работу видеоплатформы — предсказуемое качество видео и корректную работу плеера, — мы в лаборатории качества внимательно следим за метриками.

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

Читать далее

Со скоростью кометы: ускоряем Spark без переписывания кода

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

Привет, Хабр! Меня зовут Лев Маковеев. Я младший инженер по обработке данных в компании «Криптонит». В этой статье хочу поделиться с вами результатами небольшого исследования, в ходе которого мы протестировали ускоритель запросов Apache DataFusion Comet и пришли к довольно впечатляющим результатам. Забегая вперёд, отмечу, что в отдельных тестах ускорение было более чем десятикратным!

Читать далее

API 1С «на стероидах»: как «подружить» HTTP-сервисы со Swagger

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

Мой коллега рассказывает о практическом способе интеграции HTTP-сервисов 1С со Swagger через расширение swagger-1С, позволяющим автоматически генерировать живую интерактивную документацию API без ручного описания JSON-схем.

Введение. Зачем это вообще нужно (и почему все статьи — не про то)

Реальная ситуация из прошлого. В чат с интегратором падает сообщение: «А какой формат даты вы принимаете? Структура JSON есть? Можно пример?» И вы в десятый раз скриншотите свою тестовую обработку или скидываете ссылку на устаревший Word-файлик, который уже никто не обновлял.

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

В мире за пределами 1С такая проблема решена давно и элегантно. Там есть Swagger (он же OpenAPI) — стандарт описания REST API, который понимают все: от фронтендеров до тестировщиков и генераторов клиентского кода.

В 1С же с этим — беда. Из коробки — ничего. Типовые статьи в интернете либо предлагают с нуля писать JSON-схемы руками (спойлер: никто не будет), либо ограничиваются абстрактными «создайте HTTP-сервис и опишите его в комментариях», умалчивая о граблях, на которых вы гарантированно споткнетесь.

А грабли эти увесистые. Например, тот самый CORS, который заставит вас проклясть тот день, когда вы решили подружить браузер с 1С. Или SetHandler 1С-application, молча сбрасывающий ваши заголовки. Или несоответствие типов, когда Swagger показывает одно, а 1С ждет совсем другое.

Читать далее

Ещё один множительный прибор, связанный с теоремой Слонимского (который я «восстановил», не видя его)

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

На Хабре была опубликована статья [1], в которой описывался прибор для умножения многозначного числа сразу на все множители от 2 до 9 – так называемые «бруски Иофе», предложенные в 1881 году Гиршем Залмановичем Иофе. В статье говорилось, что это был один из двух вычислительных приборов, в основе устройства и работы которых лежит теорема Слонимского. Сразу же замечу, что если быть точным, то речь должна идти не о теореме Слонимского, а о следствии из неё – так называемой «полной таблице Слонимского» (о ней – ниже).

Мне стало известно, что в Музее науки в Лондоне имеется экспонат «Filipowski's calculating rods (56)»/«Счётные стержни Филиповского (56)» (рис. 1) (https://collection.sciencemuseumgroup.org.uk/objects/co60566/filipowskis-calculating-rods-56),

который, как выяснилось, также связан с указанной таблицей:

 

Читать далее

Post-PHP эра: куда движется веб-разработка?

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

Привет, хабровчане! Я Алиса — тимлид в e-commerce-агентстве KISLOROD, по базовой профессии — сеньор PHP-разработчик с десятилетним стажем. И да, спойлер: PHP не только жив, он бодро бегает марафоны.

По данным W3Techs, PHP работает на более чем 76% серверов, где известен язык бэкенда. Последние релизы стабильно приносят +20–25% производительности на версию — на фоне вечного рефрена «PHP умер». Удобно хоронить то, чьи обновления не открывал с 2012-го, верно? Давайте разбираться.

Читать далее

Дизайн в 2026: скорость без смысла не работает. Взгляд дизайн-лидов крупных брендов [Сгенерировано]

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

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

Чтобы не ограничиваться личным мнением, мы собрали комментарии дизайн-лидов из крупных российских компаний — финтеха, e-Com, экосистемных сервисов. Их ответы показывают: сегодня дизайн — это роль в бизнесе, архитектура продукта и работа с пользовательским восприятием. Разберемся, как AI встроился в практику и какие задачи по-прежнему остаются за человеком.

Читать далее

Защита от SYN-flood: теория, практика и где искать подвох

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

Провайдер Panix в Нью‑Йорке внедрил систему блокировки спама по «чёрному списку» хостов, после чего стал мишенью затяжной SYN‑flood DDoS‑атаки, начавшейся 6 сентября 1996 года и на несколько дней фактически парализовавшей его почтовые, веб-серверы и серверы новостей, а также системы логина и DNS. Эта атака является одной из первых крупных DDoS-атак в истории.

SYN-flood по-прежнему остаётся одним из самых популярных инструментов в арсенале злоумышленников. Согласно отчёту Cloudflare за Q2 2025, этот вектор атак составляет 27% всех DDoS-атак на 3 и 4 уровнях, уверенно занимая «почётное» второе место. В таких условиях надёжная защита от SYN-flood критически важна для любого сервиса.

Меня зовут Лейли, я инженер по информационной безопасности в Ozon Tech, и сегодня расскажу о том, как мы внедряли и контролировали самый простой механизм защиты от SYN-flood и о подводных камнях.

Читать далее

Prime Target — разбираем сериал «Опасные числа» вместе с криптографами

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

Теме криптографии посвящён сериал Prime Target (в русской локализации называется «Опасные числа»). Он включает в себя множество математических и криптографических отсылок, которые обогащают его сюжет и подчёркивают интеллектуальные вызовы, стоящие перед героями. В этой статье вместе с настоящими криптографами мы разберём, какие атрибуты были использованы в сериале, и что из них похоже на правду.

 — Коллеги, пожалуйста, представьтесь нашим читателям.

— Иван Чижов, заместитель руководителя лаборатории криптографии по научной работе компании «Криптонит».

— Илья Герасимов. Я аспирант кафедры информационной безопасности ВМК МГУ и работаю специалистом-исследователем в лаборатории криптографии «Криптонита».

 — Интересно! Главный герой сериала — тоже аспирант.

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

 — В этом есть какой-то смысл?

— Да. Этим занимается теория чисел. Математика отражает законы природы и выявляет закономерности. Например, у главного героя на стене висит вырезка из газеты с фотографией раковины моллюска и заголовком «Primes of the Past».

Читать далее

Умножение матриц: пример использования расширения ARM SME2 в Apple M4 Pro

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

В конце 2020 года я купил MacBook Pro 13 на процессоре Apple M1, очень хотелось испытать процессоры на архитектуре ARM. Почти сразу на чипе Apple M1 был найден вычислительный блок для матричных операций Apple AMX. Для Apple AMX не было документации, он не использовался в Apple Accelerate, но несколько энтузиастов занимались реверс-инжинирингом и анализом производительности ("https://github.com/corsix/amx"). 

В 2024 году вышли компьютеры на базе семейства процессоров Apple M4, у которых блок AMX задействован для выполнения инструкций из Scalable Matrix Extension 2 (сайт ARM недоступен в РФ) (ARM SME2). 

В статье рассмотрим использование расширения ARM SME2 на примере умножения заполненных матриц. Увидим, как выжать максимум из процессора и получить прирост производительности в десятки раз.

Читать далее

Тест для «сеньора»: в каком типе данных хранить номер паспорта?

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

Простой вопрос, который разделяет инженеров и «операторов фреймворков»

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

Читать далее

Как мы научили ИИ подбирать мебель по архитектурным чертежам [Сгенерировано]

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

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

Мы нашли, как автоматизировать подбор мебели по архитектурным чертежам. В этой статье мы рассказали, как построили AI-систему с несколькими моделями и Gemini во главе, а также семантическим поиском по каталогу. Расскажем, как нам удалось достичь точности рекомендаций в 87%.

Читать далее

Первые 100 дней тимлида: как стабилизировать команду, внедрить ритуалы, оценку задач и правильное делегирование

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

Меня зовут Александр Бунтов. Я разработчик, который однажды внезапно стал тимлидом: сначала пришел как старший/ведущий инженер, через несколько месяцев прежний лид ушел — и я взял роль на себя. Сейчас работаю в Ви.Tech — IT‑дочке ВсеИнструменты.ру

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

Будет полезно новым тимлидам и сеньорам перед промо. Если у вас сейчас ощущение «все горит, люди устают, планирование не работает» — тут для вас.

Читать далее

Как мы собрали фронт без фронтендера за неделю: AI-ассистент + дизайн-система

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

У нас случилась классика: бэкенд уже отдает данные, бизнес ждет экран «вчера», а фронтендера в команде нет и ближайшие фронты заняты.

Мы рискнули и собрали MVP‑интерфейс за неделю — без выделенного фронта, но на корпоративном стеке (Vue/TypeScript) и с дизайн‑системой.

Это не история «AI все сделал». Это история про то, как правила + дизайн‑система + ревью как для джуна могут делать из AI‑ассистента нормальный инструмент, а не генератор мусора.

Читать далее

LLM — не один большой «мозг», а команда ролей. Как собрать AI-workflow в Claude Code и уйти от вайб-коддинга

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

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

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

В этой статье я покажу, как относиться к LLM не как к "герою-одиночке", а как к команде ролей (аналитик, ресерчер, архитектор, разработчик, ревьюер, QA, техписатель, валидатор) и собрать полноценный AI-Driven Development (AIDD) процесс с понятными договорами и quality-гейтами на каждом шаге.

Это практический how-to: от минимальной версии до более строгого процесса с ролями, гейтами и интеграцией с CI. Все примеры - на базе Claude Code, но принципы подхода можно перенести и на другие инструменты (Cursor, Copilot, локальные агенты и т.п.).

Читать далее

Vibe Pentesting: Интегрируем HexStrike AI и OpenCode в Kali Linux

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

Всем привет! Если вы хоть раз ловили себя на мысли, что устали от рутины однотипных действий при проведении пентеста или, что после N-го часа пентеста потеряли нить атаки — эта статья для вас.

Всё чаще и чаще звучат идеи внедрения AI‑агентов в работу пентестеров, но не в виде кнопки «взломать всё», а в виде универсального помощника для автоматизации рутины и роста общей эффективности процессов.

В этой статье очень подробно разберём установку и настройку такого AI‑агента ну и, конечно же, испытаем.

Читать далее

У меня нет звука, но я должен слышать: история одной регрессии ядра

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

Что делать, если после очередного обновления Linux на старом ноутбуке намертво отвалился звук, а в логах висит зловещее CORB reset timeout и 0xFFFF? Переустановка аудио-серверов не поможет, параметры загрузчика GRUB система упорно игнорирует, а LTS-ядро больше не гарантирует стабильности. В этой статье разбираем, как спуститься в логи dmesg, понять, почему устройство «задыхается» на шине PCI, и заставить ядро заново проинициализировать аудиокарту «на горячую» с помощью sysfs и systemd.

Найти звук

Фронтенд — это REST-сервер

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

Привет. Я фронтенд-разработчик. По мнению тех, кто, по мнению некоторых, перекладывает джейсончики туда-сюда, я крашу кнопочки. Но сам я себя идентифицирую иначе: я тоже перекладываю джейсончики, и у меня всё точно так же, как у них. Даже архитектура. У меня тоже есть контроллеры, сервисы и хранилища, и я также обрабатываю запросы пользователей. Даже больше, я делаю HATEOAS, «тру» RESTful, если хотите. Давайте расскажу, как я к этому пришел.

Когда-то давно я только верстал. Накидывал разметку, добавлял классы, идентификаторы и стилизовал ЦСС-ом. И было хорошо. Потом от меня потребовали динамичности — пришлось добавить JavaScript. И было очень хорошо.

Технологии развивались, и мне хотелось пробовать новое. Я попробовал AJAX. Это было так волнительно... Я сказал бэкендерам: основную разметку жду от вас, а опции для выпадающего списка, например, отдавайте джейсоном по запросу. Они были не в восторге. «Одному HTML подавай, другому CSV, третьему ещё что-то — безобразие!» Но мы нашли компромис. Бэкэндеры сказали: «Вот вам, мол, джейсон, дальше сами как-нибудь». И назвали это REST API.

Сначала было очень круто! Мы, верстальщики, организовались. Мы стали фронтендерами! Конечно же, мы сразу побежали решать ещё нерешённые сто раз решённые задачи. Мы писали библиотеки и фреймворки — четыре миллиона штук! Да у нас даже есть библиотека с функцией для умножения чисел — lodash.multiply. Мы придумывали свои паттерны и архитектуры, например FSD. Короче, мы стали очень крутые.

Но то уже были «мы», а не я. Мне было сложно. Шутка ли, изучать по одному новому фреймворку в неделю? А ведь еще переписывать всё надо, стек-то устарел... В общем, в какой-то момент я перестал поспевать за модой и справляться со сложностью. Переходишь из одного проекта (на React) в другой (на Vue), а там всё иначе. Берешь нового разработчика в команду с опытом в React, например, а ему нужно время, чтобы вникнуть, потому что в его старой команде был другой «стейт-менеджер». Вавилон, никто друг друга не понимает.

Читать далее

ИБ для конторы разработчиков ПО

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

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

Цель статьи систематизировать ошибки и передать админам готовый материал для дальнейшей работы в своих инфраструктурах.

Надеюсь, что результаты труда будут интересны и обойдутся без неконструктивной критики.

Читать далее