Статьи
Заметки из работы: Java и базы данных, протоколы и парсеры, музыкальные программы и разработка с небольшой ИИ-командой. Часть статей впервые вышла на Хабре; здесь они переработаны для 2026 года.
-
Студия из одного человека и ИИ-команды
Как я делаю и выпускаю четыре приложения для Android и два веб-приложения вместе с ИИ-агентами: кто что делает, файл правил, который растёт из каждой ошибки, проверки, которые агенту не переспорить, ревью второй моделью и где по-прежнему нужен человеческий взгляд.
-
Как компьютер подбирает аппликатуры гитарных аккордов
Что происходит между вводом «Am7» и списком аппликатур: разбор названия аккорда, перебор играбельных форм на двенадцати ладах, подбор пальцев, ранжирование как в сборниках аккордов, определение аккорда по форме и поза руки в 3D.
-
Liquibase в приложении на Spring Boot 4 Habr
Версионирование схемы БД с Liquibase 5 в Spring Boot 4: changelog в YAML, ddl-auto=validate, генерация changeset сравнением базы с JPA-сущностями через liquibase-hibernate7 и откат изменений — включая ловушку с путём к changelog, из-за которой откат молча ничего не делает.
-
Односторонние и двусторонние отношения в Hibernate 7 Habr
Почему @OneToMany вдруг создаёт таблицу связи, почему @ManyToMany с двух сторон даёт две таких таблицы, что на самом деле делает mappedBy и почему обратная сторона в одиночку сохраняет null во внешний ключ. Весь DDL и SQL в статье напечатал Hibernate 7.4.
-
Знакомство с HTTP через простейший веб-сервер на Java Habr
Веб-сервер на голом сокете в сотню строк Java 21: строка запроса, заголовки, Content-Length, тело запроса, коды ответа и виртуальные потоки, а потом то же на встроенном в JDK HttpServer. И что было не так в моей версии 2019 года.
-
Разбор выражений рекурсивным спуском: новая версия на Java 21 Habr
Как разобрать арифметическое выражение методом рекурсивного спуска: грамматика, приоритет и ассоциативность операций, унарный минус, степень и функции. Небольшой парсер на Java 21 с records и sealed-интерфейсами.