Блог

Статьи, туториалы и лучшие практики от нашей команды опытных разработчиков.

Разработка ПО

Пять состояний, которых не может быть, — и ваш код разрешает все пять

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

31 августа 2026 г.
Разработка ПО

Все ошиблись со сроками: AI, джуниоры и квантовые компьютеры

Два года назад самые громкие голоса в индустрии обещали, что к этому моменту инженеры-программисты станут исторической диковинкой. Они ошиблись: занятость разработчиков не рухнула. Но та же волна, которая не смогла убрать разработчиков, убрала кое-что другое — рутинную работу, на которой новички превращались в сеньоров. Занятость разработчиков в возрасте 22–25 лет упала примерно на 20% с конца 2022 года, тогда как у их старших коллег она осталась на месте или выросла. Одновременно квантовые вычисления проходят ровно тот же цикл хайпа с отставанием на круг, и по-настоящему важная веха — совсем не та, что в заголовках. Разбираем, что подтверждается данными, что нет и как отличить одно от другого.

18 августа 2026 г.
dxpdf 0.5.0: как мы научили конвертер DOCX читать не только по-английски
Разработка ПО

dxpdf 0.5.0: как мы научили конвертер DOCX читать не только по-английски

dxpdf превращает документы Word в PDF без Office, LibreOffice и облачных API. В версии 0.5.0 конвертер наконец перестал считать, что любой документ написан по-английски: переносы строк по UAX #14, двунаправленный текст по UAX #9, числа и даты из CLDR по языку самого документа. Заодно в проекте появился первый внешний контрибьютор — и начал он как раз с русской нумерации. Разбираем, что вошло в релиз, какие решения за ним стоят и что показывают замеры.

11 августа 2026 г.
Как мы разрабатываем с AI: архитектура и гибкость вместо набора кода
Разработка ПО

Как мы разрабатываем с AI: архитектура и гибкость вместо набора кода

AI уже пишет большую часть кода в любой серьёзной команде — 84% разработчиков используют его ежедневно. Мы делаем на это ставку осознанно. Когда код набирают агенты, наши инженеры освобождаются для того, в чём AI слабее всего: архитектура, гибкость и системные решения, от которых зависит, переживёт ли продукт свой второй год. Рассказываем, как мы на самом деле работаем в 2026 году, почему перенесли усилия людей выше по стеку и как не даём AI-коду превратиться в те запутанные кодовые базы, которые мы каждую неделю проверяем на аудитах.

19 июня 2026 г.
Что находит аудит AI-кода: 11 проблем почти в каждом проекте на AI
Разработка ПО

Что находит аудит AI-кода: 11 проблем почти в каждом проекте на AI

Ваше приложение на AI может быть уже запущено, и дыры в безопасности — лишь часть истории. Мы проверили десятки кодовых баз, собранных в Cursor, Claude Code, Bolt, Lovable и в долгих сессиях с ChatGPT, и почти всегда повторяются одни и те же одиннадцать проблем: секреты захардкожены в коде, нет валидации ввода, аутентификация формально есть, но не проверяет запрос, тестов ноль, обработка ошибок отсутствует на несчастливом пути, N+1-запросы, устаревшие зависимости с известными CVE, повсеместное дублирование, нет единой архитектуры, callback hell вместо нормальных асинхронных паттернов и код, написанный без учёта окружения развёртывания. Разбираем каждую — как выглядит, почему AI так делает и как мы её чиним.

18 июня 2026 г.
Отложенный deep linking после Firebase Dynamic Links: App Clips + Play Install Referrer
Разработка ПО

Отложенный deep linking после Firebase Dynamic Links: App Clips + Play Install Referrer

Firebase Dynamic Links отключили в 2025. Надёжный и приватный отложенный deep linking на iOS и Android через App Clips и Play Install Referrer API, с отсрочкой до логина.

4 июня 2026 г.
Как генерировать PDF на Rust с помощью Skia: полное руководство по крейту skia-safe
Разработка ПО

Как генерировать PDF на Rust с помощью Skia: полное руководство по крейту skia-safe

Узнайте, как создавать качественные векторные PDF-документы на Rust с помощью крейта skia-safe — безопасных Rust-обёрток для Google Skia, движка 2D-рендеринга, который стоит за Chrome, Android и Flutter. Примеры кода, сравнение Rust PDF-библиотек и архитектурные паттерны для продакшена.

21 марта 2026 г.
Почему 0.1 + 0.2 ≠ 0.3 и при чём тут ваши деньги
Разработка ПО

Почему 0.1 + 0.2 ≠ 0.3 и при чём тут ваши деньги

Разбираемся, как IEEE 754 хранит дробные числа, почему double нельзя использовать для денежных расчётов, и какие подходы решают проблему — от минорных единиц до BigDecimal.

14 марта 2026 г.