Чашечка Java — логотип Telegram-канала

@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

Знаете владельца?

Перешлите ему это сообщение — он подтвердит права и заберёт накопленное: статистику страницы и ответы на отзывы.

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

О канале в цифрах

Создан
24 августа 2021 г.
Фото
3,9 тыс.
Видео
13
Файлы
56
Ссылки
6,4 тыс.

По данным Telegram на 1 октября 2026 г.

Рейтинги и подборки

Контакты

Реклама
@tproger_sales_bot

Из описания канала

Отзывы

Оставить отзыв

Отзывов пока нет. Ваш будет первым.

Похожие

Ещё по теме