Чашечка Java — Telegram channel logo

@a_cup_of_java

Чашечка Java

Telegram channel @a_cup_of_java: 8.4K subscribers, 624 views per post, score 37

Software development
37DAhead of 3 in 10 channels in its category
Category midrange 33–52This channel 37
8.4K
Subscribers
624
Median views over 30 days
7.5%
Views / subscribers over 30 days
56
Posts over 30 days

Data as of October 1, 2026

About Java development and the surrounding JVM ecosystem, for people who write code and track the tools around the language. As of 14 September: 8.4K subscribers — below the category median of 18K, while engagement rate sits right at the category median of 8.4%. Over the past month the author compared what matters more for an AI agent, Go's speed or Java's strict checks with record types and sealed interfaces, explained how klibs.io serves dependency versions through MCP instead of relying on an agent's memory, and covered AWS changing DynamoDB retry defaults starting 1 November 2026. Other posts covered Nebula ArchRules for safely removing deprecated APIs from shared libraries and Solon Cloud, which separates business code from infrastructure changes. The tone is technical, grounded in specific libraries, version numbers, and quotes from developer blogs.
catalog description About the channel, by its author
Лучшие материалы по Java на русском и английском Разместить рекламу: @tproger_sales_bot Правила общения: tprg.ru/rules Другие каналы: @tproger_channels

Common questions

How many subscribers?
Subscribers: 8.4K. Median views per post: 624. Views per subscriber: 7.5%. Measured on October 1, 2026.
How often are posts published?
Posts in the last 30 days: 56 — that is several times a day. Measured on October 1, 2026.
Does this channel have a Telegram tick?
No Telegram tick.
Who runs this channel page in the catalog?
Nobody yet. If this is your channel, claim the page: you will be able to reply to reviews and see its stats.
Is this your channel?

Claim it — accurate metrics, replies to reviews as the channel, and an owner badge on the page.

Verify ownership

Takes a minute: a post with a code, or the bot as an admin
Your page on tg.place

Know the owner?

Forward them this message — they can verify their rights and collect what has piled up: page statistics and replies to reviews.

Subscribers−89 in 37 days
8,4608,371
Oct 18,371−1 in a day

Hover the chart or swipe it — we show the day.

What it is made of
Engagement2.8 of 30
Growth quality12 of 20
Reactions and forwards5.7 of 15
Consistency4.8 of 12
Trust6.4 of 8
Reviewsnot enough datano reviews yet

Score 37 — from 5 of 6 signals: the rest are not measured yet. Methodology

Latest posts

Posts are in Russian — that is what the channel publishes.

  • 315Open in Telegram
    Как настроить MFA в Spring Security 7 для приложения и отдельных эндпоинтов Spring Security 7, доступный со Spring Boot 4, добавил FactorGrantedAuthority. После входа по паролю пользователь получает FACTOR_PASSWORD, а после одноразового токена из письма — FACTOR_OTT. Доступ открывается, когда собраны все обязательные факторы. Для MFA во всём приложении аннотация @EnableMultiFactorAuthentication связывает фильтры входа и создаёт проверку требуемых факторов. Стандартная форма не умеет задавать их порядок, поэтому для последовательного сценария понадобятся собственные страницы. Чтобы усилить только /admin/**, аннотации передают пустой список факторов, а отдельный AuthorizationManagerFactory назначают этому маршруту. Остальные запросы сохраняют однофакторную проверку. Конфигурация обоих вариантов приведена с кодом.
  • 4219 forwardsOpen in Telegram
    Как StructuredTaskScope в JDK 27 отменяет лишнюю работу при сбое Два независимых вызова к сервисам последовательно занимают около двух секунд. Виртуальные потоки с Future сокращают успешный запуск примерно до секунды, но при сбое одного вызова через 200 мс второй продолжает работу. Закрытие ExecutorService ждёт его завершения, хотя результат уже не нужен. StructuredTaskScope объединяет подзадачи: ошибка одной прерывает соседнюю, а join() сообщает о сбое всей группы. В примере метод возвращается примерно через 200 мс вместо полной секунды. Сравнение трёх реализаций учитывает седьмую предварительную версию API в JDK 27 и проверяемое исключение ExecutionException. Для запуска нужен --enable-preview. Ограничение сохраняется: задача должна реагировать на прерывание, а закрытие области ждёт завершения всех подзадач.
    Post by “Чашечка Java” from September 30, 2026
  • 50015 forwards2 reactionsOpen in Telegram
    Как подтвердить взаимную блокировку по дампу потоков Java Если JVM перестала выполнять работу, снимите несколько дампов с интервалом в несколько секунд: jcmd <pid> Thread.print -l или jstack -l <pid>. Найдите потоки в состоянии BLOCKED. Сопоставьте монитор после waiting to lock с потоком, который держит его после locked. Если цепочка вернулась к первому потоку, взаимная блокировка подтверждена. WAITING и TIMED_WAITING сами по себе нормальны. Практический разбор дампов показывает, как сверить стеки с метриками. Исправлять нужно порядок захвата блокировок: увеличение пула цикл не разорвёт.
    Post by “Чашечка Java” from September 30, 2026
  • 58015 forwardsOpen in Telegram
    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.
    Post by “Чашечка Java” from September 29, 2026
  • 5735 forwardsOpen in Telegram
    DAGP 3.5.0 проверяет бинарную совместимость дубликатов классов в Gradle Если два JAR содержат класс с одинаковым полным именем, JVM загрузит первый найденный в пути классов. Поэтому порядок зависимостей может решить, какая реализация попадёт в работу. На этом же поведении строятся атаки Maven-Hijack. Dependency Analysis Gradle Plugin запускает проверку через buildHealth. При обнаружении дубликатов DAGP 3.5.0 сравнивает поля и методы классов, включая типы, параметры и модификаторы. Несовместимые сигнатуры помогают найти конфликт версий, ошибочную перепаковку библиотеки или подозрительную подмену класса. Разбор проверки Gradle-сборки предлагает предупреждать о дубликатах либо останавливать сборку. Ограничение остаётся: вредоносная реализация с прежними сигнатурами пройдёт такую проверку, поэтому DAGP служит ранним сигналом, а не полной защитой.
    Post by “Чашечка Java” from September 29, 2026
  • 6028 forwards3 reactionsOpen in Telegram
    Как защитить REST API в Spring Boot от несовместимых изменений В Spring Boot обновление Jackson, смена конфигурации или новая функция могут незаметно нарушить договорённости с клиентами REST API. Контрактные тесты фиксируют ожидаемые запросы и ответы, чтобы поймать расхождение до развёртывания. Для проверки со стороны провайдера OpenAPI-Diff сравнивает текущую спецификацию со снимком. Метод isCompatible(), в отличие от строгого isUnchanged(), не отклоняет совместимое добавление новых эндпоинтов. Spring Cloud Contract хранит контракты в YAML, а Maven-плагин генерирует проверочные тесты и WireMock-заглушки для клиентов. Если команда контролирует потребителей API, можно передать им ведение контракта через Pact. Практический разбор трёх подходов помогает выбрать схему и настроить проверки совместимости.
    Post by “Чашечка Java” from September 29, 2026
  • 6064 forwardsOpen in Telegram
    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-сервере.
  • 6296 forwardsOpen in Telegram
    JDK 25: как передавать контекст запроса через ScopedValue В JDK 25 ScopedValue стал постоянным API для идентификаторов запросов, данных пользователя и трассировки. Значение привязывается через where(...).run(...), читается через get() во всей цепочке вызовов и автоматически исчезает после выхода из блока. Это убирает сквозные параметры и ручной ThreadLocal.remove(). Во вложенной области значение можно временно перепривязать. После её завершения внешняя привязка восстановится, поэтому время жизни контекста видно прямо в коде. Практический пример с RequestContext показывает проверку через isBound() до и после блока. Для миграции ScopedValue подходит читаемому контексту с ограниченным временем жизни. ThreadLocal остаётся для изменяемого состояния потока, прежних версий Java и совместимости с существующими API.
    Post by “Чашечка Java” from September 28, 2026
  • 6186 forwards1 reactionOpen in Telegram
    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-производительности: результат нужно измерять на своём приложении.
    Post by “Чашечка Java” from September 28, 2026
  • 6357 forwards2 reactionsOpen in Telegram
    Как убрать временные MemorySegment при доступе к нативной памяти в Java В горячем цикле обёртка MemorySegment для каждого нативного адреса создаёт короткоживущие объекты и нагружает GC. Разбор арифметики указателей через FFM API показывает другой путь: один глобальный сегмент начинается с адреса 0 и расширяется через reinterpret до Long.MAX_VALUE. VarHandle, построенный из описания структуры, получает этот сегмент как базу, а числовой адрес как смещение. Новая обёртка на каждом проходе не нужна. В авторском JMH-тесте такой вариант дал примерно 21 млн против 1,49 млн операций в миллисекунду. Цена ускорения: глобальный сегмент не проверит, существует ли память по адресу и не была ли она освобождена. Для горячего участка сначала измерьте аллокации и производительность собственным JMH-тестом, а время жизни памяти контролируйте отдельно.
    Post by “Чашечка Java” from September 27, 2026

The channel in numbers

Created
August 24, 2021
Photos
3.9K
Videos
13
Files
56
Links
6.4K

Telegram data as of October 1, 2026

Contacts

Ads
@tproger_sales_bot

From the channel description

Reviews

Leave a review

No reviews yet. Yours would be the first.

Similar

More on this topic