Чашечка Java
9.19K subscribers
3.71K photos
13 videos
55 files
5.87K links
Лучшие материалы по Java на русском и английском

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

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

Другие каналы: @tproger_channels
Download Telegram
Парсинг на 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 | Другие наши каналы
Работа над ошибками

Достаточно большой период времени занимался технической поддержкой СУБД 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 | Другие наши каналы
Мы писали ранее, что 12 сентября пройдёт big tech night. Событие придумали в Яндексе и организовали вместе со Сбером, X5, Т-Банком и Lamoda. Впервые топовые IT-компании одновременно откроют двери офисов в Москве с 18:00 до 00:00 и покажут специалистам, где рождаются технологии.

Пора рассказать о тех, кто выйдет на сцену⚡️

📣 Кто и о чём расскажет на big tech night? Начинаем представлять спикеров и темы. Читайте на карточках.

➡️ А подробнее про доклады рассказываем на сайте

Подписывайтесь:
💬 big tech night

Реклама. Рекламодатель: ООО "Яндекс" ИНН 7736207543
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 | Другие наши каналы
1👍1
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 | Другие наши каналы
😁21🤔1🙏1
Как получить оффер в FAANG: этапы собеседований и требования компаний

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

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


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

@a_cup_of_java | Другие наши каналы
😁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 | Другие наши каналы