Чашечка 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 предлагает быстрый компилятор, единый форматтер gofmt и развитую стандартную библиотеку. Java отвечает record-типами и sealed-интерфейсами: конструктор record требует все компоненты, а switch по закрытой иерархии должен обработать каждый вариант.
Цена тоже различается. Java компилируется медленнее, а форматтер приходится выбирать. Зато в долгоживущей корпоративной кодовой базе типы раньше останавливают неполные доменные объекты и пропущенные ветки.
Автор разбора спора Google и Java-разработчиков предлагает оценивать весь контур: компилятор, тесты, форматирование и ревью. Где у вас проходит граница между коротким циклом сборки и строгими проверками типов?
| 2 | Все дела подождут, потому что сегодня ваш день!
Поздравляем с Днем программиста и желаем меньше багов и больше фич, меньше созвонов и больше фокуса, меньше тасок с пометкой «срочно» и больше времени на отдых.
Забирайте подарок из нашей IT-коробки. Мы уверены, этот презент точно пригодится вам в работе: https://tprg.ru/NxFt | 503 |
| 3 | Версию зависимости агент называет по памяти, но 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 начнут падать там, где сегодня проходят, но это проверяется заранее
Вызов, попавший в троттлинг, 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, но удаление может сломать неизвестного потребителя. ArchUnit рассчитан на JUnit-проверку одного репозитория, чего мало для общих библиотек.
Nebula ArchRules поставляет правила вместе с библиотекой отдельным JAR. Gradle-плагин запускает их там, где библиотека подключена как зависимость. Анализ байткода делает одно правило общим для Java, Kotlin и Scala.
В CI-сборке авторы видят проекты, которые используют устаревшие, экспериментальные или непубличные API. Netflix TechBlog разбирает решение: 358 правил уже работают более чем в 5000 репозиториев и находят почти миллион нарушений. Так потребителей можно найти до изменения общего API. | 592 |
| 6 | Solon Cloud позволяет менять сервисную инфраструктуру без переписывания бизнес-кода
Планируете менять реестр сервисов, центр конфигурации или шину событий без каскада правок в бизнес-логике? Solon Cloud ставит между кодом и инфраструктурой общий слой: приложение вызывает CloudConfigService, CloudDiscoveryService или CloudEventService, а запрос выполняет выбранный плагин.
Всего набор определяет 13 сервисных интерфейсов. Для перехода с локальной реализации на Nacos или Consul меняются зависимость и YAML-конфигурация, а бизнес-код остаётся прежним.
В разборе Solon Cloud на DEV Community есть схема слоя и полный перечень интерфейсов, включая хранение файлов, задания, распределённые блокировки и генерацию идентификаторов. Для крупной кодовой базы это способ заранее оставить путь к смене инфраструктуры. | 618 |
| 7 | Spring разводит настройку бина по этапам жизненного цикла контейнера
У PostConstruct, InitializingBean и процессоров разные места в цикле. Поэтому точку расширения стоит выбирать после того, как определён обрабатываемый объект.
До создания экземпляров BeanFactoryPostProcessor работает с определениями бинов. BeanPostProcessor обрабатывает созданный экземпляр до и после инициализации. Для инициализации есть @PostConstruct и InitializingBean, для очистки: @PreDestroy и DisposableBean. SmartLifecycle координирует запуск и остановку компонентов с активным состоянием.
В материале на DEV Community эти точки собраны в примерах с тестами и документацией. При ревью сначала определите этап контейнера, затем выбирайте точку расширения. | 677 |
| 8 | Пакетные задачи 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 до сих пор собирают шаблонами, хотя соседние экосистемы давно перешли на компоненты
Вёрстка живёт в шаблонах Thymeleaf или FreeMarker: опечатка в имени поля всплывает в рантайме, а рефакторинг в IDE до неё не дотягивается.
JetBrains разбирает в блоге Kotlin, как закрыть этот пробел. Библиотека Compose HTML уже собирает веб-интерфейс на Kotlin поверх Compose-рантайма и компилирует его в JS. Если добавить JVM-таргет, те же компоненты отрендерятся в HTML на сервере: автодополнение, рефакторинг и проверки компилятора вместо строковых шаблонов.
В посте: почему нынешняя отрисовка Compose для веба в canvas ломает SEO, скорость загрузки и доступность.
Это исследование, а не анонс релиза: обязательств JetBrains не берёт. В план миграции не ставить, а вот в список на перепроверку положить стоит. | 719 |
| 11 | Совет не оптимизировать руками и довериться JIT держался на цене специалиста, а она рухнула
В любом Spring Boot сервисе есть эндпоинты, которые тормозят годами: снять профиль, найти горячий метод, проверить гипотезу, откатить. Несколько дней инженера ради неочевидного выигрыша.
Дэн Лу в эссе «There's no reason for software to be slow anymore» пишет, что человеко-время на такую итерацию упало в тысячи раз: запуск агента на его собственном сценарии с ripgrep занял около двух минут. Джейми Брэндон отдал агенту недоделанное тестовое Anthropic по производительности и получил результат лучше своего.
Java стоит на обратном: пиши предсказуемый код, JIT разберётся. Это верно, пока проверка гипотезы дороже выигрыша. Теперь она стоит минуты, зато поддерживать неочевидные правки в горячем пути всё равно людям. Рабочий процесс для Spring Boot. Пустили бы агента в горячий путь своего сервиса? | 739 |
| 12 | Общий обработчик исключений убирает 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%, но канареечный выкат ловит это за минуты
Правку промпта не отсекает ни один привычный гейт: компилятор её не видит, юнит-тесты зелёные, офлайн-набор из 40 кейсов тоже. А на живом трафике переформулированное описание инструмента научило агента вызывать его дважды за ход: вызовов на диалог стало 5,4 вместо 3,1, P95 вырос на 38%. Тестовые транскрипты короткие по замыслу, реальные диалоги длинные, и каждый лишний вызов удваивает ожидание.
В десятой части серии про агента на Spring Boot собрана рантайм-обвязка: раздача процента трафика на новую версию, автоматический переход на запасную модель при деградации основной и потолок расходов на модель.
Если промпты у вас едут в прод вместе с кодом, начинать стоит с процента трафика, который возвращается в ноль одной настройкой, и графика вызовов инструментов на диалог. | 891 |
| 14 | Девять 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
Декоратор или адаптер наполовину состоит из методов, которые только зовут то же самое у обёрнутого объекта. В самой 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 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, который в планировании всегда проигрывает фичам: смета в человеко-неделях не проходит. 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 августа в Москве пройдет конференция для своих. Приглашают Java-, Scala- и Kotlin-разработчиков, архитекторов и тимлидов.
Здесь выступят и расскажут:
— Андрей Кулешов — что нового в JVM за год;
— Сергей Петрелевич — разработка по Mechanical Sympathy;
— Александр Ланцов — Java после Loom и другие модели concurrency;
— Антон Курако — как бенчмарки вводят в заблуждение.
А вечером во дворе T-Space — посиделки, интерактивы и открытый микрофон с историями ошибок.
Мест мало, а цена билета будет расти.
Успевай зарегистрироваться сегодня со скидкой 10% по промокоду:
BYTECODE
Промокод действует по 10.08.
Это #партнёрский пост | 1 421 |
