ch
Feedback
Чашечка Java

Чашечка Java

前往频道在 Telegram

Лучшие материалы по Java на русском и английском Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels

显示更多
8 409
订阅者
-424 小时
-197 天
-7030 天
吸引订阅者
九月 '26
九月 '26
+15
在0个频道中
八月 '26
+13
在0个频道中
Get PRO
七月 '26
+23
在2个频道中
Get PRO
六月 '26
+50
在1个频道中
Get PRO
五月 '26
+58
在0个频道中
Get PRO
四月 '26
+28
在1个频道中
Get PRO
三月 '26
+22
在0个频道中
Get PRO
二月 '26
+16
在2个频道中
Get PRO
一月 '26
+38
在1个频道中
Get PRO
十二月 '25
+17
在1个频道中
Get PRO
十一月 '25
+30
在1个频道中
Get PRO
十月 '25
+28
在2个频道中
Get PRO
九月 '25
+47
在1个频道中
Get PRO
八月 '25
+52
在1个频道中
Get PRO
七月 '25
+33
在0个频道中
Get PRO
六月 '25
+34
在0个频道中
Get PRO
五月 '25
+36
在0个频道中
Get PRO
四月 '25
+39
在0个频道中
Get PRO
三月 '25
+35
在0个频道中
Get PRO
二月 '25
+38
在0个频道中
Get PRO
一月 '25
+50
在0个频道中
Get PRO
十二月 '24
+65
在0个频道中
Get PRO
十一月 '24
+49
在0个频道中
Get PRO
十月 '24
+47
在0个频道中
Get PRO
九月 '24
+43
在0个频道中
Get PRO
八月 '24
+67
在0个频道中
Get PRO
七月 '24
+77
在0个频道中
Get PRO
六月 '24
+64
在0个频道中
Get PRO
五月 '24
+69
在0个频道中
Get PRO
四月 '24
+71
在0个频道中
Get PRO
三月 '24
+83
在0个频道中
Get PRO
二月 '24
+72
在0个频道中
Get PRO
一月 '24
+58
在0个频道中
Get PRO
十二月 '23
+54
在0个频道中
Get PRO
十一月 '23
+34
在0个频道中
Get PRO
十月 '23
+46
在0个频道中
Get PRO
九月 '23
+36
在0个频道中
Get PRO
八月 '23
+81
在0个频道中
Get PRO
七月 '23
+68
在0个频道中
Get PRO
六月 '23
+79
在0个频道中
Get PRO
五月 '23
+72
在0个频道中
Get PRO
四月 '23
+94
在0个频道中
Get PRO
三月 '23
+107
在0个频道中
Get PRO
二月 '23
+198
在0个频道中
Get PRO
一月 '23
+160
在0个频道中
Get PRO
十二月 '22
+194
在0个频道中
Get PRO
十一月 '22
+215
在0个频道中
Get PRO
十月 '22
+328
在0个频道中
Get PRO
九月 '22
+198
在0个频道中
Get PRO
八月 '22
+435
在0个频道中
Get PRO
七月 '22
+260
在0个频道中
Get PRO
六月 '22
+546
在0个频道中
Get PRO
五月 '22
+567
在0个频道中
Get PRO
四月 '22
+1 409
在0个频道中
Get PRO
三月 '22
+2 807
在0个频道中
Get PRO
二月 '22
+716
在0个频道中
Get PRO
一月 '22
+1 112
在0个频道中
Get PRO
十二月 '21
+2 035
在0个频道中
Get PRO
十一月 '21
+2 682
在0个频道中
Get PRO
十月 '21
+82
在0个频道中
Get PRO
九月 '21
+1 729
在0个频道中
日期
订阅者增长
提及
频道
15 九月0
14 九月+1
13 九月+1
12 九月+1
11 九月0
10 九月+3
09 九月0
08 九月+1
07 九月+2
06 九月0
05 九月+1
04 九月0
03 九月+2
02 九月+3
01 九月0
频道帖子
Что важнее ИИ-агенту: скорость Go или проверки Java Когда агент генерирует сотни строк за секунды, узким местом становится пр
Что важнее ИИ-агенту: скорость Go или проверки Java Когда агент генерирует сотни строк за секунды, узким местом становится проверка кода. Go предлагает быстрый компилятор, единый форматтер gofmt и развитую стандартную библиотеку. Java отвечает record-типами и sealed-интерфейсами: конструктор record требует все компоненты, а switch по закрытой иерархии должен обработать каждый вариант. Цена тоже различается. Java компилируется медленнее, а форматтер приходится выбирать. Зато в долгоживущей корпоративной кодовой базе типы раньше останавливают неполные доменные объекты и пропущенные ветки. Автор разбора спора Google и Java-разработчиков предлагает оценивать весь контур: компилятор, тесты, форматирование и ревью. Где у вас проходит граница между коротким циклом сборки и строгими проверками типов?

2
Все дела подождут, потому что сегодня ваш день! Поздравляем с Днем программиста и желаем меньше багов и больше фич, меньше со
Все дела подождут, потому что сегодня ваш день! Поздравляем с Днем программиста и желаем меньше багов и больше фич, меньше созвонов и больше фокуса, меньше тасок с пометкой «срочно» и больше времени на отдых. Забирайте подарок из нашей IT-коробки. Мы уверены, этот презент точно пригодится вам в работе: https://tprg.ru/NxFt
503
3
Версию зависимости агент называет по памяти, но klibs.io отдаёт её из живого индекса через MCP Просите ассистента добавить би
Версию зависимости агент называет по памяти, но klibs.io отдаёт её из живого индекса через MCP Просите ассистента добавить библиотеку, а он вписывает в pom.xml версию, которой в Maven Central нет или которая отстала на год. Сборка падает, либо вы тянете артефакт с уже закрытой уязвимостью: версия взята из обучающих данных, а не из репозитория. JetBrains показала обходной путь: у каталога klibs.io (4200+ проектов, данные из GitHub и Maven Central) появился MCP-сервер. Агент ходит в него запросом по платформе и цели, среди которых есть JVM, и получает последнюю опубликованную версию пакета из индекса. Каталог собран вокруг Kotlin Multiplatform, так что enterprise-стек закрывает частично. Интереснее приём: справочник по зависимостям как инструмент рядом с агентом. Если ваши ассистенты уже правят pom.xml, проверьте, откуда они берут версии, и до тех пор держите ревью зависимостей ручным.
499
4
1 ноября записи в DynamoDB начнут падать там, где сегодня проходят, но это проверяется заранее Вызов, попавший в троттлинг, S
1 ноября записи в DynamoDB начнут падать там, где сегодня проходят, но это проверяется заранее Вызов, попавший в троттлинг, SDK сейчас молча повторяет до девяти раз, и запись доходит. С 1 ноября 2026 AWS меняет дефолты ретраев: у DynamoDB останется четыре попытки вместо девяти, у прочих сервисов три вместо четырёх, пауза при троттлинге вырастет с 500 мс до 1000 мс. По логам не понять, кого это заденет: наружу выходит успех или финальная ошибка, а попытки между ними SDK не показывает. В AWS SDK for Java 2.44+ новые значения включает переменная AWS_NEW_RETRIES_2026=true, но это рубильник: цена выясняется в бою. Ответ даёт библиотека retrylens: ExecutionInterceptor пишет каждую попытку в кольцевой буфер, а симулятор считает по этим записям, чем бы тот же трафик кончился на новых дефолтах. Запросы он не переотправляет и ключи доступа не просит, так что снять картину можно на проде.
567
5
Устаревшие API можно удалять без лотереи в большой Java-кодбазе Метод годами помечен @Deprecated, но удаление может сломать н
Устаревшие API можно удалять без лотереи в большой Java-кодбазе Метод годами помечен @Deprecated, но удаление может сломать неизвестного потребителя. ArchUnit рассчитан на JUnit-проверку одного репозитория, чего мало для общих библиотек. Nebula ArchRules поставляет правила вместе с библиотекой отдельным JAR. Gradle-плагин запускает их там, где библиотека подключена как зависимость. Анализ байткода делает одно правило общим для Java, Kotlin и Scala. В CI-сборке авторы видят проекты, которые используют устаревшие, экспериментальные или непубличные API. Netflix TechBlog разбирает решение: 358 правил уже работают более чем в 5000 репозиториев и находят почти миллион нарушений. Так потребителей можно найти до изменения общего API.
592
6
Solon Cloud позволяет менять сервисную инфраструктуру без переписывания бизнес-кода Планируете менять реестр сервисов, центр
Solon Cloud позволяет менять сервисную инфраструктуру без переписывания бизнес-кода Планируете менять реестр сервисов, центр конфигурации или шину событий без каскада правок в бизнес-логике? Solon Cloud ставит между кодом и инфраструктурой общий слой: приложение вызывает CloudConfigService, CloudDiscoveryService или CloudEventService, а запрос выполняет выбранный плагин. Всего набор определяет 13 сервисных интерфейсов. Для перехода с локальной реализации на Nacos или Consul меняются зависимость и YAML-конфигурация, а бизнес-код остаётся прежним. В разборе Solon Cloud на DEV Community есть схема слоя и полный перечень интерфейсов, включая хранение файлов, задания, распределённые блокировки и генерацию идентификаторов. Для крупной кодовой базы это способ заранее оставить путь к смене инфраструктуры.
618
7
Spring разводит настройку бина по этапам жизненного цикла контейнера У PostConstruct, InitializingBean и процессоров разные м
Spring разводит настройку бина по этапам жизненного цикла контейнера У PostConstruct, InitializingBean и процессоров разные места в цикле. Поэтому точку расширения стоит выбирать после того, как определён обрабатываемый объект. До создания экземпляров BeanFactoryPostProcessor работает с определениями бинов. BeanPostProcessor обрабатывает созданный экземпляр до и после инициализации. Для инициализации есть @PostConstruct и InitializingBean, для очистки: @PreDestroy и DisposableBean. SmartLifecycle координирует запуск и остановку компонентов с активным состоянием. В материале на DEV Community эти точки собраны в примерах с тестами и документацией. При ревью сначала определите этап контейнера, затем выбирайте точку расширения.
677
8
Пакетные задачи Spring AI с DeepSeek выгоднее запускать по расписанию Пакетная генерация через DeepSeek V4 теперь зависит от
Пакетные задачи Spring AI с DeepSeek выгоднее запускать по расписанию Пакетная генерация через DeepSeek V4 теперь зависит от времени запуска. С 16 августа часы пик идут с 01:00 до 04:00 и с 06:00 до 10:00 UTC. В остальные 17 часов тариф вдвое ниже пикового. Эта скидка действует только относительно нового пика. Для V4 Pro вне пика миллион входных токенов подорожал с $0,435 до $0,66, выходных: с $0,87 до $1,98. Попадание в кеш стало дороже в шесть раз даже по внепиковому тарифу. В Spring Boot тяжёлые пакетные задания стоит переносить за пределы пиковых окон, а экономию считать относительно старого тарифа. В разборе для Spring Boot показан шаблон такого планировщика; реального счёта по новой схеме у автора пока нет.
715
9
«Невозможная» порча базы может прятаться ниже вашего приложения Если резервная копия не проходит проверку целостности, а логи
«Невозможная» порча базы может прятаться ниже вашего приложения Если резервная копия не проходит проверку целостности, а логи приложения не показывают причину, привычный путь диагностики обрывается. Именно так Tailscale полгода искала источник порчи SQLite-баз в своём контуре управления: 19 случаев без закономерности и возможности повторить сбой по запросу. Условия выглядели безопасно: к базе каждого шарда обращался один Go-процесс, полные снимки каждые несколько минут уходили в S3. Причина всё же оказалась в SQLite: ошибка жила там не менее 16 лет. Для Java-команд этот кейс полезен как методика расследования сбоев, которые документация считает невозможными. В разборе на DEV Community остались ход поиска и чек-лист для Spring Boot с Postgres, MySQL или SQLite.
702
10
На JVM серверный HTML до сих пор собирают шаблонами, хотя соседние экосистемы давно перешли на компоненты Вёрстка живёт в шаб
На JVM серверный HTML до сих пор собирают шаблонами, хотя соседние экосистемы давно перешли на компоненты Вёрстка живёт в шаблонах Thymeleaf или FreeMarker: опечатка в имени поля всплывает в рантайме, а рефакторинг в IDE до неё не дотягивается. JetBrains разбирает в блоге Kotlin, как закрыть этот пробел. Библиотека Compose HTML уже собирает веб-интерфейс на Kotlin поверх Compose-рантайма и компилирует его в JS. Если добавить JVM-таргет, те же компоненты отрендерятся в HTML на сервере: автодополнение, рефакторинг и проверки компилятора вместо строковых шаблонов. В посте: почему нынешняя отрисовка Compose для веба в canvas ломает SEO, скорость загрузки и доступность. Это исследование, а не анонс релиза: обязательств JetBrains не берёт. В план миграции не ставить, а вот в список на перепроверку положить стоит.
719
11
Совет не оптимизировать руками и довериться JIT держался на цене специалиста, а она рухнула В любом Spring Boot сервисе есть
Совет не оптимизировать руками и довериться JIT держался на цене специалиста, а она рухнула В любом Spring Boot сервисе есть эндпоинты, которые тормозят годами: снять профиль, найти горячий метод, проверить гипотезу, откатить. Несколько дней инженера ради неочевидного выигрыша. Дэн Лу в эссе «There's no reason for software to be slow anymore» пишет, что человеко-время на такую итерацию упало в тысячи раз: запуск агента на его собственном сценарии с ripgrep занял около двух минут. Джейми Брэндон отдал агенту недоделанное тестовое Anthropic по производительности и получил результат лучше своего. Java стоит на обратном: пиши предсказуемый код, JIT разберётся. Это верно, пока проверка гипотезы дороже выигрыша. Теперь она стоит минуты, зато поддерживать неочевидные правки в горячем пути всё равно людям. Рабочий процесс для Spring Boot. Пустили бы агента в горячий путь своего сервиса?
739
12
Общий обработчик исключений убирает try/catch из контроллеров, но свалка переезжает в него самого В контроллере на каждый энд
Общий обработчик исключений убирает try/catch из контроллеров, но свалка переезжает в него самого В контроллере на каждый эндпоинт по два catch: свой UserAlreadyExistsException в 409, остальное в 500 со строкой «Internal server error». В соседнем контроллере то же самое, но статус и текст уже другие. Всё это уносится в @RestControllerAdvice, и метод снова возвращает только успешный ответ. Спор начинается дальше. В статье на dev.to автор разводит бизнес-ошибки и системные. Вторые обычно закрывают одним обработчиком на Exception.class, и он же превращает в аккуратный 500 то, что должно было упасть громко и попасть в алерты. А со Spring Boot 3 в фреймворке уже есть ProblemDetail: стандартное тело ошибки по RFC. Свой ErrorResponse при этом всё равно пишут почти все. Как разложены исключения у вас?
795
13
Промпт прошёл все офлайн-проверки и всё равно уронил P95 на 38%, но канареечный выкат ловит это за минуты Правку промпта не о
Промпт прошёл все офлайн-проверки и всё равно уронил P95 на 38%, но канареечный выкат ловит это за минуты Правку промпта не отсекает ни один привычный гейт: компилятор её не видит, юнит-тесты зелёные, офлайн-набор из 40 кейсов тоже. А на живом трафике переформулированное описание инструмента научило агента вызывать его дважды за ход: вызовов на диалог стало 5,4 вместо 3,1, P95 вырос на 38%. Тестовые транскрипты короткие по замыслу, реальные диалоги длинные, и каждый лишний вызов удваивает ожидание. В десятой части серии про агента на Spring Boot собрана рантайм-обвязка: раздача процента трафика на новую версию, автоматический переход на запасную модель при деградации основной и потолок расходов на модель. Если промпты у вас едут в прод вместе с кодом, начинать стоит с процента трафика, который возвращается в ноль одной настройкой, и графика вызовов инструментов на диалог.
891
14
Девять convention-плагинов Gradle в проде JetBrains заменили декларативным конфигом сборки Логика сборки крупного JVM-проекта
Девять convention-плагинов Gradle в проде JetBrains заменили декларативным конфигом сборки Логика сборки крупного JVM-проекта обычно живёт в buildSrc: convention-плагины на Kotlin, которые сами надо компилировать и чинить при каждом апгрейде Gradle. JetBrains перевела на Kotlin Toolchain бэкенд klibs.io: прод на JDK 21, Spring Boot 4 со Spring AI, PostgreSQL и OpenSearch. Девять плагинов свернулись в шаблоны Toolchain, а Jib и Git Properties, у которых встроенного аналога нет, переписали как локальные плагины. Отдельно про Maven Central: Sonatype скоро включит квоты на число файлов в публикации. В 0.12 из неё убрали контрольные суммы файлов подписи (.asc.sha1) — они не нужны, а место в квоте занимают. Toolchain пока в версии 0.x, публикация библиотек в статусе preview, для фич 0.12 нужна IntelliJ IDEA 2026.2.1. Переносить рабочую сборку рано, а в список на перепроверку положить стоит.
925
15
Синтаксис, который восемь лет лежит в драфте JEP, предлагают включать препроцессором перед javac Декоратор или адаптер наполо
Синтаксис, который восемь лет лежит в драфте JEP, предлагают включать препроцессором перед javac Декоратор или адаптер наполовину состоит из методов, которые только зовут то же самое у обёрнутого объекта. В самой JDK у Collections.UnmodifiableCollection таких методов 14. JEP 8209434 «Concise Method Bodies» Брайана Гётца предлагает записывать их как лямбды: public int size() -> c.size(); или ссылкой на метод: public int size() = aList::size;. Заявку подали в августе 2018 года, и она до сих пор в статусе Draft: ни целевого релиза, ни preview-флага. В C# такие тела работают с 2015 года. Автор статьи ждать перестал и собрал препроцессор java-composition: он разворачивает такие тела в обычный Java-код до того, как файл дойдёт до javac, начиная с Java 8. Цена — исходник, который без препроцессора не соберётся ни у кого. Взяли бы такое в проект, который поддерживать ещё пять лет?
978
16
JDK 28 покажет в JFR, договорились ли ваши TLS-соединения на постквантовый обмен ключами Событие jdk.TLSHandshake в JDK Fligh
JDK 28 покажет в JFR, договорились ли ваши TLS-соединения на постквантовый обмен ключами Событие jdk.TLSHandshake в JDK Flight Recorder писало версию протокола и шифронабор, но не то, как стороны вырабатывали общий секрет. В JDK 28 у него появилось поле namedGroup с параметрами обмена ключами: в выводе jfr print там видно, например, X25519MLKEM768, гибрид классической кривой X25519 и постквантового ML-KEM. По записи с прода теперь видно, какие соединения уже ушли на постквантовую схему, а какие остались на обычной кривой. Для инвентаризации перед миграцией это дешевле отладочного лога TLS, который на нагруженном сервисе обычно не включают. Событие выключено по умолчанию и в default.jfc, и в profile.jfc, включать явно: java -XX:StartFlightRecording:settings=default,duration=60s,+jdk.TLSHandshake#enabled=true Полный пример вывода события показывают в заметке Inside.java.
1 091
17
Апгрейд Java 8 до 21 на 17 000 строк теперь стоит 2,52 доллара машинного времени Тот самый сервис на Java 8 и Spring Boot 2,
Апгрейд Java 8 до 21 на 17 000 строк теперь стоит 2,52 доллара машинного времени Тот самый сервис на Java 8 и Spring Boot 2, который в планировании всегда проигрывает фичам: смета в человеко-неделях не проходит. AWS Transform считает по-другому, 0,035 доллара за минуту работы агента, и апгрейд на 17 000 строк укладывается в 72 минуты. Перед агентом стоит прогнать детерминированный проход. OpenRewrite разбирает код в дерево с типами, поэтому отличает ваш класс Result от Result из зависимости, чего регулярка не умеет: больше 2800 рецептов, Apache 2.0. Прогон UpgradeToJava21 на Maven-проекте с Java 8 занял 87 секунд вхолодную и 18 на прогретом кеше, а правки легли только в build config, ни строки исходников. Рецепты бесплатно закрывают предсказуемое, агент добирает хвост, который правилом никто не описал, и его дифф придётся читать глазами. Остальной стек модернизации лежит на dev.to.
1 213
18
Приглашаем на курс для прокачки навыков архитектора и проектировщика, которые важны для профессионального роста программиста.
Приглашаем на курс для прокачки навыков архитектора и проектировщика, которые важны для профессионального роста программиста. 🌐 С курсом «Системный дизайн высоконагруженных проектов» вы: ▪️изучите ключевые фундаментальные паттерны и получите навыки проектирования проектов с миллионной аудиторией (балансировка, масштабирование апп/кешей/субд, высокая доступность и кластерные решения, шардинг, CAP/PACELS, консистентность, саги, транзакционные очереди и многое другое) ▪️поупражняетесь в проектировании и получите обратную связь на реальных задачах: магазин/маркетплейс, такси/доставка, обьявления, соцсети, дейтинг, игры, википедия, мессенжер, CDN, хранилище файлов, онлайн-кинотеатр, счетчики, удаленный мониторинг, интеграционные вебхуки, рассылки и тд. ▪️ научитесь планировать нагрузку и связывать бизнес-показатели с нефункциональными требованиями к системе ▪️ попрактикуемся в проведении и прохождения секций системного дизайна на интервью. Всё в формате живых онлайн-сессий (лекции, брейнштормы, презентации домашних проектов). 🤩 Кто мы: R&D-центр Devhands.ru. Основатель школы и автор курса Алексей Рыбак, ex-СТО Badoo, с 20-летним опытом высоконагруженных проектов и управления глобальными технологическими организациями. 🗓 Старт 7 сентября, изучаем программу, записываемся здесь Реклама. ИП Рыбак А.А. ИНН 771407709607 Erid: 2VtzqwLN1Md
708
19
В мире, где деплои по пятницам, а отпуск — глубоко в бэклоге, живёт уставший разработчик. Один герой. Один чемодан. Незакрыты
В мире, где деплои по пятницам, а отпуск — глубоко в бэклоге, живёт уставший разработчик. Один герой. Один чемодан. Незакрытые таски и полный бардак. Разгребите хаос. Найдите билет, соберите вещи, пока он не передумал. И решите главный вопрос эпохи: что ему надеть? Соберите программиста в отпуск, найдите пасхалочки и промокоды от партнёров!
2 057
20
JVM Day 29 августа: новинки JVM мира и –10% на билет Бэкендеры, отличная новость. 29 августа в Москве пройдет конференция для
JVM Day 29 августа: новинки JVM мира и –10% на билет   Бэкендеры, отличная новость. 29 августа в Москве пройдет конференция для своих. Приглашают Java-, Scala- и Kotlin-разработчиков, архитекторов и тимлидов.   Здесь выступят и расскажут: — Андрей Кулешов — что нового в JVM за год; — Сергей Петрелевич — разработка по Mechanical Sympathy; — Александр Ланцов — Java после Loom и другие модели concurrency; — Антон Курако — как бенчмарки вводят в заблуждение.   А вечером во дворе T-Space — посиделки, интерактивы и открытый микрофон с историями ошибок. Мест мало, а цена билета будет расти. Успевай зарегистрироваться сегодня со скидкой 10% по промокоду: BYTECODE Промокод действует по 10.08. Это #партнёрский пост
1 421