Чашечка Java
8.48K subscribers
3.88K photos
14 videos
56 files
6.34K links
Лучшие материалы по Java на русском и английском

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels
Download Telegram
Что я знаю про онлайн редактирование

Привет! Меня зовут Сергей и я техлид. Причем уже долгое время. За время своей работы я успел поработать с разными решениями, надо разными проектами и столкнуться с разными задачами. Проекты я всегда старался выбирать свежие. Когда надо построить большую и сложную систему с нуля.

Идея этой статьи пришла ко мне год назад. При посещении Highload я был у стенда одной большой компании, которая очень любит алгоритмы. На нем предлагалась решить архитектурную задачу за мерч. Когда дошла очередь до меня, мне выпала задача - построить онлайн редактор с нуля. Это отличный вариант! Как раз такое мне уже приходилось проектировать. В процессе решения, автор задачи сказал, что я усложняю и вообще онлайн редктор - это гораздо проще. После разбора нескольких корнер кейсов, он согласился, что это всего лишь первый взгляд. Далее уже достаточно долго мы обсуждали а как вообще можно построить онлайн редактор. В тот момент и появилась идея поделиться своим опытом публично, но вот только сейчас дошли руки. Итак, приступим.


Читать: https://habr.com/ru/articles/937668/?utm_campaign=937668

@a_cup_of_java | Другие наши каналы
1
Когда Structure Block уже не справляется: Продвинутая генерация огромных строений в Minecraft

Стандартный Jigsaw-метод хорош для деревень, но пасует перед гигантскими .nbt-файлами, вызывая лаги и вылеты. Столкнувшись с этим, я отказался от JSON-конфигураций и написал свой класс Structure. В статье разберу, как с помощью чистого Java-кода заставить Forge генерировать огромные строения и не наступить на мои грабли с mods.toml.


Читать: https://habr.com/ru/articles/937976/?utm_campaign=937976

@a_cup_of_java | Другие наши каналы
Публикация maven-артефактов в GitHub репозитории

Уже как три года я работаю над проектом со стеком Kotlin, Spring Boot, Maven. Все начиналось как небольшая учебная практика в вузе на коленке за пару недель и разрослось в приличную систему, которая уже использовалась по всей России.

В связи с ростом проекта, монорепозитория стало мало и появилась необходимость часть логики выделять в отдельные репозитории. Вот здесь и возникает вопрос: как управлять этими зависимостями?


Читать: https://habr.com/ru/articles/938008/?utm_campaign=938008

@a_cup_of_java | Другие наши каналы
Java обновления августа 2025: вышли новые версии Spring Framework 7.0, Spring Data 2025.1, Open Liberty 25.0, Hibernate Reactive 4.1, Quarkus 3.26 и Gradle 9.1 с новыми функциями, улучшениями и исправлениями уязвимостей. Подробности в релизах.

Подробности: https://www.infoq.com/news/2025/08/java-news-roundup-aug11-2025/

#en

@a_cup_of_java | Другие наши каналы
Как заменить GitHub Copilot на полностью офлайн‑Continue Plugin

В этом посте я покажу, как использовать Continue Plugin вместо GitHub Copilot, подключив к нему собственную локальную модель LLM без доступа к интернету. Такой подход обеспечивает максимальную конфиденциальность: ни IDE, ни LM Studio не имеют возможности передавать ваши файлы в облако.

Никакой сети – всё работает только в вашем компьютере.


Читать: https://habr.com/ru/articles/938036/?utm_campaign=938036

@a_cup_of_java | Другие наши каналы
Парсинг на Java. От основ до парсинга Яндекс Карт

Сегодня я рассмотрю основы парсинга на Java, используя как пример Яндекс Карты.

В этой статье мы рассмотрим, что такое HTTP и какие бывают методы запроса, как работать с HttpClient в Java 11+, как отправлять GET и POST-запросы, как обрабатывать HTTP-ответы и извлекать данные, и как всё это можно использовать для парсинга данных с внешнего сервера на примере Яндекс Карт.


Читать: https://habr.com/ru/companies/amvera/articles/937894/?utm_campaign=937894

@a_cup_of_java | Другие наши каналы
GPT-4o: последний взгляд

Это вторая часть цикла «Исследование возможностей ИИ писать код». И она особенная: GPT-4o, о котором пойдёт речь, уже снимали с полок, а затем вернули под давлением жалоб пользователей, но это лишь временная передышка. Модель официально заменена GPT-5 и в любой момент она снова может исчезнуть. Поэтому то, что вы читаете, это скорее исторический снимок работы с устаревшей моделью.


Читать: https://habr.com/ru/articles/938022/?utm_campaign=938022

@a_cup_of_java | Другие наши каналы
Spring Boot + Python: от эксперимента до open-source

Как исполнять Python внутри Spring Boot?

Я прошёл путь от сырых AOP-костылей до production-ready библиотеки с REST, gRPC и безопасным исполнением скриптов. В статье: опыт, архитектура и базовые примеры использования.


Читать: https://habr.com/ru/articles/938126/?utm_campaign=938126

@a_cup_of_java | Другие наши каналы
👍2
Как мы затащили jOOQ в высоконагруженный проект с Postgres

Привет, Хабр. Меня зовут Михаил Тимошкин. Я тимлид в команде Тематических каналов в Дзене.

Одна из классических головных болей при создании сервиса — синхронизация кода приложения со схемой БД. Есть много инструментов для управления изменениями схемы базы данных, таких как Liquibase или Flyway, для которых существуют плагины с кодогенерацией. Но что, если на проекте ничего подобного нет? Хорошая новость в том, что даже в такой ситуации можно найти эффективное решение! В этом мы убедились на собственном опыте при переходе с Hibernate на jOOQ.

В этой статье я расскажу, с какой проблемой мы столкнулись, какие решения рассматривали и что получили в итоге.


Читать: https://habr.com/ru/companies/vk/articles/934620/?utm_campaign=934620

@a_cup_of_java | Другие наши каналы
Java Agent как инструмент обхода лицензий: этичный анализ и защита

Обычно Java-агенты используются для сбора телеметрии, логирования, профилирования, каких-то ультрабыстрых хотфиксов и прочих скучных вещей.

Но сегодня мы исследуем приложение Java-агент, которое модифицирует код другого Java-приложения “на лету” и создано для обхода лицензионных ограничений. Называть его мы будем “агент”, “вредоносный агент” и т. п.

Меня зовут Сергей, тимлид бэкэнд команды Cluster Manager ГК GlowByte.

Код в нашем примере будет максимально обезличен.

Эта тема рассматривается исключительно в целях исследования вопросов безопасности приложений и этичного использования инструментов изменения кода во время компиляции.

В конце я предложу примеры методов отслеживания несанкционированного вмешательства в Java-приложение, а также методов противодействия, чтобы избавиться от рисков, которые мы обнаружим в процессе исследования.


Читать: https://habr.com/ru/companies/glowbyte/articles/938416/?utm_campaign=938416

@a_cup_of_java | Другие наши каналы
👍1
Работа над ошибками

Достаточно большой период времени занимался технической поддержкой СУБД Oracle. Накопилось некоторое количество историй и заметок на полях по этому поводу, не могу не поделиться ими с вами. В общем – садимся по удобнее, берем попкорн, чашку горячего чая или кофе.. Дело было так.


Читать: https://habr.com/ru/articles/938502/?utm_campaign=938502

@a_cup_of_java | Другие наши каналы
Гайд по использованию Spring GraphQL. Часть 3

Привет, Хабр!

Меня зовут Дмитрий, я бэкенд-разработчик в SENSE и последние 10 лет пишу серверную часть на Java. Эта статья – продолжение серии гайдов по Spring GraphQL, где в первой части мы с нуля подняли проект и подключили GraphQL к Spring Boot, а во второй разобрались с SchemaMapping, DataLoader и реализацией запросов посложнее.

Сегодня двигаемся дальше: разберём валидацию данных, работу с заголовками (headers), обработку ошибок, подключение кастомных скаляров и директив. А ещё посмотрим, как работать с интерфейсами и union-типами, и напишем клиент для GraphQL-сервиса.

Поехали!


Читать: https://habr.com/ru/companies/it_sense/articles/938600/?utm_campaign=938600

@a_cup_of_java | Другие наши каналы
Java Agent как инструмент обхода лицензий: этичный анализ и защита

Обычно Java‑агенты используются для сбора телеметрии, логирования, профилирования, каких‑то ультрабыстрых хотфиксов и прочих скучных вещей.

Но сегодня мы исследуем приложение Java‑агент, которое модифицирует код другого Java‑приложения «на лету» и создано для обхода лицензионных ограничений. Называть его мы будем «агент», «вредоносный агент» и т. п.

Меня зовут Сергей Капустин, тимлид бэкэнд-команды продукта Data Ocean Cluster Manager вендора Data Sapience.

Код в нашем примере будет максимально обезличен.

Эта тема рассматривается исключительно в целях исследования вопросов безопасности приложений и этичного использования инструментов изменения кода во время компиляции.

В конце я предложу примеры методов отслеживания несанкционированного вмешательства в Java‑приложение, а также методов противодействия, чтобы избавиться от рисков, которые мы обнаружим в процессе исследования.


Читать: https://habr.com/ru/companies/datasapience/articles/938416/?utm_campaign=938416

@a_cup_of_java | Другие наши каналы
👍21
SSO на базе Spring Authorization Server. Можно ли в прод?

В современных приложениях централизованная аутентификация и авторизация играют ключевую роль в обеспечении безопасности и удобства пользователей. Именно с такой задачей мы столкнулись в компании NAUKA при создании "Платформы" — экосистемы, предназначенной для функционирования наших решений и разработки собственных прикладных приложений. В качестве основного компонента системы аутентификации и авторизации был выбран Spring Authorization Server.

Настоящая статья - это небольшой практический обзор реализации SSO-сервера на основе технологии Spring Authorization Server с акцентом на решении типовых проблем, которые возникают при её использовании в реальной системе. Мы рассмотрим как технические детали, так и архитектурные решения, которые помогут создать надежный и масштабируемый сервер авторизации.


Читать: https://habr.com/ru/companies/nauka/articles/938970/?utm_campaign=938970

@a_cup_of_java | Другие наши каналы
Выпущена версия Jmix 2.6

Мы рады объявить о выпуске Jmix 2.6, который включает новую функциональность, улучшения и оптимизацию производительности. Этот релиз приносит значительные обновления в Jmix Studio, представляет новые UI-компоненты и повышает продуктивность благодаря умным инструментам и интеграциям.

Ниже представлен краткий обзор ключевых возможностей Jmix 2.6.


Читать: https://habr.com/ru/companies/haulmont/articles/939262/?utm_campaign=939262

@a_cup_of_java | Другие наши каналы
Мне не нужен ORM, я могу просто использовать SQL

Команда Spring АйО в новом переводе разобрала популярный аргумент «я просто использую SQL» и объяснила, почему Hibernate — это не замена, а дополнение к нативным запросам. А ещё — когда ORM действительно необходим, а когда можно без него обойтись.


Читать: https://habr.com/ru/companies/spring_aio/articles/939408/?utm_campaign=939408

@a_cup_of_java | Другие наши каналы
😁3🤔21🙏1
Как получить оффер в FAANG: этапы собеседований и требования компаний

В этой статье разберёмся в нюансах и сравним, как устроены интервью в международные IT-компании: какие этапы вас ждут и сколько времени они занимают, какой формат у каждой корпорации и какие особенности учитывать, если вы метите выше Senior. Как итог: поймёте, как подготовиться к собеседованиям, чтобы сократить путь до желанного оффера.

Собеседования в FAANG-компаниях (или MAANG/MANGA — кому как ближе) давно стали отдельным жанром. Если вы уже пытались попасть в Big Tech — то знаете, насколько сильно отличается их подход: чёткая структура, множество этапов собеседования, критерии оценки кандидатов и даже особенная культура коммуникации. При этом есть схожие моменты, которые вы встретите везде, и уникальные штуки, о которых лучше знать заранее.


Читать: https://habr.com/ru/articles/939442/?utm_campaign=939442

@a_cup_of_java | Другие наши каналы
😁2👍1
Не только для собеседований: как LeetCode и аналоги помогают новичкам в программировании

Алгоритмические задачи развивают логику, структурное мышление и помогают на собеседованиях и в работе. Узнайте, с чего начать, как избежать выгорания и сохранить мотивацию.

Читать: «Не только для собеседований: как LeetCode и аналоги помогают новичкам в программировании»

@a_cup_of_java | Другие наши каналы
Как RecyclerView создает магию анимаций: архитектура ItemAnimator под капотом

RecyclerView умеет превращать обычные операции с данными в плавные анимации. Когда вы добавляете элемент в список, остальные элементы плавно расступаются. При удалении — схлопываются. Эта магия происходит благодаря ItemAnimator — механизму, который я сегодня разберу до последнего винтика.

В этой статье мы погрузимся в архитектуру системы анимаций RecyclerView, проследим путь от вызова notifyItemInserted() до финальной анимации на экране.


Читать: https://habr.com/ru/articles/939594/?utm_campaign=939594

@a_cup_of_java | Другие наши каналы
JDK 25 выйдет в сентябре 2025 года с 18 новыми функциями, включая улучшения в языке Java, безопасности и производительности JVM. JDK 26 готовит поддержку HTTP/3 и удаление устаревшего Applet API. Главное для разработчиков — стабильность и оптимизация с новыми возможностями.

Подробности: https://www.infoq.com/news/2025/08/java-25-so-far/

#en

@a_cup_of_java | Другие наши каналы