Обновить
1024K+

Программирование *

Искусство создания компьютерных программ

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

Что изучить в начале осени: 34 открытых урока для тех, кто развивает карьеру в IT

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

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

Собрали 34 открытых урока по AI, разработке, DevOps, QA, аналитике и управлению на конец августа и первую половину сентября.

Смотреть подборку

Аналитика в Postbox: от одной базы данных до YDB Transfer

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

Привет, Хабр! Меня зовут Дмитрий Наумов, я работаю в команде Yandex Cloud Postbox. Это API для надёжной доставки писем. В статье поделюсь опытом, как мы развивали аналитику в нашем сервисе: на старте она спокойно уживалась в общей транзакционной СУБД с операционными данными, но с ростом нагрузки всё изменилось. Данные переместили в отдельное хранилище, и нужно было выбрать способ трансфера данных между операционной базой и этим хранилищем.

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

Читать далее

Две аннотации Hibernate, которые вдвое сократили время обработки JSON

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

Всем привет! На связи Михаил Поливаха, технический лидер проекта Axelix.

На известном в узких кругах блоге Hibernate (он же in-relation-to) пару месяцев назад вышла статья, которая, как мне кажется, будет полезной для большого количества разработчиков, кто пишет Java backend системы с использованием Hibernate.

На основании своего эмпирического опыта могу сказать, что многие в той или иной степени работают с Json или подобными структурами в БД вместе с Hibernate. Если вы работали или работаете с такими системами, то та проблема, с которой столкнулись парни будет стоит вашего внмиания.

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

Приятного чтения!

Читать далее

Как устроена архитектура ИИ-платформы: гайд для новичков

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

Привет, Хабр! На связи команда Рег.облака. Современные ИИ-платформы — это сложные распределенные системы, где за одним пользовательским запросом стоит целый конвейер микросервисов, GPU-кластеров и систем хранения. Но с точки зрения разработчика взаимодействие обычно выглядит просто: отправил запрос в API или через веб-интерфейс и получил ответ.

Что происходит между этими двумя точками? Как запрос авторизуется, маршрутизируется, попадает на инференс, обрабатывает контекст и возвращается обратно? В этой статье разберем архитектуру ИИ-платформы для тех, кто хочет заглянуть под капот, но не имеет бэкграунда в ML-инфраструктуре.

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

Навигация по тексту:

Читать далее

Fire‑and‑forget в Go: практический гайд по управляемым фоновым задачам

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

У go func() есть неприятная особенность: вместе с результатом выполнения легко потерять контроль над самой задачей. Разберём, как пропускать такую работу через единый пул воркеров, отвязывать её от контекста запроса и при этом гарантированно дождаться уже принятых задач при штатной остановке сервиса.

Разобрать решение

Разработка на Авроре под Аврору: разворачиваем Coder в облаке и пишем плагин для VS Code

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

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

Я мог бы закончить историю на этом, но идея мобильной разработки не давала мне покоя: получается, имея под рукой планшет с большим экраном, вы можете организовать полноценный рабочий процесс. Правда, инструменты для сборки, тестирования и работы с SDK обычно выпускают только для ПК. А можно ли скомпилировать код прямо на смартфоне? Можно — например, в ALT Mobile или «Авроре ОС», если установить дополнительные пакеты.

В статье я подробно расскажу, как развернуть облачную среду разработки, привязать ее к планшету и написать собственный плагин для автоматизации сборки под «Аврору ОС».

Как это сделать?

Пишем свой PHP-экстеншен на Rust

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

Когда речь заходит о разработке PHP-расширений, многие сразу представляют C, Zend API и сложную систему сборки. Но сегодня есть более удобный путь. С помощью ext-php-rs можно создавать расширения на Rust, используя привычные инструменты Cargo и практически не сталкиваясь с низкоуровневыми деталями.

В этой статье мы с нуля напишем собственный PHP-экстеншен, подключим его к PHP, разберём, как ext-php-rs связывает Rust с Zend API, а затем посмотрим, в каких задачах такой подход действительно даёт прирост производительности, а где этого ждать не стоит.

Читать далее

Проблема N+1 запроса: виноват не ORM, а ваш код

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

У меня есть несколько статей, в которых я рассказываю о различных особенностях работы коллекций в .NET, например эта и эта. Мы с вами разбирали, как лучше искать в коллекциях, спорили о преимуществах Any и Count в борьбе за тысячные доли секунды. Но все усилия, затраченные на эти микрооптимизации, могут пойти крахом из-за одного неудачного запроса в базу или другой сервис.

На этот раз я предлагаю рассмотреть проблему N+1 запроса.

Читать далее

Школьный класс — не модель общества. Это случайный набор ровесников с соседних улиц

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

Школьный класс принято считать моделью общества. На деле это случайный набор людей одного года рождения, живущих в одном микрорайоне, и больше их не объединяет ничего — во взрослой жизни вы никогда не окажетесь в такой группе. Плюс из класса нельзя выйти. Разбираю главный аргумент против семейного обучения по 578 комментариям к первой статье: что такое социализация по определению, чего боятся спорящие и что об этом говорят исследования.

Читать далее

Как я, учась в айти, работаю на 15-тонном советском станке и автоматизирую его без CAM‑системы и комментариев

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

Мне 19. Днем я очный студент айтишник, а в остальное время — единственный человек в цеху, кто работает на 15-тонном советском горизонтально‑фрезерном станке ИР-500. Мозги у этого монстра под стать эпохе: древняя корейская стойка Fanuc 0-M 1982 года.

Сам ИР-500 — настоящий танк. По оси Z ездит сразу вся огромная чугунная коробка на рельсах.. А когда эта масса разгоняется, пол вибрирует, но сам станок стоит намертво. Он воспринимает дикие нагрузки на минимальных оборотах — как легкую прогулку.

Но есть проблема, передачу файлов через кабель он не поддерживает, CAM‑систему не подключить..
Для меня, привыкшего к созданию 3D‑моделей и визуализации всех траекторий в Fusion360 — было непросто адаптироваться.

Мои первые самостоятельные дни были очень болезненными, хотелось просто уволиться, ведь малейшая ошибка и невнимательность здесь — это не упавший сервер, а разнесенная фреза и тиски. Поэтому каждый первый запуск новой программы — это паранойя. Рука на остановке подачи, покадровый режим, минимальные перемещения и подача. И только когда фреза пускала стружку, я выдыхал и выкручивал подачу на максимум.

Пока детали требовали обработки в пару проходов, было все отлично. Но потом...

Началось спагетти из g‑кода. Пошли заказы на глубокое торцевание (или более сложные траектории, но сегодня не об этом), где можно потратить пол смены на написание программы.

Читать далее

FlautGuard: как мы построили многоуровневую защиту LLM от prompt injection и утечек данных

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

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

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

Отсюда появляются prompt injection, попытки извлечения системных инструкций, обход ограничений и утечки информации через ответы модели.

С этой проблемой мы столкнулись при разработке FlautFast — нашей LLM внутри инфраструктуры FlautCompany.

В отделе FlautSecurity мы решили не пытаться закрыть все эти проблемы одним классификатором. Так появился FlautGuard — защитный слой между пользователем и моделью.

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

Читать далее

Структуры данных на практике. Глава 20: Исследование бенчмарков

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

«Существуют три вида лжи: ложь, наглая ложь и бенчмарки», — почти Марк Твен

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

Проблема заключалась не в том, что процессор был медленным; на самом деле, он был вполне хорош. Проблема заключалась в бенчмарке Dhrystone, который компания выбрала для демонстрации. Конкурент подробно показал, как современные компиляторы могут оптимизировать бóльшую часть работы Dhrystone, из‑за чего его результаты становятся бессмысленными. Хуже того: конкурент продемонстрировал это на реальных нагрузках, с которыми работают заказчики, и все преимущества в производительности процессора испарились.

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

Читать далее

От чата вместо форм до разработки без конфигуратора: что меняется в экосистеме 1С

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

ИИ в разработке постепенно перестает быть отдельной экспериментальной темой. Его встраивают в IDE, подключают к корпоративным системам через MCP, используют для создания приложений и подготовки кода. Одновременно появляются новые среды, плагины и подходы к архитектуре данных.

Этим изменениям посвящена секция «Идеи и тренды в разработке» на INFOSTART TECH EVENT 2026, которая пройдет 8–10 октября в Санкт-Петербурге. В программу уже вошли восемь докладов - от рабочих прототипов до технологий, которые пока находятся на стадии активных экспериментов....

Читать далее

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

Harness engineering: контроль правил агента и где ломается

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

Вы дописали правило в .cursor/rules. Агент его прочитал, согласился и через два хода сделал ровно то, что правило запрещает. Иногда с извинением: да, правило было, я его нарушил.

Другой день, другой проект: правило на месте, но в контекст оно не попало вообще, и узнать об этом было неоткуда. Третий случай: попало всё сразу, вместе с вложенными AGENTS.md со всего дерева проекта, и половина окна ушла на инструкции ещё до первой строки кода.

Причины у этих трёх случаев разные: в первом правило конкурирует с задачей внутри промпта, во втором не доходит до модели, в третьем доходит вместе с сотней чужих. Общее одно: вы создали файл в папке проекта, открытой в Cursor, и считаете, что задали агенту дисциплину.

Читать далее

Как и сколько зарабатывают в Базе знаний Инфостарт: кейсы реальных авторов

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

Авторы Базы знаний делятся историями заработка на портале «Инфостарт». Мы опросили нескольких разработчиков, которые публикуют свои решения и получают за них стартмани. Сколько им удалось заработать, какие решения принесли наибольший доход и сколько времени они тратят на работу с площадкой – рассказываем в этой статье.

Читать далее

Провожу тест‑драйв GigaChat Audio в рабочих условиях

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

Привет, Хабр! Сбер недавно выкатил новую модель, GigaChat Audio. Сейчас я надиктовываю модели этот текст голосом — финальный штрих в истории о том, как я проводил её тест‑драйв. 

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

Меня зовут Данила @pushnoydan, я мидл‑разработчик и занимаюсь бэкендом микросервисов. А параллельно — большой любитель ИИ‑моделей: в свободное время копаюсь в них, чтобы лучше понимать возможности свежих релизов, стараюсь применять на работе, чтобы упростить рутинные задачи. 

GigaChat Audio — audio‑native LLM. В течение дня я поручал ей разбирать голосовые коммуникации от коллег, составлять саммари по аудиозаписям и выводить ключевой контекст из записей различных встреч. Давайте посмотрим, как модель показала на реальных задачах.

Читать далее

Масштабирование от 100 до 100 000+ автотестов: архитектура и инструменты

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

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

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

Читать далее

Учим ИИ готовить датасеты для BI-конструктора Битрикс24

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

Делаем приложение, которое готовит расчётные наборы данных для нативного BI-конструктора Битрикс24.

Пользователь описывает нужные показатели обычной фразой, приложение через ИИ-помощника собирает набор и публикует датасет в «Рабочее место аналитика». Аналитику остаётся один раз собрать по нему график, выбрав нужные поля и способы визуализации.

Читать далее

Двадцать третий пуш в 02:40: как MFA-усталость выглядит в логах и почему number matching реально помогает

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

Атакующий уже знает логин и пароль — купил, подобрал по утечке, вытащил стилером с домашнего ноутбука. Второй фактор — пуш в приложении с кнопками «Одобрить» и «Отклонить». И вот он просто начинает логиниться. Раз за разом. Телефон жертвы звенит в двадцать третий раз в 02:40, человек спросонок жмёт зелёную кнопку — не потому что глупый, а потому что это самый быстрый известный ему способ прекратить вибрацию. Всё, второй фактор пройден.

Так вынесли Uber в сентябре 2022-го — там пушам ещё помогло сообщение в мессенджере от «айтишника»: мол, одобрите, чтобы это прекратилось. Примерно так же заходили в Cisco несколькими месяцами раньше.

Читать далее

Два сервера дома: аварийная инфраструктура на списанном железе

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

У меня два физических сервера на списанном железе — Xeon E5 и старый IBM, суммарно 112 потоков и 754 гигабайта памяти. На них 55 виртуальных машин, и на этом живёт онлайн-школа, платформа с курсами, мессенджер, игровой движок и майнкрафт-серверы для учеников. При этом я не девопс и не системный администратор. Разбираю технически: как поделены машины, как устроена репликация баз между площадками, что происходит при падении основной и какие вещи я сделал неправильно.

Читать далее