Habr.com

Syndicate content Хабр
Все публикации подряд на Хабре
Updated: 1 hour 3 min ago

Динозавры, которые не вымерли. Как пережить ¼ века в разработке и не превратиться в легаси-код

Tue, 07/14/2026 - 19:46

Привет, Хабр! На связи – редакция ICL Services. В этом году нам исполняется 20 лет, и за этот период произошло много интересного. Кто-то знает нас как Fujitsu Russia GDC, и будут правы – ведь некогда мы действительно входили в состав крупной международной группы, выполняя проекты для зарубежных заказчиков.

Конечно, после 2022 года все изменилось. Мы перестраивали бизнес и переориентировались на российский рынок, перенимали новые форматы коммуникаций и отучивались от профессиональных англицизмов в общении. Мы повидали разное: взлеты, падения, хорошие времена и неспокойные перестройки, но своего рода стабильность компании всегда приносили ее люди. Об этом мы и расскажем – через призму коллег, которые на своем опыте поделились, как проходили через огонь и воду, Европу и Азию, сложные проекты и жесткие SLA.

Мы запускаем триптих статей о людях, которые видели все – тех, кто пришел в компанию на заре её становления. Это наши «динозавры» — сотрудники, чей стаж перевалил за 15 лет. Их истории — это не просто рассказы о работе, а живая летопись компании, сотканная из заграничных командировок, огромного креатива, сложных международных проектов и удивительных встреч.

Наш первый герой — Петр Сапаркин, руководитель направления разработки ПО. За его плечами путь от «зеленого» разработчика до лидера команды из 300+ специалистов, по сей день работающей со всемирно известными корпорациями из разных отраслей бизнеса. Это рассказ о том, как карьерный тупик может обернуться судьбоносным витком, а случайный звонок — открыть дверь в мир глобального ИТ.

Читать далее

Сериализация one-nio: от истоков к поддержке JDK 25

Tue, 07/14/2026 - 19:37

Привет, Хабр! В этой статье я расскажу об эволюции подсистемы сериализации one-nio — фреймворка для создания высоконагруженных сервисов, работающего в Одноклассниках с 2012 года. Прошлой осенью я работал над обновлением подсистемы и добавил в нее новый режим работы, совместимый с актуальными версиями JDK.

Ситуация, с которой мы столкнулись, довольно прозаична. Библиотеке больше десяти лет, и экстремально быстрая сериализация (превращение объекта в последовательность байтов и обратно) с самого начала строилась в ней на внутренних лазейках JVM, к которым обычный прикладной код доступа не имеет. Когда one-nio только писали, это был стандартный паттерн для высоконагруженных фреймворков.

Сейчас же платформа методично «закручивает гайки»: старые бэкдоры помечаются как устаревшие, а затем безжалостно удаляются. И перед нами встал серьезный вызов: как перевести библиотеку на легальные API вплоть до JDK 25, сохранив производительность и не сломав то, что годами крутится в проде?

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

Читать далее

7 признаков, что подрядчик сливает ваш SEO-бюджет

Tue, 07/14/2026 - 19:36

SEO-бюджет редко сливают громко и очевидно. Чаще всё выглядит прилично: подрядчик присылает отчеты, показывает позиции, пишет тексты, покупает ссылки и просит ещё немного подождать. Но если лидов нет вам действительно продвигают сайт или просто красиво осваивают бюджет?

Что там дальше

От разработки к продукту: что нужно, чтобы стать автором маркетплейса Инфостарт

Tue, 07/14/2026 - 19:23

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

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

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

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

На этом этапе у автора обычно есть несколько мыслей. Первая — можно ли превратить внутреннюю или клиентскую разработку в универсальный продукт. Вторая — будет ли спрос за пределами одного проекта. Третья — сколько времени потребуется на упаковку, поддержку и развитие. И четвертая — можно ли на этом заработать не разово, а системно.

Читать далее

[Перевод] ИИ ускорил разработку. Почему продакшен стал ломаться чаще

Tue, 07/14/2026 - 19:20

Искусственный интеллект уже ускорил написание кода, а способность систем безопасно принимать изменения осталась прежней. Отсюда – аккуратные пулл-реквесты, зелёные тесты и инциденты, которые проявляются только в продакшене. В статье разбираем, где возникает этот разрыв и какие инженерные guardrails помогают удержать скорость без роста хрупкости.

Разобраться в рисках

redb.Identity: OAuth 2.1 / OpenID сервер на .NET, где протокол отделён от транспорта, по шине или вообще без сети

Tue, 07/14/2026 - 19:14

Есть три привычных способа сделать OAuth/OIDC в .NET, и каждый чем-то неудобен.

Первый — ASP.NET-привязанные решения (Duende IdentityServer, ASP.NET Identity, сэмплы OpenIddict). Мощно, но каждый эндпоинт — это HTTP-middleware. Захотелось дёрнуть token из воркера или из консьюмера шины? Поднимай HTTP-листенер и ходи через loopback. Хочешь протестировать конвейер выдачи токена в изоляции? Готовь WebApplicationFactory.

Второй — готовые IAM-платформы (Keycloak, Auth0, Okta). Богато по фичам, но это отдельный сервис со своим рантаймом, своей админкой, своей базой, своей моделью конфигурации и своим деплоем. Мультиарендно — да, встраиваемо — нет.

Третий — написать своё. И в третий раз за десятилетие переизобрести Code+PKCE, ротацию refresh-токенов, хранение согласий, отзыв сессий, защиту от replay в MFA, ротацию JWKS, шаринг ключей между репликами и backchannel-logout по RFC 8417.

Читать далее

Строим сеть на Qeli

Tue, 07/14/2026 - 19:14

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

У части пользователей пропадал доступ к сайту, работать они не могли - сначала помогал VPN, но потом враги начали бороться и с VPN.
Попробовали разнести точки входа по серверам по локациям, сохранив единую базу - враги начали блокировать межсерверные соединения.
А тут еще у одного знакомого вдруг сервер отключили (другие враги, не местные) - значит, надо забирать базу локально.
У другого знакомого локальный сервер поломался - значит, нужно делать удаленную резервную площадку.

Ну ок, системы разнесли, резервы понастроили - а как к ним обращаться, если напрямую нет соединения? Ну прокинули очередной VPN, повесили на какой-то IP адрес канала - а завтра этот канал не работает и этот адрес теперь недоступен, надо менять. Утро начинается не с кофе, утро начинается с проверки "что сегодня и как заблокировали".

Читать далее

Анализ 2048 3 на 3

Tue, 07/14/2026 - 19:02

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

Но что, если сама игра не совсем честная? По нашей оптимальной стратегии мы построим «злой» вариант поля, который будет её уничтожать. Небольшой спойлер, она проиграет за 23 хода, при том, что на классическом поле в среднем держалась 367. И напоследок вы сможете сами попробовать свои силы против злого 2048.

Читать далее

Открытые LLM в продакшене: 8 выводов о llama.cpp, Gemma и Qwen

Tue, 07/14/2026 - 18:57

Об открытых языковых моделях написано много — и почти все статьи посвящены знакомству, в лучшем случае — «медовому месяцу» использования. Бенчмарки, рейтинги «лучших моделей года», полевые тесты на одной задаче, руководства. Гораздо реже говорят, что происходит потом: как ведет себя модель спустя месяцы непрерывной работы, где и почему начинает сбоить, что ломается под нагрузкой и какие инженерные решения постепенно вытесняют первоначальные представления о том, «как надо». 

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

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

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

Читать далее

Spring Security: работа с JWT токенами

Tue, 07/14/2026 - 18:45

Всем привет! Данная статья посвящена регистрации и аутентификации с помощью JWT что помогает нам избавиться от тяжёлых сессий и куки и быть более крутыми и современными разработчиками

Читать далее

Как я собирал AI-агентную команду для реального бизнеса, а не ассистента в чате

Tue, 07/14/2026 - 18:39

Большинство демо AI-агентов выглядят одинаково: есть чат, пользователь пишет задачу, модель красиво отвечает. Для презентации этого достаточно. Для реального бизнеса - нет.

Читать далее

У семи нянек — сервер без ответственного

Tue, 07/14/2026 - 18:30

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

Читать далее

FinOps на практике. Серия 2: от пилота к регламентам, или как удержать экономию на облаке

Tue, 07/14/2026 - 18:26

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

Читать далее

Новый архив хакерских книг

Tue, 07/14/2026 - 18:24

Это продолжение статьи Материалы по хакингу на русском.

Вкратце — я собираю автоматчиеские переводы материалов по хакингу и выкладываю их на сайте бибилотеки. И вот, миллионы сожженых токенов спустя, архив наполнился. За списком публикаций и новостями проекта прошу под кат.

Читать далее

Java в эпоху ИИ. К чему пришли на пятом MTC Web Services Meetup для разработчиков

Tue, 07/14/2026 - 18:19

Еще несколько лет назад разработчики на Java в основном обсуждали новые инструменты для создания программ, особенности архитектуры приложений и способы сделать сервисы быстрее и надежнее. Сегодня к этим темам добавился еще один важный вопрос — как искусственный интеллект меняет профессию программиста. Именно с этого началась пятая встреча в рамках MTC Web Services Meetup, которая собрала в Москве Java-разработчиков, архитекторов и инженеров.

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

Читать дальше

Мониторинг производительности «1С:ERP»: как выстроить систему и развивать ее на практике

Tue, 07/14/2026 - 17:51

Привет, Хабр! Меня зовут Максим Вишняков, я ведущий разработчик в Axenix. За время работы я накопил обширные знания в части оптимизации, развития и поддержки  различных решений на платформе 1С:Предприятие. В этой статье хотел бы рассказать об опыте оптимизации работы ERP-системы для лидера алкогольного рынка, который отгружает продукцию в режиме 24/7 и осуществляет огромный объем операций.

Читать далее

Переход с 1С: УПП на 1С:ERP: этапы, стоимость и риски

Tue, 07/14/2026 - 17:50

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

Это 2 часть материала про переход, 1 часть про самые распространенные заблуждения и ошибочные представления о системе 1С:ERP в статье https://habr.com/ru/companies/infostart/articles/1051952/

Читать далее

Аннотации в Kotlin: от @Deprecated до своего KSP-процессора

Tue, 07/14/2026 - 17:43

Аннотации в Kotlin — это не только @Deprecated и @Suppress. Разбираемся, где живут SOURCE, BINARY и RUNTIME, чем KSP отличается от kapt, как compiler plugins меняют код и какие практические задачи можно закрыть генерацией: debug menu, удаление экспериментов и каталог performance-метрик.

Читать далее

От ТЗ к диагностике: как меняется модель AI-разработки

Tue, 07/14/2026 - 17:33

Полтора года назад мы работали как большинство команд разработки: заказчик приходил с задачей, мы её оценивали, согласовывали ТЗ и делали. Стандартный цикл.

Сейчас мы работаем иначе. Сами инициируем диагностику, сами ищем где автоматизация принесёт наибольший эффект, сами считаем ROI — до того как написана первая строка кода. Только потом договариваемся о разработке.

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

Читать далее

Who's online

There are currently 1 user and 14 guests online.