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

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

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

Другие каналы: @tproger_channels
Download Telegram
Java, Taint и SAST: что это и зачем, и причём здесь ГОСТ 71207

На Java пишется огромное количество серверного кода. Отсюда следует, что написанные на ней веб-приложения должны быть устойчивы к специальным уязвимостям. И эта небольшая статья как раз про один из способов борьбы с ними — SAST. И ещё про то, что такое taint-анализ и как он во всём этом участвует.


Читать: https://habr.com/ru/companies/pvs-studio/articles/876890/?utm_campaign=876890

@a_cup_of_java | Другие наши каналы
👍2
Amplicode Frontend — фуллстек на час: создай админку для своего Spring-приложения

Не часто Spring разработчикам нужно разрабатывать админки, но когда нужно… Встает вопрос, какую технологию для этого выбрать. Неплохим решением может стать фреймворк Vaadin, или платформа Jmix, которую тоже разрабатывает наша компания. Языковая преемственность и возможность писать фронтенд код на бекенде очень подкупают, однако, эти технологии не лишены определенных проблем. В частности, глубокая кастомизация потребует серьезного погружения в технологию, что создает определенные риски для проекта. Возможно, есть какая-то альтернатива с использованием более популярных фронтенд технологий?


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

@a_cup_of_java | Другие наши каналы
4
Чек-лист для Node.js новичков: обработка ошибок

Чек-лист для Node.js новичков. Показываем основные подходы к обработке ошибок. Рассматриваем пошаговую инструкцию и практические примеры Tproger

Читать: «Чек-лист для Node.js новичков: обработка ошибок»

@a_cup_of_java | Другие наши каналы
🤔2
Использование Drools для конфигурирования приложения

В данной статье хочу поделиться примером реального применения Drools для реализации требований бизнеса по гибкому конфигурированию сервиса. Здесь не будет полного обзора или пересказа всех фич Drools. Опишу лишь тот функционал, который оказался полезен и применим конкретно к моей задаче.


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

@a_cup_of_java | Другие наши каналы
Java News Roundup: Stable Values, Payara Platform, Oracle Critical Patch Update, GraalVM, BellSoft

This week's Java roundup for January 20th, 2025 features news highlighting: JEP 502, Stable Values (Preview); Oracle's Critical Patch Update (CPU) for January 2025; the January 2025 release of the Payara Platform; GraalVM for JDK 23 Community 23.0.2; and BellSoft CPU patches for Liberica JDK.
By Michael Redlich

Read: https://www.infoq.com/news/2025/01/java-news-roundup-jan20-2025/

@a_cup_of_java | Другие наши каналы
🎉2
Уйти от ORM

По результатам статьи про Spring Data JPA хабровчане критиковали нас за то, что мы наступали на трудовые мозоли, но не сказали что надо делать. В этой статье мы, наконец, предложим концептуальное решение проблемы ORM.


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

@a_cup_of_java | Другие наши каналы
🙈1
10 реальных вопросов с собеседования JavaScript-разработчика с ответами

Разбираем вопросы и задачи, которые могут встретиться на техническом собеседовании

Читать: «10 реальных вопросов с собеседования JavaScript-разработчика с ответами»

@a_cup_of_java | Другие наши каналы
🔥2
Введение в реактивное программирование

Так уж получилось, что, устроившись на свою первую работу, я был вынужден напрямую столкнуться с Project Reactor в некоторых сервисах (чего, честно говоря, совсем не ожидал). Почесав репу, я понял, что придется мне идти курить доку, так как знаний по данной теме у меня, мягко говоря, было немного (знал Reactor примерно на уровне: чем отличается Mono от Flux).

В процессе чтения возникла гениальнейшая идея - попрактиковать свои навыки понимания тех. литературы на английском, при этом еще и разобравшись в необходимой мне теме, попутно исполнив свою хотелку написать статью для Хабра. Так и родился мой перевод вводной страницы из документации по реактору.


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

@a_cup_of_java | Другие наши каналы
Разработка эффективных агентов с помощью Spring AI (Часть 1)

Команда Spring АйО перевела статью, в которой рассказывается про разработку эффективных агентов с помощью Spring AI. Исследование Anthropic "Building effective agents" подчеркивает важность простоты и модульности в разработке LLM-агентов.

В статье рассматривается, как эти принципы реализуются в Spring AI через пять ключевых паттернов: Chain Workflow, Parallelization Workflow, Routing Workflow, Orchestrator-Workers и Evaluator-Optimizer.


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

@a_cup_of_java | Другие наши каналы
👍2🎉2
Telegram бот + ИИ Jlama своими руками

Хабр, привет! Сегодня мы попробуем сделать свой ИИ с телеграм ботом для возможности простого общения с ней. Сразу оговорюсь, мы не будем в очередной раз использовать открытый API ChatGPT или новомодного Deepseek. Мы развернем свой полноценный ИИ локально и сынтегрируем его с телеграм ботом.


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

@a_cup_of_java | Другие наши каналы
Создаём мобильное приложение с нуля: от идеи до публикации в App Store и Google Play

Узнайте, как создать мобильное приложение с нуля: от формирования идеи и разработки до тестирования и публикации в App Store и Google Play. Полный обзор ключевых этапов!

Читать: «Создаём мобильное приложение с нуля: от идеи до публикации в App Store и Google Play»

@a_cup_of_java | Другие наши каналы
Java становится надежнее: “Целостность по умолчанию” в действии

Команда Spring АйО перевела статью про ужесточение контроля за динамической загрузкой агентов, ограничения доступа к опасным методам работы с памятью и JNI в новых версиях JDK.


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

@a_cup_of_java | Другие наши каналы
👍4🎉2
Как мы перенесли web-сервис в Телеграм Mini Apps

До лета 2023 года перед разработчиками Точка Нетворк стояла проблема: CJM становился сложным, и это затрудняло работу над продуктом. В итоге мы придумали решение — полностью отказались от веба и сосредоточили развитие платформы только в Mini Apps от Телеграма. Без этого было бы невозможно развивать продукт дальше.

В статье расскажу, как и почему мы отказались от веб-версии Точка Нетворк — локального сообщества предпринимателей — и переместились в Телеграм.

Читать: «Как мы перенесли web-сервис в Телеграм Mini Apps»

@a_cup_of_java | Другие наши каналы
Apache Flink: использование и автоматическая проверка собственного сериализатора состояния

Привет, Хабр! На связи Александр Бобряков, техлид команды МТС Аналитики. Это мой финальный пост про Apache Flink. В предыдущих частях мы рассматривали процессы сериализации данных, написали кастомный сериализатор, а также покрыли его тестами. В них проверялась поддержка эволюции схемы состояния. Для этого мы реализовали много удобных абстракций, связанных с перезагрузкой Flink MiniCluster, компиляцией тестовых java-классов, использованием их в classpath кластера и так далее.

В этом материале мы применим разработанный сериализатор JacksonStateSerializer в бою, а также автоматизируем проверку эволюции схемы для всех наших классов, участвующих в сериализации.

Весь разбираемый исходный код можно найти в репозитории AlexanderBobryakov/flink-spring. В master-ветке представлен итоговый проект по всей серии. Данная статья соответствует релизной ветке с названием release/11_JacksonEvolvingState. По мере выхода новых материалов на Хабре ссылки на них будут появляться ниже.

Список моих постов про Flink:


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

@a_cup_of_java | Другие наши каналы
😁2
Судоку: моя попытка в новый алгоритм решения. Часть 1 (надеюсь)…

Как известно, нахождение оптимального алгоритма решения любой NP-полной задачи - это цель амбициозная, пахнущая славой и неплохими деньгами. Как раз к таким задачам относится Судоку, и как раз своим решением этой головоломки я горел последний месяц. На данный момент сделана (по ощущениям) лишь половина дела, и хоть результаты и вышли интересными (по крайней мере для меня-любимого) - дело еще далеко до завершения, т.к. в определенном моменте настал "творческий тупик". Впрочем, надеюсь, что он пройдет и на свет появится по крайней мере какое-то новое любопытное решение. Пока что лишь поделюсь своими первыми наработками в этом направлении. Пока что они не вполне вылизаны + написаны на Java, перевод на какой-нибудь более простой для восприятия язык планируется лишь с окончательной победой на Java.


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

@a_cup_of_java | Другие наши каналы
🎉4🤨1
JDBC Fetch Size: Маленькая настройка, большие последствия

В новом переводе от команды Spring АйО Гевин Кинг, создатель Hibernate, объясняет, почему значение fetch size по умолчанию в драйвере Oracle может замедлять запросы — и как его изменение помогает повысить масштабируемость системы.


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

@a_cup_of_java | Другие наши каналы
👍2
WireMock: Легкий путь к эффективному тестированию

Привет, меня зовут Иван, и я зануда.

Сразу скажу, что в моем понимании зануда в тестировании — не тот человек, который всех достал и которого все хотят удушить, а тот, который умеет показать людям, что нужно делать хорошо и не делать плохо, и добиться от них этого. Я считаю, что QA должно расшифровываться как Quality Assistant. Это даже не про Assurance, когда вы обеспечиваете качество, это именно про то, что вы как тестировщик и участник команды помогаете на каждом этапе от требований до выкатки в прод и работы с сопровождением и вашими коллегами добиться того, чтобы каждый этап проходил все лучше и лучше.

В тестировании я уже семь лет, для кого-то это маленький срок, для кого-то — большой, я очень впечатлен коллегами, которые работают уже по 15-20 лет, но развиваюсь, стараюсь нести добро в массы. Одна из моих основных специализаций заключается в том, что я прихожу на проекты, которые начинаются с большой бизнес-идеи, движущейся через много команд. Мне нравятся все вопросы межкомандного тестирования, интеграционного взаимодействия, выстраивания стендов, как драйвить коллег, чтобы мы двигались в одном направлении и не словили на проде кучу ошибок — этим я и занимаюсь.

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


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

@a_cup_of_java | Другие наши каналы
👍5👏21
JetBrains AI Coding Agent Junie Provides Tight Integration with JetBrains IDEs

JetBrains has announced Junie, its new AI coding agent, in closed preview. Junie, says the company, is able to carry through the coding tasks you assign it and leverage the knowledge about your project context as available in the IDE.
By Sergio De Simone

Read: https://www.infoq.com/news/2025/01/jetbrains-junie-agent/

@a_cup_of_java | Другие наши каналы
IntelliJ IDEA 2025.1 EAP 3

Команда Spring АйО перевела статью от JetBrains про релиз третей версии EAP для IntelliJ IDEA 2025.1.

Среди нововведений: обновления режима Kotlin K2, улучшенное логическое представление в панели Structure и автодополнение для несуществующих репозиториев Spring Data.


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

@a_cup_of_java | Другие наши каналы
4👍3👎1
Заговор разработчиков против корпораций: архитектура и принципы

С момента написания предыдущей статьи я находился под пристальным вниманием. Попытка опубликовать материалы на англоязычных платформах обернулась фиаско — в первые же минуты легионы последователей тайного братства обрушились с критикой:

— Нет никакой организации! — вопили они.

Подозреваю, что слежка велась через мой телеграм-канал.

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

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

@a_cup_of_java | Другие наши каналы
Гарантированное получение данных через REST API: Подходы и библиотеки для Java

Как реализовать надежное взаимодействие с API в Java. Примеры кода, механизм retry и рекомендации для повышения отказоустойчивости системы

Читать: «Гарантированное получение данных через REST API: Подходы и библиотеки для Java»

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