Обновить
1024K+

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

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

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

Как мы создали внутреннего ИИ-помощника на базе RAG и перестали искать ответы по корпоративной Wiki

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

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

Как решили эту проблему: когда большие языковые модели стали рабочим инструментом, мы объединили корпоративные знания с возможностями LLM. Так появился Юджин — AI-ассистент, который понимает смысл запроса, а не просто ищет совпадения по словам.

Меня зовут Илья, я директор департамента разработки ЮMoney. Расскажу, почему отказались от готовых решений и как построили RAG-платформу для корпоративных знаний. Материал будет полезен архитекторам, AI-инженерам и всем, кто внедряет корпоративные LLM-решения.

Читать далее

В Java нет универсального типа для денег

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

double быстрый, но хранит десятичные числа как двоичные приближения: 0.1 + 0.2 дает 0.30000000000000004. BigDecimal точен в десятичной арифметике, но дороже по памяти и CPU.

Выбор зависит от задачи: для метрик и ML хватит double с допуском, для налогов и счетов нужен BigDecimal с явным RoundingMode, для низкой latency - fixed-point на long.

Ошибка не в double или BigDecimal, а в выборе без понимания точности, округления и нагрузки. Подробнее - в новом переводе от команды Spring АйО.

Читать далее

PHP 8.6: дата релиза, предстоящие возможности и статус RFC

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

Уже много лет PHP выпускает мажорные версии примерно в конце ноября. PHP 8.5 вышел 20 ноября 2025 года, а PHP 8.4.0 — в конце ноября 2024 года. Если проект сохранит тот же ритм, PHP 8.6 с наибольшей вероятностью выйдет в третью неделю ноября 2026 года. Разумно ожидать релиз в четверг (как и у последних мажорных версий), так что ориентируйтесь примерно на 19 ноября 2026 года или 26 ноября 2026 года, а точная дата будет зависеть от того, сколько потребуется RC.

Читать далее

Flappy Bird: делаем игру сложнее и добавляем автопилот на чистой математике

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

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

Читать далее

Почему ИИ не снимает ответственность с разработчика: что изучать, чтобы оставаться актуальным специалистом

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

Привет, Хабр! Меня зовут Илья Благородов, я 30 лет в разработке, в том числе — выступаю экспертом в онлайн-магистратуре «Фронтенд-, бэкенд-разработка и ИИ-решения» ИТМО в партнёрстве с Яндекс Практикумом. В этой статье я хочу поговорить о том, как я использую ИИ в разработке и почему, несмотря на это, больше программирую. А ещё — чем IDE отличается от ИИ и почему ИИ не заменит хороших специалистов.

Читать далее

Рендеринг миллионов динамических связей: O(1) вместо O(N²) (но это не точно)

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

Привет, Хабр!

В предыдущей публикации про рендеринг космического окружения в игре The 13th Sign, я обещал рассказать про то, как мы рисуем частицами персонажей. Задача уже решена и статья скоро будет, но в процессе разработки я наткнулся на кое-что не менее интересное. Под катом, конечно же, трюк – бесплатных пирожных в математике не бывает.

Читать далее

Умная шина: почему мы не стали писать ещё один ESB

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

Привет, Хабр. Меня зовут Виктор Овчинников, я руковожу разработкой интеграционной платформы Digital Q.Integration в компании Диасофт.

Про то, как интеграционный слой убивает ИИ-проекты, я уже писал здесь и здесь. Про историю появления платформы — тридцать лет проектной боли и зоопарк западных ESB написал Дмитрий Гаврин в отдельной статье. Рекомендую прочитать, если не читали.

Сегодня разберу технику. Что именно сидит под капотом платформы, какие инструменты мы выбрали и почему, где это работает хорошо, а где ломается.

Почему не классический ESB

Коротко, потому что Дмитрий уже написал развёрнуто.

Классическая ESB — это монолитное ядро. Масштабирование только вертикальное. И при падении падает всё. Но самое болезненное для эксплуатации это то, что со временем шина становится местом, куда стекается вся прикладная логика. Через несколько лет она знает о бизнесе компании больше, чем любая из систем, которые к ней подключены. Разобраться в этом — отдельная задача. Это то нас и подтолкнуло к собственному подходу.

Мы сформулировали для себя так: возьмём лучшее из point-to-point и из ESB. Независимые сервисы — без централизованной бизнес-логики. Общий транспорт, общий мониторинг, общий инструментарий — как в ESB.

Концепция называется «умные сервисы и надёжные каналы».

Архитектура: каждая система — отдельный микросервис

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

Читать далее

Асинхронность NIO и Kotlin — а есть ли связь?

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

Асинхронность NIO и асинхронность Kotlin: попробуем разобраться какие идеи заложены и как совместно использовать то и другое.

А есть ли связь?

Лучшие нейросети для картинок в 2026. Сравнение Midjourney, Qwen, FLUX, Nano Banana, GPT и Grok на одних промптах

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

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

Сегодняшние участники:

Midjourney (v7) | Qwen Image 2 Pro

FLUX 2 Max | Nano Banana Pro

GPT Image 2 | Grok Imagine (режим image quality)

У нас было: 6 моделей для генерации, 6 сценариев использвования, для всех моделей одинаковой промт и 4 критерия для оценки результат.

Победитель оказался неожиданным.

Читать далее

ChatGPT -> Codex CLI: как перенести контекст диалога в локальную сессию

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

Обсуждение архитектуры или бага часто начинается в ChatGPT, а реализация продолжается локально в Codex CLI. Рассказываю, как я сделал небольшую CLI-утилиту, которая переносит расшаренный ChatGPT-диалог в локальную сессию Codex, и почему для этого оказалось недостаточно просто записать JSONL-файл.

Читать далее

AI‑агенты в проде: 6 архитектурных ошибок, из‑за которых они не доживают до запуска

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

На демо AI‑агент может выглядеть надёжным: вызвать инструменты, собрать ответ и отчитаться об успехе. Но в продакшене быстро всплывают пустые ответы, петли, потеря контекста, ограничения бюджета и проблемы с правами.

Разберём шесть архитектурных ошибок, из‑за которых агент работает в тестовом сценарии, но ломается в реальной системе.

Читать далее

Структуры данных на практике. Глава 18: Очереди драйверов устройств

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

Наш сетевой драйвер терял пакеты. Не время от времени, а постоянно. На пропускной способности линии с 64-байтными пакетами мы теряли 31% всего трафика.

В качестве оборудования использовался Ethernet-контроллер на 1 Гбит/с на SoC RISC-V. В спецификациях говорилось, что он может справляться со скоростью проводного трафика. Движок DMA работал корректно. Обработчик прерываний срабатывал вовремя. Тем не менее, пакеты исчезали.

Я начал с очевидного подозреваемого: очереди получения. Реализация выглядела вполне логично — простой связанный список с указателями на голову и хвост. Под нагрузкой (64-байтные пакеты на пропускной способности линии) драйвер терял 31% пакетов! При профилировании обнаружилась причина проблемы: производительность убивали связанный список и спин-блокировки.

Я переписал драйвер, использовав кольцевой буфер без блокировок. Результаты: потеря 31% пакетов превратилась в 0,12% — улучшение в 258 раз!

В этой главе мы поговорим о структуре очередей для драйверов устройств.

Читать далее

Как стримить данные в ASP.NET и как их принять

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

Недавно мне попалась отличная статья про IAsyncEnumerable и стриминг данных. В ней у автора упал прод, который пытался выдать 500 000 записей разом и упал на вызове ToListAsync() с OOM при 8 ГБ RAM. Далее в статье описывается, как все это стримить с помощью IAsyncEnumerable с примерами кода. В целом после прочтения статьи может сложиться впечатление, что все свои ToListAsync() срочно нужно убрать и заменить на стриминг.

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

Читать далее

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

Видео и презентации со второго митапа Devhands AI Club

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

Порезали и собрали для вашего удобства все материалы блиц-докладов со второго митапа сообщества Devhands AI Club. У нас было 6 мини-докладов, по 7 мин на доклад), 2 от фаундеров стартапов и 4 от разработчиков. Темы: ACP и взаимодействие агентов, скилы системного дизайна, AI в инфраструктурном и хостинг стартапах, организация проектов с Claude, транскрибация и саммаризация видео.

Читать далее

Рунет без Google Login: что теперь делать с авторизацией

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

В России снова обсуждают вход на сайты через Google, Apple ID, GitHub и другие иностранные аккаунты. Повод — подписанный закон № 199-ФЗ от 26.06.2026, который добавил в КоАП штрафы за нарушение правил авторизации пользователей.

Но сам запрет появился не сейчас. Базовая норма пришла ещё с 406-ФЗ от 31.07.2023 и с 1 декабря 2023 года живёт в ч. 10 ст. 8 закона № 149-ФЗ «Об информации». Новое в том, что теперь за нарушение есть отдельная статья КоАП — 13.55: для граждан 10–20 тысяч рублей, для должностных лиц 30–50 тысяч, для юрлиц 500–700 тысяч.

Обычного пользователя не штрафуют за сам факт наличия Gmail, Apple ID или GitHub. Но если этот пользователь одновременно владелец российского сайта, приложения или сервиса и оставил там вход через иностранный аккаунт, он уже не «просто пользователь», а «субъект обязанности по 149-ФЗ».

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

Читать далее

Как «ужать» мегаполис до размеров iPhone 4

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

Помните времена, когда трава была зеленее, мобильный интернет помегабайтным, а Apple осваивала непаханые поля смартфоно-игровых ферм? Начало 2010-х было очень интересным временем, когда мобильные студии создавали целые новые жанры, пытались перенести или адаптировать старые концепции и игры, попутно решая задачи, от которой у десктопного разработчика начинал дергаться глаз. Вот и EA решили взять культовые франшизы SimCity и The Sims со всеми их терабайтами ассетов, сложнейшей симуляцией дорог, пробок и отдельных симов, и попробовать затолкнуть это в карман.

В кармане у пользователя тогда лежал условный iPhone 4 или 5 с уже тогда куцым бюджетом оперативной памяти в районе 100–300 МБ на всё про всё, но айфоновладельцы были "платящей" аудиторией, поэтому игровое подразделение метило в основном в них. Как не превратить смартфон в обогреватель и словить ООМ в первые минуты игры? Выкинуть честную симуляцию на помойку, превратить симов в конечные автоматы, а город сделать хитрой иллюзией из текстурных атласов и таймеров. Раскажу немного как устроены SimCity BuildIt и The Sims Mobile с инженерной изнанки, кода почти не будет, да он и не нужен тут для понимания, а еще будет немного грустинки по российскому подразделению EA, и фотки с закрытия офиса в 2016.

Читать далее

И снова самый быстрый парсер JSON. Очередной

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

За свои 17+ лет в активной разработке я встречал много проблем, но одна преследовала меня постоянно: JSON. Нет, с самим форматом все ок, но вот с его чтением — не все норм.

Когда я только начинал работать с PHP, я списывал это на скриптовость языка. Отчасти из‑за этого я даже поменял стек. Но когда приходили по‑настоящему большие файлы, это всегда было больно. Иногда — очень. Был проект, где мы ждали не обработку информации бизнес‑логикой, а банального парсинга. Файлы доходили до десятков гигабайт и не всегда влезали в оперативку. Тогда я и заработал себе персональный todo — разобраться с этим раз и навсегда.

Сейчас, находясь в поиске новых возможностей, я решил вспомнить эту старую боль. Я уже давно не PHP‑разработчик, но проблема в индустрии всё та же. Объемы данных растут, требования тоже, а воз и ныне там. Нет, есть море крутых решений. Даже тут, на Хабре. Но для меня всё не то.

Мне нужно решение, а не костыль. То есть: никакой кодогенерации и никаких JIT (я не противник JIT, просто не хочу тянуть эту сложность).

Я ступил на тонкий лед: в Go есть классная штука — пакет unsafe. Почему классная? Потому что она позволяет обойти тяжелые ненужные проверки. Плюс побитовые операции для ускорения всего, до чего только смогли дотянуться руки. Пока изучал чужие парсеры, столкнулся с обманом в репозиториях, подкручиванием статистики (куда же без него?) и перекладыванием ответственности (и аллокаций) на сторону разработчиков.

Заглянуть под капот

Перенос Swift на Apple II

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

Swift — это современный язык программирования, лежащий в основе многих приложений, работающих на платформах Apple наших дней. Мне показалось, что было бы неплохо немного вернуться к истокам Apple, к Apple II. Это была первая массовая серия компьютеров Apple, первоначально выпущенная в 1977 году с процессором MOS 6502 с частотой 1 МГц.

Читать далее

Как HTML убил Markdown и зачем Cursor выпускают замену GitHub

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

19-й выпуск IT-новостей от OpenIDE!

Midjourney открыла медицинское подразделение и сканер всего тела вместо МРТ, Cursor строит замену GitHub под AI-агентов, а в OpenIDE крупно прокачали поддержку Go. Тем временем японская Sakana AI без собственной топовой модели обходит Opus 4.8 и GPT-5.5, а Fable 5 от Anthropic остаётся отключённым по всему миру уже 11-й день подряд.

Читать далее

Локальные LLM в агентской разработке внутри компании: пользовательский опыт

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

Всем привет!

Меня зовут Дмитрий Бутенко, я эксперт-разработчик банка Уралсиб.

Всё началось с рабочего созвона в первой половине февраля, на котором упомянули возможность применять модели ИИ прямо внутри инфраструктуры банка. Поначалу речь шла о работе через JetBrains AI Assistant — точечные запросы, ревью, вопросы по проекту. Вопросов, кстати, было много. Но довольно скоро случился переход на OpenCode, и это открыло принципиально другой уровень: не отдельные запросы к модели, а полноценные агенты, которые сами читают файлы, вносят изменения, итерируются по результату.

О том, какими были эти вопросы и задачи, и о том, что из этого вышло — речь пойдёт ниже.

Читать далее