@a_cup_of_java
Чашечка Java
Telegram-канал @a_cup_of_java: 8,4 тыс. подписчиков, 624 просмотра на пост, оценка 37
37DВыше, чем у 3 из 10 каналов категории
Середина категории 33–52Этот канал 37
- 8,4 тыс.
- Подписчики
- 624
- Медиана просмотров за 30 дней
- 7,5%
- Просмотры / подписчики за 30 дней
- 56
- Постов за 30 дней
Данные на 1 октября 2026 г.
О разработке на Java и вокруг JVM-экосистемы, для тех, кто пишет код и следит за инструментами вокруг языка. На 14 сентября: 8,4 тыс. подписчиков — меньше медианы категории (18 тыс.), при этом ER держится на уровне медианы категории — 8,4 %. За последний месяц автор сравнивал, что важнее ИИ-агенту — скорость Go или строгие проверки Java с record-типами и sealed-интерфейсами, разбирал, как klibs.io отдаёт версии зависимостей через MCP вместо памяти агента, и писал о смене дефолтов ретраев в DynamoDB с 1 ноября 2026 года. Отдельно шла речь про Nebula ArchRules для безопасного удаления устаревших API в общих библиотеках и про Solon Cloud, который отделяет бизнес-код от смены инфраструктуры. Тон канала — инженерный, с конкретными библиотеками, версиями и цитатами из блогов разработчиков.
описание каталога О канале от автора
Лучшие материалы по Java на русском и английском Разместить рекламу: @tproger_sales_bot Правила общения: tprg.ru/rules Другие каналы: @tproger_channels
Частые вопросы
- Сколько подписчиков?
- Подписчиков — 8,4 тыс. Медиана просмотров поста — 624. Просмотров на подписчика — 7,5%. Данные на 1 октября 2026 г.
- Как часто выходят посты?
- За 30 дней вышло постов: 56 — это несколько раз в день. Данные на 1 октября 2026 г.
- Есть ли у канала галочка Telegram?
- Галочки Telegram нет.
- Кто ведёт страницу канала в каталоге?
- Пока никто. Если это ваш канал — заберите страницу: сможете отвечать на отзывы и видеть её статистику.
Это ваш канал?
Подтвердите владение — точные метрики и что улучшить, ответы на отзывы от лица канала и бейдж владельца на странице.
Подтвердить владениеЗаймёт минуту: пост с кодом или бот в администраторах
Ваша страница в tg.place
Знаете владельца?
Перешлите ему это сообщение — он подтвердит права и заберёт накопленное: статистику страницы и ответы на отзывы.
8 4608 371
1 окт.8 371−1 за день
Наведите на график или проведите пальцем — покажем день.
| Из чего складывается | |
|---|---|
| Вовлечённость | 2,8 из 30 |
| Качество роста | 12 из 20 |
| Реакции и пересылки | 5,7 из 15 |
| Регулярность | 4,8 из 12 |
| Доверие | 6,4 из 8 |
| Отзывы | недостаточно данныхотзывов пока нет |
Оценка 37 — по 5 показателям из 6: остальные пока не измерены. Методология
Последние посты
- Как настроить MFA в Spring Security 7 для приложения и отдельных эндпоинтов Spring Security 7, доступный со Spring Boot 4, добавил FactorGrantedAuthority. После входа по паролю пользователь получает FACTOR_PASSWORD, а после одноразового токена из письма — FACTOR_OTT. Доступ открывается, когда собраны все обязательные факторы. Для MFA во всём приложении аннотация @EnableMultiFactorAuthentication связывает фильтры входа и создаёт проверку требуемых факторов. Стандартная форма не умеет задавать их порядок, поэтому для последовательного сценария понадобятся собственные страницы. Чтобы усилить только /admin/**, аннотации передают пустой список факторов, а отдельный AuthorizationManagerFactory назначают этому маршруту. Остальные запросы сохраняют однофакторную проверку. Конфигурация обоих вариантов приведена с кодом.
- Как StructuredTaskScope в JDK 27 отменяет лишнюю работу при сбое Два независимых вызова к сервисам последовательно занимают около двух секунд. Виртуальные потоки с
Futureсокращают успешный запуск примерно до секунды, но при сбое одного вызова через 200 мс второй продолжает работу. ЗакрытиеExecutorServiceждёт его завершения, хотя результат уже не нужен.StructuredTaskScopeобъединяет подзадачи: ошибка одной прерывает соседнюю, аjoin()сообщает о сбое всей группы. В примере метод возвращается примерно через 200 мс вместо полной секунды. Сравнение трёх реализаций учитывает седьмую предварительную версию API в JDK 27 и проверяемое исключениеExecutionException. Для запуска нужен--enable-preview. Ограничение сохраняется: задача должна реагировать на прерывание, а закрытие области ждёт завершения всех подзадач. - Как подтвердить взаимную блокировку по дампу потоков Java Если JVM перестала выполнять работу, снимите несколько дампов с интервалом в несколько секунд:
jcmd <pid> Thread.print -lилиjstack -l <pid>. Найдите потоки в состоянииBLOCKED. Сопоставьте монитор послеwaiting to lockс потоком, который держит его послеlocked. Если цепочка вернулась к первому потоку, взаимная блокировка подтверждена.WAITINGиTIMED_WAITINGсами по себе нормальны. Практический разбор дампов показывает, как сверить стеки с метриками. Исправлять нужно порядок захвата блокировок: увеличение пула цикл не разорвёт. - Spring Boot 4: настраиваем экспорт логов, метрик и трассировок через OpenTelemetry В Spring Boot 4 появился собственный OpenTelemetry starter. Spring рекомендует его вместо Java-агента и стороннего starter с альфа-зависимостями. Для логов нужны Logback appender,
logback-spring.xmlи вызовinstall(). В 4.0.0 экспорт без Actuator не работал, обе ошибки исправили в 4.0.1. Метрики потребуют Micrometer и дополнительных bean-компонентов, для трассировок достаточно адреса экспорта. Полная схема настройки включает Docker Compose с Grafana LGTM. Проверьте адрес логов: нужен/v1/logs, не/v1/traces. - DAGP 3.5.0 проверяет бинарную совместимость дубликатов классов в Gradle Если два JAR содержат класс с одинаковым полным именем, JVM загрузит первый найденный в пути классов. Поэтому порядок зависимостей может решить, какая реализация попадёт в работу. На этом же поведении строятся атаки Maven-Hijack. Dependency Analysis Gradle Plugin запускает проверку через
buildHealth. При обнаружении дубликатов DAGP 3.5.0 сравнивает поля и методы классов, включая типы, параметры и модификаторы. Несовместимые сигнатуры помогают найти конфликт версий, ошибочную перепаковку библиотеки или подозрительную подмену класса. Разбор проверки Gradle-сборки предлагает предупреждать о дубликатах либо останавливать сборку. Ограничение остаётся: вредоносная реализация с прежними сигнатурами пройдёт такую проверку, поэтому DAGP служит ранним сигналом, а не полной защитой. - Как защитить REST API в Spring Boot от несовместимых изменений В Spring Boot обновление Jackson, смена конфигурации или новая функция могут незаметно нарушить договорённости с клиентами REST API. Контрактные тесты фиксируют ожидаемые запросы и ответы, чтобы поймать расхождение до развёртывания. Для проверки со стороны провайдера OpenAPI-Diff сравнивает текущую спецификацию со снимком. Метод
isCompatible(), в отличие от строгогоisUnchanged(), не отклоняет совместимое добавление новых эндпоинтов. Spring Cloud Contract хранит контракты в YAML, а Maven-плагин генерирует проверочные тесты и WireMock-заглушки для клиентов. Если команда контролирует потребителей API, можно передать им ведение контракта через Pact. Практический разбор трёх подходов помогает выбрать схему и настроить проверки совместимости. - JDK 26: когда автовекторизации JIT мало и нужен Vector API JIT превращает циклы Java в SIMD-инструкции, обрабатывающие несколько чисел за раз. На JDK 26.0.2.1 и Apple M4 Max суммирование миллиона элементов ускорилось примерно вдвое. Вклад оптимизации можно проверить JMH-прогоном с
-XX:-UseSuperWord. Vector API с одним аккумулятором дал те же 113 мкс на операцию, а четыре независимых сократили время до 35 мкс: процессору не пришлось ждать предыдущее сложение. Сравнение JMH-бенчмарков показывает цену ускорения: Vector API остаётся инкубационным, код усложняется, а выигрыш зависит от CPU. Бенчмарк стоит прогнать на production-сервере. - JDK 25: как передавать контекст запроса через ScopedValue В JDK 25 ScopedValue стал постоянным API для идентификаторов запросов, данных пользователя и трассировки. Значение привязывается через
where(...).run(...), читается черезget()во всей цепочке вызовов и автоматически исчезает после выхода из блока. Это убирает сквозные параметры и ручнойThreadLocal.remove(). Во вложенной области значение можно временно перепривязать. После её завершения внешняя привязка восстановится, поэтому время жизни контекста видно прямо в коде. Практический пример с RequestContext показывает проверку черезisBound()до и после блока. Для миграции ScopedValue подходит читаемому контексту с ограниченным временем жизни. ThreadLocal остаётся для изменяемого состояния потока, прежних версий Java и совместимости с существующими API. - Spring Boot 3.5 и 4: подключаем Fory JSON к MVC и WebFlux Spring Fory 1.1.0 требует Java 17 или новее. Для Boot 4 предназначен
fory-json-spring-boot-starter, для Boot 3.5 —fory-json-spring-boot3-starter. Стартер выбирает интеграцию для MVC или WebFlux, а контроллеры сохраняют привычные@RequestBody,MonoиFlux. При миграции настройки придётся перенести явно: аннотации Jackson и параметрыspring.jackson.*не управляют Fory. Стоит отдельно проверить имена полей и весь JSON-контракт. Ограничение входных данных в MVC относится ко всему телу запроса, а при потоковом NDJSON в WebFlux — к каждому значению вFlux. Руководство по интеграции показывает API заказов, настройку преобразования JSON и вариант без Spring Boot. Бенчмарки сериализации не гарантируют такой же прирост HTTP-производительности: результат нужно измерять на своём приложении. - Как убрать временные MemorySegment при доступе к нативной памяти в Java В горячем цикле обёртка MemorySegment для каждого нативного адреса создаёт короткоживущие объекты и нагружает GC. Разбор арифметики указателей через FFM API показывает другой путь: один глобальный сегмент начинается с адреса 0 и расширяется через
reinterpretдоLong.MAX_VALUE. VarHandle, построенный из описания структуры, получает этот сегмент как базу, а числовой адрес как смещение. Новая обёртка на каждом проходе не нужна. В авторском JMH-тесте такой вариант дал примерно 21 млн против 1,49 млн операций в миллисекунду. Цена ускорения: глобальный сегмент не проверит, существует ли память по адресу и не была ли она освобождена. Для горячего участка сначала измерьте аллокации и производительность собственным JMH-тестом, а время жизни памяти контролируйте отдельно.
О канале в цифрах
- Создан
- 24 августа 2021 г.
- Фото
- 3,9 тыс.
- Видео
- 13
- Файлы
- 56
- Ссылки
- 6,4 тыс.
По данным Telegram на 1 октября 2026 г.
Рейтинги и подборки
- Самые читаемые каналы · Разработка9-е место
- Самые крупные каналы · Разработка11-е место
Контакты
- Реклама
- @tproger_sales_bot
Из описания канала
Отзывы
Оставить отзыв
Отзывов пока нет. Ваш будет первым.