Java guru
5.21K subscribers
1 photo
1 video
1 file
261 links
Новости из мира Java, обзоры интересных библиотек и фреймворков, обучающие статьи. Онлайн обсуждения актуальных тем и обмен опытом. Для связи @RodmanDV
Download Telegram
Kubetools

Коллекция популярных инструментов для Kubernetes. Там есть инструменты практически на все случаи жизни.

https://collabnix.github.io/kubetools/
👍4🔥2
Algo.monster

Отличный ресурс для подготовки к собеседованиям созданный разработчикам из Google. Особенно он полезен тем кто планирует проходить интервью в компании из FAANG.

https://algo.monster/?sscid=11k9_ggcl7&
🔥6
Java + Spring + Jakarta Validation. Самописный «аддон» для валидации Entity через БД и EntityManager

Валидации "первого круга" в jakarta.validation представлены прекрасно (NotNull, NotBlank и пр. аннотации). Статья про валидации "второго круга". К ним можно отнести такие наиболее типичные операции:

• Проверка поля на уникальность при создании новой сущности (записей со значением X поля N на момент сохранения быть не должно).
• Проверка поля на уникальность при обновлении сущности (при обновлении запись со значением X поля N должна оставаться только одна).
• Проверка существования проставленных FK-связей.
• Проверка существования самой сущности в случае обновления (делается, как правило, по ее ID-шке).
• Возможно, проверка unmodified-полей для обновления, т.е. если поле неизменяемое, но во входных данных мы пытаемся его изменить - исключение.

Решение не законченное, но интересное.

https://habr.com/ru/articles/839006/
👍3🔥1
Применимость Java в искусственном интеллекте: 7 библиотек для нейросетей, которые стоит изучить

Python довольно широко распространен в среде разработчиков занимающихся AI, но есть ли у него альтернатива? Для Java также существуют библиотеки и фреймворки. В статье рассмотрены 7 наиболее популярных.

https://habr.com/ru/articles/864352/
🔥4👍31
Подключение к GigaChat API на Java: пошаговое руководство

Статья о том как подключиться к API GigaChat в IntelliJ IDEA на Java и настроить безопасное соединение с использованием SSL-сертификатов.

https://habr.com/ru/articles/854820/
🔥6👍3
Telegram бот + ИИ Jlama своими руками

В статье описывается создание телеграм бота на Java, который будет использовать LLM запущеную локально. В статье используюется Jlama – максимально простой движок инференса для LLM, написанной на голой java без тяжеловесных фрэймворков. По факту Jlama дает возможность обслуживать LLM в java окружении напрямую, то есть в той же jvm, где работает наше приложение.

Статья интересна тем, что в ней не используется открытый API ChatGPT или новомодный Deepseek, а используется локально развернутый Jlama.

https://habr.com/ru/articles/877746/
🔥4👍3🥰1
Тестирование сообщений в Kafka

В статье представлен подход к написанию интеграционных тестов для Kafka-приложений с акцентом на читаемость и поддержку. Опираясь на принципы разделения тестов на этапы (Arrange-Act-Assert), изоляцию и повышение наглядности, мы упрощаем тестирование и понимание интеграций.

В качестве примера — телеграм-бот, перенаправляющий запросы в OpenAI и отправляющий сообщения в Kafka при нарушениях безопасности. Для тестов используется объект RecordCaptor, захватывающий сообщения из Kafka, с обеспечением изоляции и ожиданием смещений.

Подход демонстрирует, как сделать тесты эффективными и эстетичными, сохраняя фокус на логике взаимодействия. Рекомендуется ознакомиться с базовыми идеями в связанных статьях.

https://habr.com/ru/articles/840990/?utm_campaign=840990
👍3🔥2🥰1
GRASP: почему настоящая архитектура начинается не с SOLID

SOLID, GoF-паттерны и даже DDD — это круто, но как перейти от требований к модели? Почему инструменты не всегда решают задачу? Узнайте, как GRASP заполняет пробелы в архитектурном мышлении, помогая понять, что и почему моделировать, а не только как писать код. Личный опыт, аналогии и разбор — всё в одном посте!

https://m.vk.com/@javatutorial-grasp-pochemu-nastoyaschaya-arhitektura-nachinaetsya-ne-s-so

#Java #Architecture #GRASP #DDD
🔥10
Аннотации и рефлексия для гибкого кода

Аннотации и рефлексия в Java — мощные инструменты для создания адаптивных приложений. Аннотации добавляют метаданные к коду, помогая компилятору и инструментам анализировать его. Рефлексия позволяет изменять поведение программы во время выполнения.

🔹 Что в статье?
- Объяснение аннотаций: встроенные (@Override, @Deprecated) и пользовательские.
- Как создавать свои аннотации для:
- Документирования кода.
- Проверки данных (@NotNull).
- Примеры кода для лёгкого старта.

https://habr.com/ru/companies/otus/articles/764244/

#Java #Annotations #Reflection #CodingTips
🔥7👍2
🚀 Раскрываем секреты скорости в Java!

Хочешь знать, как работает сортировка в java.util.Arrays.sort()? 🤔 Timsort для объектов и Dual-Pivot Quicksort для примитивов — два алгоритма, которые делают Java молниеносной! Узнай:
- Почему Timsort — король упорядоченных данных.
- Как Dual-Pivot Quicksort от автора статьи изменил игру в JDK и Android.
- История создания и эволюция этих алгоритмов от эксперта!

💡 Погрузись в мир оптимизации Java и стань профи! Читай статью и прокачай свои знания.

https://habr.com/ru/companies/sberbank/articles/841342/?utm_campaign=841342

#Java #Timsort #Quicksort #Программирование
🔥4👍3
Погружение в безумный мир Brainfuck: создаём генератор кода и интерпретатор с нуля! 

История о том, как автор статьи превратил простую задачку на C в настоящий кодерский квест. 

Решать задачу стандартно? Скучно! Автор статьи решил добавить остроты и закодить решение на Brainfuck, а на C сваять интерпретатор для этого безумия. 

Но писать Brainfuck-код вручную — это как чистить картошку тупым ножом. Поэтому он вооружился Java и создал генератор кода, чтобы автоматизировать этот хаос и сделать процесс эпичным! 

🔥 Погрузись в детали на Хабре: https://habr.com/ru/articles/846076/
🔥4👍2🤯1
Есть ли хорошие форматтеры кода для Java?

Поиск идеального форматера
• Автор статьи ищет хороший Java-форматер.
• Он обсуждает различные форматеры, такие как встроенный в IntelliJ, google-java-format, более красивая Java, Eclipse JDT formatter, Java-формат Palantir, формат Spring Java и межъязыковые форматировщики кода.

Проблемы с существующими решениями
• Ни один из этих форматеров не удовлетворяет всем заявленным требованиям автора.
• Автор статьи готов перейти на другой инструмент, но не может выбрать что-то одно из-за проблем каждого из них.

Альтернативные инструменты
• Он также упоминает EditorConfig и Spotless, но не оценивает их как полноценные средства форматирования.

Рекомендация
• Вывод: Palantir, вероятно, является лучшим вариантом, если не возражаете против запуска программы форматирования из командной строки.

Мне также очень нравится инструмент checkstyle. Он не является в чистом виде форматером, но в нем можно настроить необходимые проверки качества и встроить в DevOps.

https://jqno.nl/post/2024/08/24/why-are-there-no-decent-code-formatters-for-java/
🔥6👍1
🔥 Сборка мусора в Java: почему важно понимать, как она работает 🧐

Вы программируете на Java и думаете: «Ну да ладно, сборщик мусора сам разберётся!» А ведь разобраться в тонкостях сборки мусора полезно! Это помогает выбрать оптимальный подход именно для вашего проекта.

📌 На конференции JPoint 2024 Дмитрий Силин из Сбербанка поделился крутым докладом на эту тему. По ссылке полный текст доклада + запись выступления!

https://habr.com/ru/companies/jugru/articles/846308/

#GC #JPoint2024 #разработка
👍5🔥3
AI-ассистент со Spring AI

В статье автор делится своим опытом интеграции AI-помощника в Spring Petclinic.

Spring Petclinic служит основным референсным приложением в экосистеме Spring. Приложение реализует систему управления ветеринарной клиникой для домашних животных.

Spring AI позволяет взаимодействовать с популярными большими языковыми моделями (LLM), используя знакомые парадигмы и техники Spring.

https://spring.io/blog/2024/09/26/ai-meets-spring-petclinic-implementing-an-ai-assistant-with-spring-ai-part-i

#springai #ai
👍3🔥2💯1
Аутентификация через телеграм в Spring Boot приложении

Сейчас наиболее распространена аутентификация через сторонние сервисы Google, Github и подобные, но через Telegram...что-то новенькое ))

В статье рассказывается о том как можно сделать аутентификацию через Telegram в Spring boot приложении.

https://habr.com/ru/articles/848502/

#springboot #spring #telegram
🔥53👍2
Интеграция AI в Java приложения

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

Много воды и общих фраз, но в целом послушать про тренды интересно.

Состав участников:
Асир Сельвасингх - Главный архитектор Java в Azure @Microsoft
Джонатан Шнайдер - сооснователь и генеральный директор @Moderne
Дов Кац - Управляющий директор, выдающийся инженер @Morgan Stanley
Светлана Землянская - Инженер по машинному обучению @Jetbrains
Модератор: Эрик Костлоу - Редактор InfoQ | Управление продуктами @Azul

https://www.infoq.com/presentations/ai-java-integrate/

#infoq #ai
👍4🔥2👏2
Принципы SOLID на примерах из жизни и разработки

В статье объясняются принципы SOLID доступным языком на простых жизненных примерах, а затем показывается, как эти правила применяются в реальных программах.

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

https://habr.com/ru/articles/849350/

#solid
👍3🔥3👏2💩1👾1
Скажем нет «Превращению», или анализ Kafka

Вас когда-нибудь интересовал скрытый мир ошибок в исходниках крупных open-source проектов?

⚡️ Откройте для себя захватывающие истории обнаружения багов в проекте Apache Kafka — один из самых популярных инструментов обработки больших данных! 📌

Что внутри поста:
— Ошибки, найденные анализатором PVS-Studio.
— Как избежать проблем в собственном коде.
— Примеры реальных уязвимостей и советы по улучшению качества вашего ПО.

Прочитав этот материал, вы получите знания, способные повысить качество ваших собственных проектов!

https://habr.com/ru/companies/pvs-studio/articles/851066/

#Kafka #PVSStudio
🔥5👏1
🔥 Хочешь ускорить работу своего Java-приложения и повысить его эффективность? Тогда эта статья обязательна к прочтению!

🖥️ Полнотекстовый поиск в ваших приложениях с использованием Elasticsearch — мощнейший инструмент, который позволит мгновенно находить нужные данные среди огромного объема информации. Представьте себе скорость и удобство работы вашего сервиса на совершенно новом уровне!

Чем полезна интеграция Elasticsearch + Spring Boot + PostgreSQL?

- 🚀 Масштабируемость и высокая производительность
- 🗂️ Надежное хранение данных с возможностью быстрой индексации
- 🧑‍🤝‍🧑 Простота разработки благодаря удобству Spring Boot
- 🕵️ Улучшение пользовательского опыта и повышение конкурентоспособности продукта

📃 Статья раскрывает важные аспекты интеграции:

- Как правильно индексировать сущности и связи (JPA)
- Настройки разметки атрибутов для эффективного поиска
- Совмещение и разделение сущностей для максимальной гибкости
- Реализация синонимов и фильтраций для повышения точности результата

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

📚 Примеры из практики позволят сразу внедрить знания в ваш проект и ощутить реальную пользу для бизнеса.

https://habr.com/ru/companies/rostelecom/articles/851658/

#Elasticsearch #SpringBoot #PostgreSQL #Java #Эффективность #Оптимизация #Поиск #Данные
🔥2👍1
🔍 Разбираемся с Vespa. Часть 2

Продолжаем погружение в мир поиска и обработки данных с Vespa!

Сегодня разберём ключевые аспекты платформы:

Узнаете:

- Что такое Document и Query Processing: этапы обработки документов и запросов.
- Обработка текста: токенизация, стемминг и оптимальные методы для русского языка.
- Алгоритмы поиска: как эффективно находить нужную информацию среди множества данных.
- Ранжирование результатов: почему одни результаты оказываются выше других.

https://habr.com/ru/companies/sportmaster_lab/articles/848992/

#Vespa
🔥2👍1